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