Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: manuel am 17.10.02 - 14:32:43

Titel: Search
Beitrag von: manuel am 17.10.02 - 14:32:43
Hallo allerseits

Arbeite gerade an einer Funktion, um Dokumente nach gewissen Feldkriterien zu suchen. Das funktioniert mit dieser Methode ganz gut:

Set notesDocumentCollection = notesDatabase.Search( formula$, notesDateTime, maxDocs% )

Es ist möglich in der Suchformel, die übergeben wird, bei gewissen Feldern genau anzugeben, was in diesen Feldern enthalten sein soll. zB:

  searchFormula$ = "Form = ""Project"" & ReminderDate = @Today"

Nun ist es aber so, dass diese Suchkriterien genau übereinstimmen müssen. Es ist also nicht möglich, so wie bei der Methode FTSearch, dass wenn man "Hampel" eingibt, dass auch nach "Hampelmann" gesucht wird. Ich will aber absichtlich keine Volltextsuche verwenden, weil ich hier die Suchkriterien nicht bestimmten Feldern zuordnen kann. Dies kann nur die Methode Search, oder gibt es vielleicht doch noch eine andere Möglichkeit?

Schöne Grüße
Manuel
Titel: Re:Search
Beitrag von: Glombi am 17.10.02 - 14:36:14
Wie wär's mit

searchFormula$ = "Form = ""Project"" & ReminderDate = @Today" &
@Contains(@lowercase(Feld);"hampel")

@lowercase deshalb, da dann die Suche nicht case sensitive ist.

Gruß
Andreas
Titel: Re:Search
Beitrag von: Glombi am 17.10.02 - 14:37:41
ach ja, das mit den "" in String
besser ist

searchFormula$ = {Form = "Project" & ReminderDate = @Today &
@Contains(@lowercase(Feld);"hampel")}
Titel: Re:Search
Beitrag von: eknori am 17.10.02 - 14:37:51
habe das in einer Anwendung mal so gemacht

Dim dc As NotesDocumentCollection   

tmp$="DeinWert"

selection = "SELECT (@Contains(TAEDNR;" & Chr(34) & tmp$  & Chr(34) & "))"

Set dc = db.Search( selection, Nothing ,0 )


selection kannst du beliebig erweitern
Chr(34) ist das " -Zeichen

eknori
Titel: Re:Search
Beitrag von: manuel am 17.10.02 - 14:47:54
Hey, das ist super. Funktioniert toll. Sogar das Problem mit Groß-/Kleinschreibung ist nun gelöst.

DANKE EUCH BEIDEN !!!

Schönen Gruß
Manuel
Titel: Re:Search
Beitrag von: ata am 17.10.02 - 15:22:36
... noch ne Variante

selection = |Form = "Project" & ReminderDate = @Today &
@Contains(@lowercase(Feld);"hampel")|


Die Pipe-Zeichen ersetzen die Anführungszeichen, damit lässt sich die Formel dann ganz gewöhnlich schreiben. Wenn man in der Formel dann ein "oder" braucht siehts dann so aus:


selection = |Form = "Project" |+"|"+| ReminderDate = @Today &
@Contains(@lowercase(Feld);"hampel")|

... als Beispiel

ata
Titel: Re:Search
Beitrag von: manuel am 17.10.02 - 15:26:17
Danke ata.
Das war mir schon bekannt. Trotzdem danke.
Mir persönlich gefällt aber der Vorschlag von Glombi besser, es mit den geschwungenen Klammer {} zu lösen.
Es ist einfach viel übersichtlicher bei einer langen Suchformel.

Schönen Gruß
Manuel
Titel: Re:Search
Beitrag von: Axel am 17.10.02 - 20:25:19
Zitat
Ich will aber absichtlich keine Volltextsuche verwenden, weil ich hier die Suchkriterien nicht bestimmten Feldern zuordnen kann. Dies kann nur die Methode Search, oder gibt es vielleicht doch noch eine andere Möglichkeit?


Hi Manuel,

selbstverständlich kann man mit der Volltextsuche auch Suchkriterien bestimmten Feldern zuordnen.

Der Suchstring muss dann so aussehen:

searchFormula$ = {FIELD Form CONTAINS "Project" & FIELD ReminderDate = Today()}

oder etwas kürzer:

searchFormula$ = {[Form] CONTAINS "Project" & [ReminderDate] = Today()}


Axel
Titel: Re:Search
Beitrag von: manuel am 18.10.02 - 08:25:10
Hi Axel

Schaut gut aus, hab ich gar nicht gewusst, dass dies auch mit FTSearch funktioniert. Hab' mir gerade die Hilfe noch einmal genauer angesehen. Es gibt wirklich einige Möglichkeiten die Suche noch weiter einzuschränken.

Danke für deinen Tipp. Aber ich bleibe einstweilen bei der normalen Search-Methode.

Schönen Gruß
Manuel