Einleitung:
Ich habe eine Ansicht mit zwei sortierten/kategorisierten Spalten:
Jetzt möchte ich die Anzahl aller Dokumente unterhalb der Oberkategorie erhalten, in diesem Fall für die Oberkategorie "Main Category 1" müsste das Ergebnis 5 lauten.
Ergebnis per Lotus Script "GetAllDocumentsByKey":
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim dc As NotesDocumentCollection
Set db = session.CurrentDatabase
Set view = db.GetView( "Lookup_Test" )
Set dc = view.GetAllDocumentsByKey("Main Category 1", False)
Messagebox dc.Count & " documents under category 'Main Category 1'", 0, "GetAllDocumentsByKey"
End Sub
This LotusScript was converted to HTML using the ls2html routine, provided by Julian Robichaux at nsftools.com.

Ergebnis per Lotus Script "GetAllEntriesByKey":
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim vc As NotesViewEntryCollection
Set db = session.CurrentDatabase
Set view = db.GetView( "Lookup_Test" )
Set vc = view.GetAllEntriesByKey("Main Category 1", False)
Messagebox vc.Count & " documents under category 'Main Category 1'", 0, "GetAllEntriesByKey"
End Sub
This LotusScript was converted to HTML using the ls2html routine, provided by Julian Robichaux at nsftools.com.

Ergebnis per @Formel "@DbLookup":
_cat := "Main Category 1";
_dbl := @DbLookup("":"NoCache"; "":""; "Lookup_Test"; _cat; 1);
@Prompt([Ok]; "@DbLookup"; @Text(@Elements(_dbl)) + " documents under category '" + _cat + "'")

Kommentar:
Hallo Christoph,
ich habe es ausprobiert. Es gibt ein paar Möglichkeiten:
1. Es funktioniert, wenn die zweite Spalte nicht katgorisiert ist.
2. Es funktioniert nicht, mit einer zusätzlichen hidden column mit der main category die nicht kategorisiert ist - auch nicht, wenn das dann die erste Spalte ist.
3. Es funktioniert nicht, wenn die Kategorie und die Subkategorie in einer Spalte dargestellt werden, da die Teilstringsuche in getalldocumentsbykey das nicht hergibt. Gleiches gilt für getalletriesbykey und [PARTIALMATCH] bei dblookup. Wahrscheinlich verwenden alle im Backend die gleichen Suchalgorithmen. Die Hilfe sagt auch: The use of partial matches with multiple keys may result in missed documents. If the first key is partial and the second column does not sort the same with the partial key as with the exact key, documents that fall out of sequence are missed.
Das heißt, es könnte bei einem Key im Keyarray auch sein, dass die leere Darstellug der Zeile in der zweiten Spalte sich ändert durch die zweite Kategorie und dadurch die Liste der Dokumente unterbrochen wird.
Ich denke mal weiter, wenn ich wieder wach bin ;-)
(aber wahrscheinlich musst Du für den lookup eine eigene Ansicht nehmen, die nur die erste Spalte kategorisiert)
Viele Grüße,
Wolfgang
|