Hi Sephan,
ich werde aus Deinem Unterfangen nicht schlau. Du hast ein Datumsfeld, in das der Benutzer ein Datum eingeben
muß (Eingabe erforderlich)
Dann willst Du automatisiert ein anderes Datum eintragen, falls die aktuelle Uhrzeit nach 0:00 Uhr liegt.
Das ist doch aber hinfällig, weil der Benutzer das Datum wieder ändern kann.
Dann hast Du da noch ein Extra-Listenfeld für den Wochentag, auch manuell auswählbar, obwohl ich Dir schon mal eine Variante gegeben habe, bei der der Wochentag anhand des Datums schlicht angezeigt wird.
Was willst Du mit dem Wochtagsfeld? Soll der User zu irgendeinem Datum ggf. einen falschen Wochentag auswählen können?
Ich schlage vor, dass du das Datums-, Wochtags- und die Zeitfelder einfach nur zu Anzeige (Eigenschaft: Nur Lesen) nimmst und zwei Schaltflächen, mit "neuer Anruf" und "Telefonat beendet", an zwei Makros bindest.
Das erste, "Neuer Anruf" setzt das Datum und die Uhrzeit bei Beginn, der Wochntag wird angezeigt, auch mit dem gestrigen Datum falls es vor 7:00 Uhr morgens ist.
Das zweite schreibt die Zeit bei Beendigung des Gespräches mit.
Fertig.
Anbei habe ich das mal umgesetzt, die Makros (abgewandelt von RobertG):
Code: Alles auswählen
SUB Datumsstempel_setzen
DIM oDoc AS OBJECT
DIM oDrawpage AS OBJECT
DIM oForm AS OBJECT
DIM oFeld AS OBJECT
DIM unoDate AS NEW com.sun.star.util.Date
DIM unoTime AS NEW com.sun.star.util.Time
Dim daJetzt AS DATE
Dim ZeitJetzt
oDoc = thisComponent
oDrawpage = oDoc.drawpage
oForm = oDrawpage.forms.getByName("MainForm")
odatFeld = oForm.getByName("datDatum") 'Beispiel datDatum - daher nachher getByIndex. Sonst direkt das Datumsfeld oder Zeitfeld ansteuern.
oZeitfeld = oForm.getByName("timUhrzeit-Anfang")
daJetzt = Now()
ZeitJetzt = Time()
WITH unoTime
.Hours = Hour(ZeitJetzt)
.Minutes = Minute(ZeitJetzt)
.seconds = Second(ZeitJetzt)
END WITH
oZeitfeld.BoundField.updateTime(unotime)
if hour(daJetzt)< 7 then daJetzt = DateAdd("h",-7 ,daJetzt)
WITH unoDate
.Day = Day(daJetzt)
.Month = Month(daJetzt)
.Year = Year(daJetzt)
END WITH
odatFeld.BoundField.updateDate(unoDate)
End Sub
SUB Zeitstempel_Ende_setzen
DIM oDoc AS OBJECT
DIM oDrawpage AS OBJECT
DIM oForm AS OBJECT
DIM oFeld AS OBJECT
DIM unoTime AS NEW com.sun.star.util.Time
Dim ZeitJetzt
oDoc = thisComponent
oDrawpage = oDoc.drawpage
oForm = oDrawpage.forms.getByName("MainForm")
oZeitfeld = oForm.getByName("timUhrzeit-Ende")
ZeitJetzt = Time()
WITH unoTime
.Hours = Hour(ZeitJetzt)
.Minutes = Minute(ZeitJetzt)
.seconds = Second(ZeitJetzt)
END WITH
oZeitfeld.BoundField.updateTime(unotime)
End Sub
Und die Datei im Anhang.
Gruß R