Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: TY am 30.04.12 - 13:10:14

Titel: zwei Datumsfelder in Auswahlformel
Beitrag von: TY am 30.04.12 - 13:10:14
Hallo liebes Nots-Team,

ich stehe grad vor dem Problem, über SelectionFormula eine Ansicht mit zwei eingegebenen Datumsfeldern einzuschränken. Folgende Formeln funktionieren:
formula = | SELECT Form = "KB01"  &  @Left(@Text(Datum); 10) = "| & doc.DatumVonAus(0) & |"  |
formula = | SELECT Form = "KB01"  &  @Left(@Text(Datum); 10) > "| & doc.DatumVonAus(0) & |"  |
formula = | SELECT Form = "KB01"  &  @Left(@Text(Datum); 10) > "25.01.2012"  |
Wenn ich jetzt aber ein zweites Datumsfeld hinzunehme (und sei es erst mal hardcodiert), kommt die Fehlermeldung:
"Ein Operator oder Semikolon wurde erwartet, aber nicht gefunden"
formula = | SELECT Form = "KB01"  &  @Left(@Text(Datum); 10)  > "25.01.2012" AND @Left(@Text(Datum); 10) = "| & doc.DatumVonAus(0) & |"    |
Anm.: Ich möchte mir ein "Between" basteln und hab gelesen, dass bei Datumsfeldern ein >= nicht funktioniert. Aber es funktioniert ja die obige schon nicht.
Stehe grad völlig auf dem Schlauch ....

Vielen Dank für Antworten
Titel: Re: zwei Datumsfelder in Auswahlformel
Beitrag von: koehlerbv am 30.04.12 - 13:22:15
Was macht das AND in der Formel?

Titel: Re: zwei Datumsfelder in Auswahlformel
Beitrag von: Peter Klett am 30.04.12 - 13:27:19
Du vergleichst Datum als TEXT.

"25.01.2012" ist kleiner als "26.01.1900" und größer als "01.01.2050" (im Textvergleich).

Warum sollte Datum nicht >= können? Sicherlich dann nicht, wenn Du die Uhrzeit nicht entfernst, sonst schon.
Titel: Re: zwei Datumsfelder in Auswahlformel
Beitrag von: TY am 30.04.12 - 13:40:47
Oh Mann, stimmt. Hab da bei den Formeln was durcheinander geworfen... oder eher vermixt.
Der richtige Ansatz ist:
formula = | SELECT Form = "KB01"  &  @Left(@Text(Datum); 10)  > "25.01.2012" & @Left(@Text(Datum); 10) = "| & doc.DatumVonAus(0) & |"  |

oder anstatt "&":
formula = | SELECT Form = "KB01"  &  @Left(@Text(Datum); 10)  > "25.01.2012" || @Left(@Text(Datum); 10) = "| & doc.DatumVonAus(0) & |"  |

Fehlt zwar noch ein bischen, aber so kann ich mir das "BETWEEN" zusammenbauen.


@Peter:
Werde es mal testen. Dann werd ich das Datumsfeld nehmen, wie es ist und nur die Uhrzeit entfernen.


Vielen Dank
Titel: Re: zwei Datumsfelder in Auswahlformel
Beitrag von: Peter Klett am 30.04.12 - 13:52:50
@Left(@Text(Datum); 10)  > "25.01.2012" bleibt trotzdem ein Textvergleich, der nichts mit einem Datumsvergleich zu tun hat.

@Date (Datum) > [25.01.2012] würde ich mal probieren
Titel: Re: zwei Datumsfelder in Auswahlformel
Beitrag von: TY am 30.04.12 - 14:26:03
ich hab die Formel umgebaut:
formula = | SELECT Form = "KB01"  &  (@Left(@Date(Datum); 10)  >= @Left(@Date( "| & doc.DatumVonAus(0) & |") ;10) & @Left(@Date(Datum); 10) <= @Left( @Date("| & doc.DatumBisAus(0) & |"); 10))  |

in der Ansichtsauswahl steht:
 SELECT Form = "KB01"  &  (@Left(Datum; 10)  >= "25.01.2012" & @Left(Datum; 10) <= "26.01.2012")
Die Anführungsstriche setzt mir Notes automatisch und das @Date fehlt.

Sollte jetzt nicht der 25.01. und 26.01. angezeigt werden?
 SELECT Form = "KB01"  &  (@Left(Datum; 10)  >= "25.01.2012" || @Left(Datum; 10) <= "26.01.2012")
funktioniert auch nicht
Titel: Re: zwei Datumsfelder in Auswahlformel
Beitrag von: TY am 30.04.12 - 14:27:32
Nachtrag:
Ich schreibe ein Datum in ein Profildokument und lese dies wieder aus
doc.DatumVonAus(0) und doc.DatumBisAus(0)

Die Feldeigenschaften sind gleich...
Titel: Re: zwei Datumsfelder in Auswahlformel
Beitrag von: Peter Klett am 30.04.12 - 14:32:48
Mein ungetesteter Tipp:

formula = | SELECT Form = "KB01"  &  @Date(Datum)  >= [| & doc.DatumVonAus(0) & |] & @Date(Datum) <= [| & doc.DatumBisAus(0) & |]|

EDIT: doc.DatumBisAus und ...VonAus werden vermutlich noch Angaben zu Uhrzeiten haben, die müssen noch weg oder entsprechend passend gesetzt werden (...VonAus mit 00:00:00 und ...BisAus mit 23:59:59)
Titel: Re: zwei Datumsfelder in Auswahlformel
Beitrag von: TY am 30.04.12 - 14:39:17
Vielen herzlichen Dank, das ist es !!!!!
Irgendwann sieht man selbst nicht mehr was für ein murks man macht.... Klar werden Anführungsstriche gesetzt, wenn man sie bewusst eingibt...

Danke Euch nochmal und einen schönen Feiertag morgen