Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: horst0815 am 31.05.05 - 10:15:55

Titel: Zeitüberschneidung validieren
Beitrag von: horst0815 am 31.05.05 - 10:15:55
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
Titel: Re: Zeitüberschneidung validieren
Beitrag von: Semeaphoros am 31.05.05 - 12:04:19
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
Titel: Re: Zeitüberschneidung validieren
Beitrag von: horst0815 am 31.05.05 - 12:53:37
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
Titel: Re: Zeitüberschneidung validieren
Beitrag von: Semeaphoros am 31.05.05 - 14:39:38
Danke Horst, das ist ein schönes Code-Beispiel, das tatsächlich jemanden mit ähnlichen Problemen einen Schritt weiterbringen kann.
Titel: Re: Zeitüberschneidung validieren
Beitrag von: eknori am 31.05.05 - 14:56:29
Das Thema hatten wir vor gut 2 Jahren schonmal hier http://www.atnotes.de/index.php?topic=6094.0