Domino 9 und frühere Versionen > Entwicklung
if Funktion mit Datumsvergleich -wie?
ata:
... ich würde aus Performance-Gründen das Updaten der Dokumente vorziehen...
ata
liareuper:
ähhm sorry, aber da blick ich jetzt nicht so ganz durch, was macht die Formel denn im einzelnen?
Today1 := @TextToTime("Heute");
Today2 := @TextToTime("Today");
Today3 := @TextToTime("Aujourd\'hui");
Today := @If(Today1 > [01.01.1900];Today1;Today2 > [01.01.1900];Today2;Today3);
@If(@Date(Today)=@Date(@TextToTime(FELD_Datum));"JA";"NEIN")
Rob Green:
die Formel ist quasi ein hidden Feature in Notes.
die Zeile
Today1 := @TextToTime("Heute");
besagt, daß ein deutscher Domino Server den Begriff @texttotime("Heute") tatsächlich versteht...
Da man aber als Entwickler sich nie sicher sein, ob der Server nur english, deutsch oder auch französisch eingestellt ist/umgestellt wird, verwendet man 3 Zeilen mit den entspechenden Begriffen für "Heute" (Heute, Today und Aujourd\'hui) und testet in der letzten Zeile, wo ein Ergebnis vorliegt, das dann zu verwenden ist.
Today := @If(Today1 > [01.01.1900];Today1;Today2 > [01.01.1900];Today2;Today3);
Der große Trick oder Sinn dahinter ist, daß Domino meint, keine Zeitformel vor sich zu haben und datet daher auch den Viewindex nicht jede Sekunde up, wie es bei Verwendung zB von @now, @today, @tomorrow, etc... wäre. Das schont die Ressourcen des Servers, sprich speedfreundlicher. Das merkt man optisch rein am "Schweinekringel" oben links, der in der View nicht ständig angezeigt wird.
Wem das zu unsicher ist und dennoch Zeitformeln in Views unbedingt verwenden möchte (die obige Formel geht ja nur auf Datum, aber nicht auf Stunden und Minuten Vergleiche, daher Einschränkung in Verwendbarkeit..wobei, habe noch nie probiert, ob auch @texttotime("Jetzt") als Äquivalent zu @now gehen würde...da bekommt man ja statt "Heute" komplett Datum/Uhrzeit zurück)..nehme die Zeitformel und stelle den Indexertask der gegegeben View auf "alle x Stunden Ansicht aktualisieren". Das wäre ein Kompromiss aus Performance und Fleixibilität über Verwendung jeglicher Zeitformeln. Nachteil: wenn zwischen den zB stündlichen Updatezyklen neue Docs erstellt werden, tauchen die solange in der View nicht auf, bis der User selbst F9 drückt oder die Stunde rum ist, so daß der Server updatet.
liareuper:
:)also das mit wem Vergleich hab ich jetzt DANKESCHÖÖÖN!
Allerdings hat sich jetzt schon wieder das nächste Problem eröffnet.
Möchte, dass in der View nur dann etwas ausgegeben wird, wenn
das Abgabedatum größer oder gleich ist mit dem heutigen Datum.
Allerdings weiß ich nicht, was ich dann da als else schreiben soll.
Also das hier wäre jetzt eine Formel
@If (Abgabedatum >= @Today; Projektname; " ")
Die Funktioniert ja auch, allerdings wird für meine else Funktion ja trotzdem dann "eine Reihe/ein Eintrag" in der View angelegt, ich möchte aber, dass wenn die Funktion nicht erfüllt ist er garnichts machen soll!
Rob Green:
ok, wichtig ist erstmal für "welche Dokumente angezeigt werden sollen" nur das SELECT! Die Spaltenformeln sind irrelevant.
zB Select FeldA="ABC" => alle Docs anzeigen mit Feldinhalt ABC in FeldA...der Indexer von Notes geht alle Docs durch und checked ob sie das Feld haben und wenn ja, wie der Inhalt ist. Wenn beides ok, kommen sie in den View.
Dann zu Deinem Fall...zunächst einmal @Today wech...ist genau der Performancekiller, von dem oben bereits mehrfach gesprochen wurde.
Nimm die tricky TODAY Formel oder den Agentansatz.
Wenn es die tricky TODAY Formel ist, dann kommt in die Ansichtsauswahl Formel (!!!!! genau da !!!!)
Today1 := @TextToTime("Heute");
Today2 := @TextToTime("Today");
Today3 := @TextToTime("Aujourd\'hui");
Today := @If(Today1 > [01.01.1900];Today1;Today2 > [01.01.1900];Today2;Today3);
Select Feld_mit_AblaufDatum>=TODAY
ODER
wenn es ein täglicher, zum frühen Morgen laufender Agent ist, der in den Docs ein Feld "Heute" mit @today belegt...dann lautet die Select Formel
Select Feld_mit_AblaufDatum>=HEUTE
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln