Datumsformat in Feldbefehl-Variablen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

TheGambler
*
Beiträge: 10
Registriert: Fr, 14.05.2010 09:46

Datumsformat in Feldbefehl-Variablen

Beitrag von TheGambler »

Hi *,

heute lass ich es hier richtig krachen, aber vielleicht hilft es ja noch mehr Leuten, die dann nicht mehr fragen müssen. ;)
Angenommen ich möchte eine Feldvariable mit einem Datum der Form "2009-05-01" füllen, aber in der Ausgabe "01.05.2009" erhalten.

Dieser Code:

Code: Alles auswählen

oTextFieldCon = thisComponent.getTextFields()
oTextFields = oTextFieldCon.createEnumeration()
Do while oTextFields.hasMoreElements()
	oTextField = oTextFields.nextElement()
		
	if oTextField.VariableName = "TEST" then
		oTextField.NumberFormat = 5036
		oTextField.setPropertyValue("Content", "2009-05-01")
	end if
loop
oTextFieldCon.refresh()
...erzeugt folgendes:
DatumFehler.jpg
DatumFehler.jpg (6.14 KiB) 953 mal betrachtet
Vielleicht kann mir auch hier die Zeile

Code: Alles auswählen

oTextField.CurrentPresentation
irgendwie helfen, ich weiß aber leider nicht wie... alle Tests waren bisher erfolglos!

Hier mal das File zum rumspielen:
TEST.odt
(9.38 KiB) 83-mal heruntergeladen
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Datumsformat in Feldbefehl-Variablen

Beitrag von komma4 »

Du setzt den Wert auf 2009-5-1 = 2003. Das ist, als Datum formatiert, der 25.06.1905.

Ansonsten scheint hier ein Bug vorzuliegen... die .CurrentPresentation ändert sich nicht durch den .refresh()-Befehl (per Code). Die Anzeige wird erst korrekt, wenn das Format über die Oberfläche umgestellt wird.

Code: Alles auswählen

Sub Main
	
	oTextFieldCon = thisComponent.getTextFields()
	oTextFields = oTextFieldCon.createEnumeration()
	Do while oTextFields.hasMoreElements()
		oTextField = oTextFields.nextElement()
		
		if oTextField.VariableName = "TEST" then
			oTextField.Content =  FORMAT( "2010-04-04" , "DD.MM.YYYY" )

			oFormats = ThisComponent.NumberFormats
			Dim aLocale As New com.sun.star.lang.Locale
			Dim lMeinFormat as Long
			lMeinFormat = oFormats.queryKey( "TT.MM.JJJJ" , aLocale, True )

			oTextField.NumberFormat = lMeinFormat
XRAY oTextField 			
		end if
	loop
	oTextFieldCon.refresh()
XRAY oTextField
End Sub
NumberFormats frage ich deswegen ab, da die Codes sich pro Installation ändern können

XRAY zeigt mir den ansich korrekten Inhalt an... bin ratlos, wie Dir das weierhelfen kann... :cry:
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
TheGambler
*
Beiträge: 10
Registriert: Fr, 14.05.2010 09:46

Re: Datumsformat in Feldbefehl-Variablen

Beitrag von TheGambler »

Ok. Vielen Dank für deinen motivierten Versuch. Das heißt, wir sind uns einig, dass es ein Bug ist? Kann/sollte ich den irgendwo reporten?
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Datumsformat in Feldbefehl-Variablen

Beitrag von komma4 »

Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Antworten