Domino 9 und frühere Versionen > Entwicklung

if Funktion mit Datumsvergleich -wie?

<< < (2/4) > >>

Rob Green:
hm...ich weiß ja nicht wo der Vergleich läuft, aber mach - wenn beide TEXT sind - diese Formel nei:

@if(@date(Feld1)=@date(Feld2);"GLEICH";"UNGLEICH")

liareuper:
Der Vergleich findet in ner View statt. Das Ergebnis soll dann in die Tabell eingetragen werden.

Die beiden Felder sind in ner Form.

Deine Formel geht leider auch nicht :(

Rob Green:
"der Vergleich findet in einer View statt..."

dann lautet die Spaltenformel auf jeden Fall für die entsprechende Spalte @if(@date(F1)=@date(F2);"JA";"NEIN"), solange im Feld F1 textlich "12.03.03" und im Feld F2 textlich "12.03.03" steht.

Allerdings, wenn man ein Dokument gestern mit Werten befüllt, wird der Wert des Feldes mit der @today Formel auch heute noch "11.03.03" sein, solange man das Doc heute nicht updatet.

Und, darüberhinaus, wenn Du in einer Tabelle (also wiederum einem Dokument) die View abfragen willst, mußt Du schon genau wissen, welche Dokumente/Werte miteinander verglichen werden sollen bzw. welche Infos aus welchen Spalten kommen sollen. Die üblichen Viewformeln in Masken sind @dbcolumn (eine Spalte mit x- Werten auslesen) oder @dblookup (Dokumente nach einem Suchbegriff aus der View heraus finden).

Ich denke, das hilft Dir wohl bißerl weiter...wie weit bist Du in Notes erfahren?

liareuper:
"...wenn Du in einer Tabelle (also wiederum einem Dokument) die View abfragen willst, mußt Du schon genau wissen, welche Dokumente/Werte miteinander verglichen werden sollen..."

Die Formel steht direkt in der View und das Ergebnis soll auch dort wieder ausgegeben werden. Das hab jetzt auch hingekriegt -
hab dem Feld in der View, in das das Abgabedatum von Hand eingetragen werden soll das Format Date/Time gegeben und das andere Feld, in dem die Formel @today steht das Format Text.

In der View hab ich dann die Formel:
@If( Abgabedatum = Heute ; "richtig" ;  "falsch" ) eingetragen.

Allerdings, muss ich wie du gesagt hast die Felder irgendwie "updaten". Ich hab nämlich gestern einen Vergleich eingeben, und zwar als Abgabedatum 28.03.2003, die Formel hat gestern richtigerweise "falsch" ausgegeben, allerdings müßte das Ergebnis ja heute dann "richtig" sein, ist es aber nicht...????

Erfahren bin ich in Notes nit so wirklich, stehe eigentlich noch ziemlich am Anfang.




 

Rob Green:
1. Lösung, viewbasierend, mE die beste:
nimm in die Spalte für den Vergleich folgende Formel

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")

Das schont die Ansicht und man muss die Docs nicht manuell updaten.

2. Lösung, dokumentbasierend per Agentlauf:
nimm nen täglichen Agent, der einmal morgens über alle Docs läuft und per folgender Formel das Feld mit TODAY updatet..

Field TODAY:=@today / oder Field TODAY:=@text(@today)

3. Lösung, viewbasierend:
nimm in die Spalte für den Vergleich folgende Formel
@if(@today<>@date(@textToTime(Feld_DATUM)); "NEIN" ; "JA")
riesiger Nachteil bei vielen Docs...der Server muß den View sehr sehr häufig updaten, da jegliche Zeitformeln in Views dazu führen, dass der View nachgerechnet werden muss, was ja auch logisch ist...tick tack

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln