Domino 9 und frühere Versionen > ND6: Entwicklung
in Formelsprache Datumsdifferenz bilden und Ansicht reduzieren
prong!:
Hallo ,
in einer Ansicht habe ich eine Spalte : Creationdate .
Ziel : ich möchte in der Ansicht nur Dokumente anzeigen , welche schon mindestens 3 Wochen alt sind...
Wie könnte ich nun den Ansichtsfilter so setzen, das nur die mehr als 3 wochen alten Dokumente ( Creationdate - 21Tage ) angezeigt werden ?
Beispiel:
Field Name: Creationdate
Data Type: Time/Date
Data Length: 8 bytes
Seq Num: 1
Dup Item ID: 0
Field Flags: SUMMARY
13.02.2007 17:03:00 CET
Unter Script würde dies gehen mit ( nur bezogen auf now , nicht auf creatindate) :
Dim dateTime As New NotesDateTime( Now )
Call dateTime.AdjustDay( -21 )
Aber lässt sich dieses auf die Ansicht anwenden oder sogar den Ansichtsfilter beeinflussen , und das vielleicht sogar in Formelsprache ?
Würde mich über Schubser in die richtige Richtung freuen ,
Gruß Dirk.
prong!:
Momentan denke ich darüber nach per Agent / alle Dokumente in der Ansicht zu aktualisieren und ein Feld 'Show' als Hilfe zu benutzen :
Wenn das Feld Show dann 1 sein sollte könnte man dies bequem per Formel oder AnsichtsFilter begrenzen....
Jedoch es klemmt...
noch habe ich hier :
If ( dateTimeNow => doc.creationdate(0) ) Then
einen Type mismatch....
wobei
Dim dateTimeNow As New NotesDateTime( Now )
und
Field Name: Creationdate
Data Type: Time/Date
Data Length: 8 bytes
Seq Num: 1
Dup Item ID: 0
Field Flags: SUMMARY
doch vom gleichen Typ sein müssten , oder ?
Sub Initialize
Dim s As New NotesSession
Dim db As NotesDatabase
Set db = s.CurrentDatabase
Dim view As notesview
Set view = db.GetView ("OpenReqs")
Dim doc As notesdocument
Set doc = view.GetFirstDocument
While Not ( doc Is Nothing )
Dim dateTime As New NotesDateTime( doc.creationdate(0) )
Call dateTime.AdjustDay( -21 )
Dim dateTimeNow As New NotesDateTime( Now )
Call dateTimeNow.AdjustDay( -21 )
If ( dateTimeNow => doc.creationdate(0) ) Then
doc.show = "1"
End If
Wend
End Sub
prong!:
Hallo ,
hmm ja ok ,
Variant ist nicht gleich Time/Date....
Würde mir jemand helfen diese Formate nun so zu wandeln das Sie zum gleichen Typ werden und so vegleichbar werden ?
Danke ,
Gruß Dirk
____________________________________________________________
Now returns the current system date and time as a Variant of DataType 7 (Date/Time).
Field Name: Creationdate
Data Type: Time/Date
Data Length: 8 bytes
Seq Num: 1
Dup Item ID: 0
Field Flags: SUMMARY
dirk_2909:
Hallo Dirk
Ich würde das nicht über einen Agenten machen, der ständig Dokumente ändert, obwohl es unnötig ist.
Mach es über die Ansichtauswahl. Hier ein Beispiel für die Formel:
--- Code: ---_todayD := @TextToTime( @Right( "idc_Heute" ; "idc_" ) );
_todayE := @TextToTime(@Right( "idc_Today" ; "idc_" ));
_todayF := @TextToTime(@Right( "idc_Aujourd'hui" ; "idc_" ));
_today := @If(_todayD > [01.01.1900];_todayD;_todayE > [01.01.1900];_todayE;_todayF);
_dat := @Adjust( CreationDate ; 0 ; 0 ; 21 ; 0 ; 0 ; 0 ) ;
SELECT Form = "fMyForm" & _today > _dat
--- Ende Code ---
Ich setzte das so in verschiedenen Anwendungen ein und klappt super. keine Performance einbußen, wie bei der Verwendung von @Today ;-)
prong!:
Hallo Dirk
Hört sich gut an , ich werde heute mal versuchen das einzusetzen/anzuwenden.
Vielen Dank erstmal.
Gruß Dirk
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln