Domino 9 und frühere Versionen > Entwicklung
Number in View???
JD:
Perfekt genau das ist es was ich auch haben will, nur das der rank innerhalb zweier kategorisierungen noch funktionieren muss!!!! Wie kriege ich das am besten hin??????
Habe jetzt den Weg eingeschlagen für jedes Dokument nummern zu vergeben und einen agenten drüberlaufen zu lassen der mir die doppelten nummern löscht, allerdings habe ich damit noch Probleme da die DokumentCollection die Dokumente nicht in der Reihenfolge wie sie in der View zu sehen sind aufnimmt, sondern nach dem Erstelldatum glaube ich.
Alsomir wäre geholfen wenn mir jemand varraten könnte, wie ich die Dokumente in die DocCollection bekomme in der Reihenfolge, wie sie in der View auftauchen ODER wie Raimund das gemacht hat. Was muss ich beachten????
JD:
Hier mein Agent:
--- Code: ---import lotus.domino.*;
import java.util.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
Database database = agentContext.getCurrentDatabase(); //get the database from the above context
DocumentCollection docCollection = agentContext.getUnprocessedDocuments(); //get all documents belonging to the actual context
Document doc = docCollection.getFirstDocument(); //get the first document of the whole collection
int[] oldnumbers= new int[docCollection.getCount()];
System.out.println(docCollection.getCount() + " Dokumente ausgewählt");
for (int i=0; i < docCollection.getCount(); i++) {
int number = doc.getItemValueInteger("number");
oldnumbers[i] = number;
doc = docCollection.getNextDocument();
}
int[] newnumbers = killdoublevalues(oldnumbers);
doc = docCollection.getFirstDocument();
for (int i=0; i < newnumbers.length; i++) {
System.out.println(doc.getItemValue("questionfield"));
int number = newnumbers[i];
Integer numberInt = new Integer(number);
doc.replaceItemValue("number", numberInt);
doc = docCollection.getNextDocument();
}
} catch(Exception e) {
e.printStackTrace();
}
}
public static int[] killdoublevalues(int[] a) {
int[] b = new int[a.length];
b[0] = a[0];
for (int i=1; i <a.length; i++) {
b[i] = (a[i] > b[i-1]) ? a[i] : b[i-1]+1;
}
return b;
}
}
--- Ende Code ---
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln