Domino 9 und frühere Versionen > ND6: Entwicklung
Zeitüberschneidung validieren
(1/1)
horst0815:
Hallo erst einmal an alle in diesem Forum.
Ich komme gleich zu meinem Problem.
Ich habe verschiedenen NotesDokumente die in einer View nach Datum gruppiert sind. Darin gibt es dann z.B. 3 Dokumente zum Datum 30.05.2005
Ich muss jetzt vergleichen ob sich die "Startzeit" und "Endzeit" die in den Dokumenten gefüllt sind überschneiden mit der eingestellten Zeit, welche der User in einer Webmaske ausfüllt. Ich möchte also eine Art Terminkalender bauen, welcher dann durch einen Agenten geprüft wird. Mein Problem ist jetzt, wie ich mit LotusScript Mitteln diese Abfragen zusammenbauen kann.
Habt ihr da vielleicht ein paar Tipps für mich.
Würde mich sehr freuen.
Vielen Dank im Vorraus
EDIT:
Problem gelöst. Bin also hierzu nicht mehr unbedingt auf Antworten angewiesen. Für weitere Tipps bin ich aber offen. Also dann bis denmächst
Semeaphoros:
Horst, willkommen im Forum.
Es wäre nett, wenn Du uns kurz schilderst, wie Du das Problem gelöst hast, da könnten dann andere davon profitieren. Danke
horst0815:
ok. ich denke mit dem Beispielcode sollte das ganze klar werden.
--- Code: ---Dim dCtx As NotesDocument
Dim session As NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim col As NotesDocumentCollection
Dim view_zeiten As NotesView
Dim key(1)
Dim m_von As NotesDateTime 'User Eingabefeld in Eingabemaske
Dim m_bis As NotesDateTime 'User Eingabefeld in Eingabemaske
Dim d_von As NotesDateTime 'Dokumentenfeld von bereits vorhandenen Terminen
Dim d_bis As NotesDateTime 'Dokumentenfeld von bereits vorhandenen Terminen
Dim fehler_meldung As String
Sub Initialize
Set session = New NotesSession
Set db = session.CurrentDatabase
Set view_zeiten = db.GetView("ZEITEN")
Set dCtx = session.DocumentContext
Set m_von = New NotesDateTime( Timevalue(dCtx.co_beginn(0)))
Set m_bis = New NotesDateTime( Timevalue(dCtx.co_ende(0)))
key(0) = dCtx.co_datum(0)
Set col = view_zeiten.GetAllDocumentsByKey(key(0))
Set doc = col.GetFirstDocument
Do While Not doc Is Nothing
Set d_von = New NotesDateTime(Timevalue(doc.co_beginn(0)))
Set d_bis = New NotesDateTime(Timevalue(doc.co_ende(0)))
If m_bis.TimeDifference(d_von) < 0 Or m_von.TimeDifference(d_bis) >0 Then
'--ALLES IO--
Else
'--Zeitüberschneidung--
End If
Set doc = col.GetNextDocument(doc)
Loop
End Sub
--- Ende Code ---
Semeaphoros:
Danke Horst, das ist ein schönes Code-Beispiel, das tatsächlich jemanden mit ähnlichen Problemen einen Schritt weiterbringen kann.
eknori:
Das Thema hatten wir vor gut 2 Jahren schonmal hier http://www.atnotes.de/index.php?topic=6094.0
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln