Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: DMoelders am 23.09.02 - 13:34:48
-
Ich habe folgendes Problem:
Ich möchte über Script einen Datumswert suchen, der zwischen x und y liegt. Dazu benutze ich die Operatoren > und <. Über die normale Suchleiste funktioniert es, jedoch nicht aus dem Script heraus.
Ich erhalte folgenden Fehler:
"Notes error: Unbekannter Operator in Feldabfrage. (FIELD Jubilaeum > 02.09.2002) AND (FIELD Jubilaeum < 23.09.2002)"
Was habe ich falsch gemacht?
Vielen Dank im Vorraus.
-
Hi,
wenn du den Volltext über Script machen willst, dann darfst du FIELD nicht benutzen.
Versuchmal so:
([Jubilaeum] > 02.09.2002) & ([Jubilaeum] < 23.09.2002)
Axel
-
Danke für die prompte Antwort!!!
Leider funktioniert diese Art der Umsetzung bei mir auch nicht. Ich benutze den Operator FIELD an mehreren Stellen in meinem Script im Zusammenhang mit CONTAINS bei der Abfrage von Textfeldern. Ich vermute, er stört sich an den Zeichen > und <.
Trotzdem Danke!
-
Hi,
FIELD brauchst du auch für CONTAINS nicht. Hier mal ein Beispiel eines Suchstrings für eine Volltextsuche aus einer unserer DBs:
[xForm] CONTAINS frmProjektDaten & [Land_D] CONTAINS Deutschland AND [Von] > 10.09.2001 AND [GesamthonorarTDM] > 100
Axel
-
Hi,
nochmal Danke,
ich habe das Script mal nach Deinen Tips umgeschrieben. Leider immer noch die gleiche Fehlermeldung.
"Notes error: Unbekannter Operator in Feldabfrage.
( [Jubilaeum] > 02.09.2002) AND ( [Jubilaeum] < 23.09.2002)"
Könnte es vielleicht am Feldtyp liegen?
Danke,
Daniel
-
Hi,
möglich. Ist das Feld ein Text- oder Datumsfeld?
Axel
-
Hi,
es handelt sich um ein Datumsfeld
Daniel
-
hau doch mal kurz den Code hier rein..
irgendwie denke ich, daß Du dem NotesDateTime und LSTime ein Prob hast...irgendwie muß Deine Suchroutine anders aufgebaut sein, denn sonst hat das was Axel mit den FTSearch Strings aufgeschrieben hat an sich keine Probleme.
Zur Info wegen Zeitvergleichen habe ich mal die 2 "Artikel" von LDD:
http://www-10.lotus.com/ldd/46dom.nsf/55c38d716d632d9b8525689b005ba1c0/ab7a337c6e0157688525659a00646ff8?OpenDocument&Highlight=0,compare,date,script
und
http://www-10.lotus.com/ldd/46dom.nsf/55c38d716d632d9b8525689b005ba1c0/bcd6a0df0d94f3178525659b003b23ef?OpenDocument
-
Hi,
hier der Code(Ausschnitt):
If Trim$(uiDoc.FieldGetText("Jubilaeum1")) <> "" And Trim$(uiDoc.FieldGetText("Jubilaeum2")) <> "" Then
strSuche = strSuche & " AND " & "( [Jubilaeum] > " & Trim$(uiDoc.FieldGetText("Jubilaeum1")) & " ) AND " & "( [Jubilaeum] < " & Trim$(uiDoc.FieldGetText("Jubilaeum2")) & " )"
End If
Zum Schluss wird das führende "AND" weggeschnitten und heraus kommt der fertige Suchstring(bis max. ca. 50-60 Felder). Wir hatten damit bisher nie Probleme, bis wir nun zwischen zwei Datümern suchen möchten. Die Suche nach exakt einem Datum stellt kein Problem dar. Ich habe auch schon versucht die "fieldGetText-Befehle" durch reine NotesDateTime-Klassen zu ersetzen, jedoch mit demselben Ergebnis.
Danke im Vorraus
Daniel
-
lass mal sehen, hab mal schnell in LDD Gold Forum nach FTSearch AND Date AND Between nachgesehen und komme auf diesen Beitrag für Suche zwischen 2 Datumsangaben:
Quelle:
http://www-10.lotus.com/ldd/46dom.nsf/55c38d716d632d9b8525689b005ba1c0/9d345e30e0ee59218525686300739e5a?OpenDocument
"(FIELD Date < " & doc.Ending(0) & " OR FIELD Date = " & doc.Ending(0) & ") AND (FIELD Date > " & doc.Beginning(0) & " OR FIELD Date = " & doc.Beginning(0) & ")"
gegenüber Deinem
strSuche = strSuche & " AND " & "( [Jubilaeum] > " & Trim$(uiDoc.FieldGetText("Jubilaeum1")) & " ) AND " & "( [Jubilaeum] < " & Trim$(uiDoc.FieldGetText("Jubilaeum2")) & " )"
vergleich mal beide...
-
Hi,
ich habe das Problem gefunden. Es lag wie es scheint nicht an den Feldern oder verwendeten Zeichen, sondern schlichtweg an einer falsch gesetzten Klammer.
Auf jeden Fall vielen Dank an meine Helfer!!!
Daniel