Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: DannyCrown am 17.06.09 - 07:28:35

Titel: Notesdatabase.Search
Beitrag von: DannyCrown am 17.06.09 - 07:28:35
Hallo Leute,

ich habe da mal wieder eine Frage.
Ich habe eine Maske mit einem Feld "betreff". Ich möchte jetzt per db.Search dieses Feld in allen Dokumenten nach einem String durchsuchen. Diesen String überprüfe ich dann mit @contains. Das funktioniert soweit auch ganz gut, aber @contains ist ja case sensitiv. Habe auch schon mit @lower / uppercase gearbeitet, doch dann bekomme ich natürlich keine Dokumente, die in der mitte groß / klein Buchstaben haben. Ich hätte gerne alle Dokumente angezeigt, in denen dann suche, Suche, sUcHe steht. Hat da jemand ne Idee?

formula = { SELECT (Form = "Test") & @Contains(betreff;suchstr) }
Set dc = db.Search(formula, Nothing, 0)

Vielen Dank im Vorraus!
Titel: Re: Notesdatabase.Search
Beitrag von: Spalter am 17.06.09 - 07:39:31
 ???

Hallo Daniel,

warum klappt das nicht mit @lowercase?

Aus der Hilfe:

Converts the uppercase letters in the specified string to lowercase.

This function is useful when you want to search for a particular value and cannot predict whether it appears in lowercase or uppercase letters, or a combination of the two. You can also use it as an input translation formula to convert the contents of a field to lowercase.

Gruß
Spalter
Titel: Re: Notesdatabase.Search
Beitrag von: DannyCrown am 17.06.09 - 07:43:05
weil ich ja mit @lowerCase zwar meinen SuchStr klein kriege, aber ja nicht den Text im Betreff Feld

@Contains(betreff,@lowerCase(suchStr))

edit: So hab ichs zumindest gedacht, aber anscheinend gehts doch so: @Contains(@LowerCase(betreff);@LowerCase(suchStr))
        Dachte mit dem ersten @lowerCase würde nur der Feldname dann klein geschrieben, aber anscheined funktionierts so. Danke
Titel: Re: Notesdatabase.Search
Beitrag von: tks am 17.06.09 - 07:45:39
@Contains(@lowercase(betreff);@lowercase(suchStr))  :-:
Titel: Re: Notesdatabase.Search
Beitrag von: DannyCrown am 17.06.09 - 07:51:16
ja, das ists, hatte ich ja ein paar Sekunden vor dir geschrieben  ;D Aber trotzdem Danke!

Hab jetzt nur noch ne andere Fragen:
Warum funktioniert es nicht, wenn ich den SuchString in ner zwischenvariablen speichere? Also wenn ich die erste Formel ausführe, dann werden mir alle Dokumente zurückgegeben, aber die 2. Formel funktioniert einwandfrei. Hat da noch jemand ne Idee?

Dim suchStr As String
suchStr = "Suche"

formula = { SELECT (Form = "Test") & @Contains(@LowerCase(betreff);@LowerCase(suchStr)) }

'formula = { SELECT (Form = "Test") & @Contains(@LowerCase(betreff);@LowerCase("Suche")) }
Titel: Re: Notesdatabase.Search
Beitrag von: TRO am 17.06.09 - 08:00:32
formula = { SELECT (Form = "Test") & @Contains(@LowerCase(betreff);@LowerCase("} & suchStr & {")) }
Titel: Re: Notesdatabase.Search
Beitrag von: DannyCrown am 17.06.09 - 08:04:37
oh mann, danke! Syntax gewurschtel  ;D