Datumsfeld mit anderem relativen Startdatum aufrufen?
Moderator: Moderatoren
- 
				Yaddayadda
 - **
 - 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
- 
				Yaddayadda
 - **
 - 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
- 
				Yaddayadda
 - **
 - 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
- 
				Yaddayadda
 - **
 - 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