Domino 9 und frühere Versionen > ND9: Entwicklung
LotusScript und Formel db.search
aoibhneach:
Hallo Forum, Guten Morgen,
Ich habe den Lotus Notes viele Beiträge gelesen, aber keine passende Lösung gefunden. Entschuldigung, falls ich zu ungeduldig bin.
In einer Datenbank möchte ich nach allen Dokumenten suchen, die der Bedingung Form = "MyForm" genügen.
--- Code: ---Dim coll as NotesDocumentCollection
Dim suchformel As String
suchformel = {Form = "MyForm"}
Set coll = thisdb.Search(suchformel, Nothing,0)
--- Ende Code ---
Im Debugmodus erscheint suchformel so:
--- Code: ---"Form =""MyForm"""
--- Ende Code ---
Das sieht schon nicht so gut aus - oder? Das Suchergebnis ist:
coll.count = 0
Dagegen ergibt z.B.:
--- Code: ---Set coll = view.GetAllDocumentsByKey("MyForm")
--- Ende Code ---
coll.count = 12345
In der LotusNotes-Hilfe steht in einem Beispiel (Ausschnitt):
--- Code: ---searchFormula$ = {Form = "Project" & ReminderDate = @Today}
Set collection = db.Search(searchFormula$, Nothing,0)
--- Ende Code ---
Gleicht das im Aufbau der Formel (die Gänsefüßchen) nicht meinem Versuch?
Ich habe es (aus purer Panik ;)) auch so probiert:
--- Code: ---suchformel = {Form = "} & "MyForm" & {"}
--- Ende Code ---
Ich bin ratlos; andererseits aber sicher, dass ich etwas übersehen haben muss.
Vielen Dank für Euren Rat.
Viele Grüße,
Nils
CarstenH:
Die Methode notesDatabase.Search ist hier Case sensitiv da die angegebene Formel den Feldinhalt 1:1 mit deinem "MyForm" vergleicht.
Die Methode notesView.GetDocumentByKey ist es hingegen nicht, hier wird nur gegen den Viewindex geprüft.
Last but not least: "Form =""MyForm""" ist nur eine andere Schreibweise bei der {} durch "" ersetzt wird.
HTH
Carsten
aoibhneach:
Hallo Carsten,
Die "{}" benutze ich schon seit Ur-Zeiten. Der "Unterschied" ist mir klar, glaube ich. Ich muss doch in der Formel den Namen der Form in Hochkommas setzen.
Und: Bei Setzen des String "suchformel" muss der ganze Inhalt doch ebenso in Hochkommas eingeschlossen werden.
Dass bei mir die Hochkommas vervielfältigt werden, habe ich als Ursache für das ungewollte Suchergebnis gesehen.
Ist meine Formel und richtig? Warum ist mein Ergebnis "0"? Was ist da falsch?
Viele Grüße,
Nils
CarstenH:
Die Formel an sich ist korrekt, der Client speichert eben nur statt der Klammern {} die Anführungszeichen "".
Und damit die in der Formel zusätzlich vorhandenen Anführungszeichen die Zeichenkette nicht unterbrechen werden sie doppelt dargestellt. Das hat mit deinem Suchergebnis aber nichts zu tun.
Warum dein Suchergebnis vermutlich 0 ist habe ich dir auch beschrieben: wenn im Formfeld z.B. "MYFORM" steht, du aber nach "MyForm" suchst dann findet Search auch nichts.
Tipp:
Leg dir einfach temporär eine View an und packe die Formel zum Testen da hinein, dann siehst du ohne Debugger ob sie funktioniert.
HTH
Carsten
aoibhneach:
Hallo Carsten,
Die doppelten Hochkomma verstehe ich jetzt. Auf die Schreibweise des Namens der Form habe ich auch geachtet. Ich probiere weiter. Ob ich ein "SELECT" einfügen muss? Ich probiere weiter.
Vorerst vielen Dank und Grüße,
Nils
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln