Datumsfeld mit anderem relativen Startdatum aufrufen?
Moderator: Moderatoren
-
- **
- Beiträge: 34
- Registriert: Mi, 20.06.2012 14:13
Datumsfeld mit anderem relativen Startdatum aufrufen?
Hallo,
ist es möglich, in einem Formular das aufklappbare Datumsfeld mit einem relativen Startdatum aufzurufen? Also z.B. immer mit dem jeweiligen Vormonat? Ich habe nur die Möglichkeit gefunden, entweder ein fest eingestelltes Datum oder das aktuelle Datum zu wählen. Da ich sehr viele Daten immer aus dem Vormonat eingeben muss, ist es mühsam, immer erst einen Monat zurück zu klicken.
Danke und Gruß,
yaddayadda
ist es möglich, in einem Formular das aufklappbare Datumsfeld mit einem relativen Startdatum aufzurufen? Also z.B. immer mit dem jeweiligen Vormonat? Ich habe nur die Möglichkeit gefunden, entweder ein fest eingestelltes Datum oder das aktuelle Datum zu wählen. Da ich sehr viele Daten immer aus dem Vormonat eingeben muss, ist es mühsam, immer erst einen Monat zurück zu klicken.
Danke und Gruß,
yaddayadda
Re: Datumsfeld mit anderem relativen Startdatum aufrufen?
Hallo yaddayadda,
ich habe das folgende Makro damit erfolgreich getestet:
Das Formular heißt "Formular", das Feld in diesem Formular heißt "Datum".
Das Makro habe ich beim Start des Formulars untergebracht: Formular zum bearbeiten öffnen, im Formular dann Extras → Anpassen → Ereignisse → Ansicht wurde erzeugt.
Gruß
Robert
ich habe das folgende Makro damit erfolgreich getestet:
Code: Alles auswählen
SUB Standarddatum
DIM oDoc AS OBJECT
DIM oDrawpage AS OBJECT
DIM oForm AS OBJECT
DIM oFeld AS OBJECT
DIM unoDate
oDoc = thisComponent
oDrawpage = oDoc.drawpage
oForm = oDrawpage.forms.getByName("Formular")
oFeld=oForm.getByName("Datum")
unoDate = createUnoStruct("com.sun.star.util.Date")
IF Month(Date) = 1 THEN
unoDate.Year = Year(Date)-1
unoDate.Month = 12
ELSE
unoDate.Year = Year(Date)
unoDate.Month = Month(Date)-1
END IF
unoDate.Day = Day(Date)
oFeld.setPropertyValue("DefaultDate", unoDate)
END SUB
Das Makro habe ich beim Start des Formulars untergebracht: Formular zum bearbeiten öffnen, im Formular dann Extras → Anpassen → Ereignisse → Ansicht wurde erzeugt.
Gruß
Robert
-
- **
- Beiträge: 34
- Registriert: Mi, 20.06.2012 14:13
Re: Datumsfeld mit anderem relativen Startdatum aufrufen?
Hallo RobertG,
habe dein Makro getestet. Es geht auch soweit. Allerdings kann ich nicht das per Makro definierte Default-Datum eingeben. Jeder andere Tag des Vormonats geht, nur nicht z.B. der 12.09., wenn heute der 12.10. ist. Dann bleibt das Datensatz-speichern-Feld grau.
Gruß,
yaddayadda
habe dein Makro getestet. Es geht auch soweit. Allerdings kann ich nicht das per Makro definierte Default-Datum eingeben. Jeder andere Tag des Vormonats geht, nur nicht z.B. der 12.09., wenn heute der 12.10. ist. Dann bleibt das Datensatz-speichern-Feld grau.
Gruß,
yaddayadda
Re: Datumsfeld mit anderem relativen Startdatum aufrufen?
Hallo yaddayadda,
das Datum ist ja nur der Default-Wert. Das passiert Dir bei allen Default-Werten. Wenn Du irgendwo anders in den Datensätzen etwas änderst müsste aber die Abspeicherung erfolgreich sein.
Du kannst auch das Datum direkt eintragen lassen mit
Dann erreichst Du aber, dass eben direkt bei der Navigation durch die Datensätze jedes Datumsfeld ohne Wert mit dem Datum versehen und abgespeichert wird.
Die Zeile
entfällt dann natürlich.
Gruß
Robert
das Datum ist ja nur der Default-Wert. Das passiert Dir bei allen Default-Werten. Wenn Du irgendwo anders in den Datensätzen etwas änderst müsste aber die Abspeicherung erfolgreich sein.
Du kannst auch das Datum direkt eintragen lassen mit
Code: Alles auswählen
IF isEmpty(oFeld.Date) THEN
oFeld.BoundField.updateDate(unoDate)
END IF
Die Zeile
Code: Alles auswählen
oFeld.setPropertyValue("DefaultDate", unoDate)
Gruß
Robert
-
- **
- Beiträge: 34
- Registriert: Mi, 20.06.2012 14:13
Re: Datumsfeld mit anderem relativen Startdatum aufrufen?
Hallo RobertG,
habe deinen zweiten Vorschlag ausprobiert. Erhalte aber einen Fehler (Objektvariable nicht belegt) bezogen auf die Zeile. Ich schätze, ich muss das Makro nun an eine andere Aktion binden. Habe auch schon einiges durchprobiert, aber noch nicht das richtige gefunden. Entweder es gibt den genannten Fehler oder das Datumsfeld bleibt bei Erstellung eines neues Datensatzes leer und startet beim Aufklappen beim aktuellen Datum statt dem Vormonat.
Gruß,
yaddayadda
habe deinen zweiten Vorschlag ausprobiert. Erhalte aber einen Fehler (Objektvariable nicht belegt) bezogen auf die Zeile
Code: Alles auswählen
oFeld.BoundField.updateDate(unoDate)
Gruß,
yaddayadda
Re: Datumsfeld mit anderem relativen Startdatum aufrufen?
Hallo yaddayadda,
das vorherige Makro setzte den Standardwert. Wenn Du direkt den Wert schreiben willst (in ein Feld mit BoundField), dann muss das Makro nicht beim Erzeugen der Ansicht laufen, sondern z.B. bei der Aktion "Nach dem Datensatzwechsel" des jeweiligen Formulars, in der das Feld liegt.
Gruß
Robert
das vorherige Makro setzte den Standardwert. Wenn Du direkt den Wert schreiben willst (in ein Feld mit BoundField), dann muss das Makro nicht beim Erzeugen der Ansicht laufen, sondern z.B. bei der Aktion "Nach dem Datensatzwechsel" des jeweiligen Formulars, in der das Feld liegt.
Gruß
Robert
-
- **
- Beiträge: 34
- Registriert: Mi, 20.06.2012 14:13
Re: Datumsfeld mit anderem relativen Startdatum aufrufen?
"Nach dem Datensatzwechsel" war das Zauberwort.
Und ich hatte so viele Ereignisse schon für das Makro durchprobiert, aber das natürlich nicht. Nun funktioniert es wie gewünscht, tausend Dank!
Gruß,
yaddayadda

Gruß,
yaddayadda