Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Kadlec am 31.01.04 - 17:57:20
-
Ich möchte bestimmte Dokumente einer Ansicht zählen und die Entsprechende Anzahl ausgeben.
Die Ansicht hat in der ersten Spalte en Key
Möglichkeiten sind: "E²", "H" und "W"
Dokumente die gezählt werden sollen haben "E²" oder "H".
Die Formel die ich nehme beinhaltet:
Dim Key(0) As String
Dim Key(1) As String
Key(0) = "E²"
Key(1) = "H"
...GetAllDocumentsByKey(Key,True)
Ich bekomme aber die Fehlermeldung "Too many keys in GetAllDocuments...
Was mache ich falsch?
-
Hi,
so sind die Regeln nicht.
Du benutzt einen zusammengesetzten key.
Das würde funktionieren, wenn auch die 2. Spalte sortiert wäre.
Dann würde die getAllDocumentsByKey (array) Funktion nach allen Dokumenten in der Ansicht suchen, die in der ersten Spalte E2 und und in der zweiten Spalte H haben.
Das ist aber nicht in deinem Sinne. Du willst eine Art OR-Operator. Oder der logische Operator IN in SQL (WHERE wert IN werteListe)
Eine solche Funktionalität bietet getAllDocumentsByKey aber nicht an.
Du musst 2 getAllDocumentsByKey gegen die Ansicht senden.
Dim col As NotesDocumentCollection
Dim Key as String
Dim countAll As integer
Key = "E²"
col = vw.GetAllDocumentsByKey(Key,True)
countAll = col.count
Key = "H"
col = vw.GetAllDocumentsByKey(key, true)
countAll = countAll + col.count
Besser vom Sauberen-Programmierstandpunkt wäre es die keys als Array zu übergeben und das ganze in einer Schleife abzuarbeiten.
Wobei der Funktion getAllDocumentsByKey jeweils ein Element des Arrays übergeben wird.
Gruß Axel
-
Hier stimmt die ganze Syntax nicht. NotesView.GetAllDocumentsByKey muss ein String oder ein array of strings übergeben werden.
Ohne jetzt weiter auf Axels völlig richtige Einwendungen einzugehen, nur folgendes:
Syntaktisch wäre korrekt:
Dim aKeys (0 to 1) as String
aKeys (0) = "gaga"
aKeys (1) = "blabla"
Jetzt kann man in der gewünschten View nach "gaga" in Spalte 1 (sortiert !) und "blabla" in Spalte 2 (sortiert!) suchen.
Wie Axel schon sagte: NotesView.GetAllDocumentsByKey hat mit dem Operator "OR" absolut nichts zu tun. Entweder Du baust Dir zwei Collections und wertest diese aus oder verwendest eine weniger performante NotesDatabase.Search oder Du arbeitest mit der Volltextsuche.
Könnte sich Deine Firma vorstellen, mal einen Profi für ein "Training on the job" anzuheuern ? Irgendwie stocherst Du nach wie vor im Nebel, Boris ...
Bernhard
-
OK habs jetzt anders gelöst. Ich dachte halt das es irgendwie mit OR zu lösen wäre.
Bernhard, das mit einem Training ist so eine Sache.
1. Meine Haupttätigkeit ist etwas völlig anderes.
2. Schulungen die im Haus angeboten werden sind nur Grundlagen.
3. Bei einem Grundlagenkurs (den man braucht um den Designer zu bekommen) habe ich nachgefragt ob man nicht ein wenig auf script eingehen könnte. Antwort war: ".....ihrer Organisation ist es am liebsten wenn Sie überhaupt nicht wissen das es script gibt..."
Das hat damit zu tun das wir für Hardware, Software eine Firma beschäftigen die dann wohl weniger Arbeit hätte.
Naja und deshalb muss ich mir da selbst helfen.
Gruss
Boris