Datumsfeld mit anderem relativen Startdatum aufrufen?

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Yaddayadda
**
Beiträge: 34
Registriert: Mi, 20.06.2012 14:13

Datumsfeld mit anderem relativen Startdatum aufrufen?

Beitrag von Yaddayadda »

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
RobertG
********
Beiträge: 2067
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Datumsfeld mit anderem relativen Startdatum aufrufen?

Beitrag von RobertG »

Hallo yaddayadda,

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 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
Yaddayadda
**
Beiträge: 34
Registriert: Mi, 20.06.2012 14:13

Re: Datumsfeld mit anderem relativen Startdatum aufrufen?

Beitrag von Yaddayadda »

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
RobertG
********
Beiträge: 2067
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Datumsfeld mit anderem relativen Startdatum aufrufen?

Beitrag von RobertG »

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

Code: Alles auswählen

	IF isEmpty(oFeld.Date) THEN
		oFeld.BoundField.updateDate(unoDate)
	END IF
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

Code: Alles auswählen

	oFeld.setPropertyValue("DefaultDate", unoDate)
entfällt dann natürlich.

Gruß

Robert
Yaddayadda
**
Beiträge: 34
Registriert: Mi, 20.06.2012 14:13

Re: Datumsfeld mit anderem relativen Startdatum aufrufen?

Beitrag von Yaddayadda »

Hallo RobertG,

habe deinen zweiten Vorschlag ausprobiert. Erhalte aber einen Fehler (Objektvariable nicht belegt) bezogen auf die Zeile

Code: Alles auswählen

oFeld.BoundField.updateDate(unoDate)
. 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
RobertG
********
Beiträge: 2067
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Datumsfeld mit anderem relativen Startdatum aufrufen?

Beitrag von RobertG »

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
Yaddayadda
**
Beiträge: 34
Registriert: Mi, 20.06.2012 14:13

Re: Datumsfeld mit anderem relativen Startdatum aufrufen?

Beitrag von Yaddayadda »

"Nach dem Datensatzwechsel" war das Zauberwort. :D 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
Antworten