Domino 9 und frühere Versionen > Entwicklung
Terminüberschneidungen bei Raumbuchungen.
eknori (retired):
So, der guten Ordnung halber hier der Code für den CHECK
Sub Click(Source As Button)
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Dim workspace As New NotesUIWorkspace
Dim dc As NotesDocumentCollection
Set db = session.CurrentDatabase
Set View = db.GetView ( "($BUSYTIME)" )
Dim uidoc As NotesUIDocument
Set uidoc = workspace.CurrentDocument 'Look at the current document on the screen
Dim dtimefromNEU As New NotesDateTime ( Cstr ( uidoc.FieldGetText ( "StartDatumZeit" ) ) )
Dim dtimetoNEU As New NotesDateTime ( Cstr ( uidoc.FieldGetText ( "EndDatumZeit" ) ) )
DOCUID$ = uidoc.FieldGetText ( "ID" )
Set dc = view.GetAllDocumentsByKey( uidoc.FieldGetText( "co_Resource" ) )
For i% = 1 To dc.Count ' Alle docs in der collection durchlaufen
Set doc = dc.GetNthDocument ( i% ) ' erstes doc aus collection holen
If doc.ID(0) <> DOCUID$Then ' gefundenes doc ist nicht uidoc
Dim dtimefromALT As New NotesDateTime ( Cstr ( doc.StartDatumZeit(0) ) )
Dim dtimetoALT As New NotesDateTime ( Cstr ( doc.EndDatumZeit(0) ) )
If dtimefromNEU.TimeDifference ( dtimetoALT ) > 0 Or dtimetoNEU.TimeDifference ( dtimefromALT ) < 0 Then
flag% = 0 ' keine überschneidung
Else
flag% = 1
Goto NotAvailable
End If
End If
Next
Exit Sub
NotAvailable:
Msgbox "NotAvailable"
End Sub
Die Ansicht ($BUSYTIME) enthält in der ersten Spalte aufsteigend sortiert den Namen der Resource.
Rob Green:
habe es nahezu ebenso gelöst..
bei mir kommt noch dazu, daß ich mittlerweile widerholende Termine verarbeite und dabei mehrfach vorhandene, zu reservierende Ressourcen/Räume im aktuellen Termindoc auf mögliche Terminüberschneidungen gechecked und einzeln reported werden müssen. Daher ist mein Code noch etwas länger geworden. Wenn ich das Teil fertig habe, werde ich es hier posten...momentan ist er noch sehr unsauber (keine explizite Deklaration, keine vernünftigen Variablen Namen, etc...unnötige, doppelte Intialisierungen von Objekten, etc...).
Erschwerend kommt hinzu, daß man tagesüberschreitend ganztägige Termine eingeben kann, wobei die EndZeit kleiner der Startzeit sein kann (klar, heute Auto um 12:00 Uhr bis übermorgen ausgeliehen, Rückgabe um 09:00 Uhr)...dabei werden repetierende Einzeltermine angelegt beim Abspeichern und der letzte Tag mit der EndZeit 09:00 Uhr in dem Beispiel.
Und, um es noch etwas einfacher zu machen ;D...*grins....gut schwarzen Humor zu haben* dass man Serientermine verändern kann - natürlich muß dann erneut ein Terminkollisionscheck ausgeführt werden - und das System den User fragt "wollen sie den Termin löschen, alle löschen, alle Serien Termine in der Zukunft entsprechend anpassen, alle Serien Termine in der Vergangenheit..., oder nur diesen anpassen?" :P :P :P
*bin schon am Singen:
Mein Lotus Notes fährt 210, schwupp, IBM hat's nicht geseh'n,
das macht Spaß! Ich geb' Gas, ich geb' Gas!
Will nicht spar'n, will nicht vernünftig sein,
bau nur das beste rein, ich mach' Spaß!
Ich geb' Gas ich geb' Gas! - Ich will Spaß, ich will Spaß!
Ich will Spaß ich will Spaß! Ich geb' Gas, ich geb' Gas!
Ich will Spaß, ich will Spaß!
Ich schubs die Templates aus dem Verkehr, ich jag'die Formeln vor mir her,
ich mach' Spaß! Ich mach' Spaß, ich mach' Spaß!
Und kost'der Mist auch viele Müh, scheiß egal, es wird schon
geh'n,
ich will coden! Ich will jodln, ich will johln.
Ich will Spaß, ich will Spaß! Ich will Spaß, ich will Spaß!
Ich geb' Gas, ich geb' Gas! Ich will Spaß, ich will Spaß!
IBM, Microsoft, spürst du mich?
Heut'nacht komm ich über dich - das macht Spaß!
Das macht Spaß, das macht Spaß ~
Der Ozzie ist mein bester Freund, hui wenn ich komm', wie der
sich freut
er braucht Spaß! Er hat Spaß, er hat Spaß
Wir wollh Spaß, wollen Spaß! Wir woll'n Spaß, wollen Spaß!
Wir geb'n Gas, geben Gas! Wir woll'n Spaß, wollen Spaß!
Wir mach'n Spaß, machen Spaß! Wir geb'n Gas, geben Gas! . . . *
macht Notes eigentlich plemplem? :o :o
eknori (retired):
in Anlehnung eines "Hits von einem gewissen Dieter B. aus H:
Take Notes today
everything is possible
;D ;D
Rob Green:
yep... ;D ;D
Axel:
@Rob
Ich wußte gar nicht, dass du so toll texten und singen kannst. ;D ;D
Wenn kommt denn deine erste Platte ?
Und wann der Auftritt beim Grand Prix ?
;D ;D
Aber Spaß beiseite:
Klingt gut mit den tagesüberschreitenden Terminen. Bin sehr am Code interessiert.
Axel
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln