Domino 9 und frühere Versionen > ND8: Entwicklung
Ansicht erstellen in Abhängigkeit eines Datumswerts
buzi:
Hallo,
ich kämpfe gerade mit der Erstellung einer korrekten Selection Formel für eine Ansicht. Mir fehlt einfach das Verständnis für die Syntax der Lotus Formelsprache :-(
Es soll eine Ansicht gefiltert werden nach einem vom Benutzer angegebenen Datumswert. Ich habe festgestellt, dass sich die Datumsarten irgendwie nicht vertragen. Die Formelsprache hat ein anderes Format als die Script-Oberfläche? Die übergebenen Parameter startDate und endDate habe ich aus einem Feld im Dokument ausgelesen per GetItemValue() - es handelt sich um ein Feld vom Typ
Datum/Zeit. Der Wert liegt dann in der Form "tt.mm.jjjj" vor. rohDtStatus ist das Feld in den Dokumenten der Ansicht, die erstellt werden soll (aber eben nur von den Dokumenten, deren rohDtStatus sich innerhalb des angegebenen Zeitraums befindet).
Mein Script-Code sieht so aus:
Function CreateView(viewBaseName As String, viewFilteredName, startDate As String, endDate As String) As NotesView
Dim session As New NotesSession
Dim db As NotesDatabase
Dim viewBase As NotesView
Dim strSelectionCompare As String
Dim strSelectionFormula As String
Set db = session.CurrentDatabase
Set viewBase = db.Getview(viewBaseName)
strSelectionCompare = startDate & " <= @GetField(rohDtStatus) <= " & endDate
strSelectionFormula = {SELECT Form = "frmRohware" & } & strSelectionCompare
Set CreateView = db.CreateView(viewBaseName, strSelectionFormula, viewBase)
End Function
Glombi:
So sollte es gehen:
Function CreateView(viewBaseName As String, viewFilteredName, startDate As String, endDate As String) As NotesView
Dim session As New NotesSession
Dim db As NotesDatabase
Dim viewBase As NotesView
Dim strSelectionFormula As String
Set db = session.CurrentDatabase
Set viewBase = db.Getview(viewBaseName)
strSelectionFormula = |SELECT Form = "frmRohware" & @TextToTime("| + startDate + |") <= rohDtStatus & @TextToTime("| + endDate + |") >= rohDtStatus|
Set CreateView = db.CreateView(viewBaseName, strSelectionFormula, viewBase)
End Function
sofern rohDtStatus ein Datumsfeld ist.
Andreas
buzi:
Hallo Andreas,
vielen Dank für deine schnelle Hilfe. Leider kommen keine Dokumente heraus bei der Abfrage. rohDtStatus ein Datumsfeld (Datum/Zeit).
Wo könnte es sonst klemmen??
Glombi:
Du solltest mal im Debugger nachsehen, ob startDate und endDate wirklich Strings sind und ob dort ein String steht, der in ein Datum konvertiert werden kann.
Da die View auf dem Server erstellt wird, wäre auch interessant zu wissen, ob auf dem Server das Datumsformat passt.
Was soll der Parameter "viewFilteredName" ? Der wird nicht verwendet und wird als Variant übergeben.
Peter Klett:
Das soll bestimmt
Set CreateView = db.CreateView(viewFilteredName, strSelectionFormula, viewBase)
heißen, sonst ist das ganze Konstrukt recht sinnfrei (erstelle eine Ansicht auf Basis einer anderen in der gleichen DB mit gleichem Namen)
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln