In IBM Lotus Domino habe ich einen Java-Agenten gebaut. In diesem Agent bin ich eine Ansicht bekommen, die Bestellposten hat:DocumentCollection zählt 5, aber bekomme nur 1 Dokument
View orderLinesView = CurrentDatabase.getView("OrderLinesOnId");
Die Ansicht hat eine sortierte Spalte: ID_Order die auch kategorisiert.
Ich habe die folgenden alle Dokumente in der Ansicht mit dem gleichen ID_Order zu erhalten:
Vector keyRegel = null;
keyRegel = new Vector();
keyRegel.add(orderDocument.getItemValueString("ID_Order"));
DocumentCollection orderLineCollection = orderLinesView.getAllDocumentsByKey(keyRegel, true);
Jetzt möchte ich eine Schleife durch alle Dokumente und die Beschreibung drucken:
System.out.println("Count orderRegelcollection:" +
Document orderLineDocument = orderLineCollection.getFirstDocument();
while (orderLineDocument != null) {
System.out.println("description " + orderLineDocument.getItemValueString("description"));
orderLineDocument = orderLineCollection.getNextDocument();
}
Auf Lauf , es druckt 1 Dokument und nach der ersten Schleife endet es. Aus meiner Sicht sehe ich jedoch deutlich 5 Dokumente mit der gleichen ID_Order. Das Merkwürdige ist, dass es nur das letzte Dokument in der Ansicht, (wenn ich auf ID_Order gesucht)
Der vollständige Code ist wie folgt:
View relationsView = dbRelatie.getView("Relations");;
Document relationDocument = relationsView.getFirstDocument();
while (relationDocument != null) {
Vector key = null;
key = new Vector();
key.add("");
key.add(relationDocument.getItemValueString("getDebtor"));
DocumentCollection orderDocumentCollection = TotalOrdersView.getAllDocumentsByKey(key, true);
Document orderDocument = orderDocumentCollection.getFirstDocument();
while (orderDocument != null) {
und ich bekomme dann die Bestellzeilen ..
Er yea sorry ich orderLineCollection.getNextdocument (hatte); Ich habe es falsch in die Frage eingetippt. Und der Grund, warum ich getAllDocumentsByKey benutze, ist, weil ich keine Schleife durch 100.000+ Dokumente wünschen – YdB
Kein Problem. :) Deshalb habe ich gesagt, dass Sie die Dokumentensammlung in irgendeiner Weise machen können, entweder indem Sie 'getAllDocuments()' oder 'getDocumentByKeys()' machen, das Sammelobjekt ist dasselbe, Sie müssen nur das nächste Dokument daraus in der Schleife, in der Art, wie ich oben erwähnt habe. –
:) Danke für die Antwort, ich habe orderLineCollection.getNextDocument(); Aber ich bekomme nur das letzte Dokument. also sehe ich 5, wenn ich in der Ansicht nachschaue Aber ich bekomme nur die letzte – YdB