[Gelöst] Feld (als Zeitwert formatiert) in Writer per Makro in Timecontrol eines Dialoges übernehmen

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

Moderator: Moderatoren

krueuw
*
Beiträge: 17
Registriert: Sa, 18.03.2017 08:10

[Gelöst] Feld (als Zeitwert formatiert) in Writer per Makro in Timecontrol eines Dialoges übernehmen

Beitrag von krueuw »

Hallo,
ich möchte den Wert einer Variablen die als Feldfunktion in Writer angelegt und als Zeitwert formatiert wurde per Makro in ein Timecontrol eines Dialoges übernehmen. Dank eines Tipps gelingt mir dies bei einem Datumswert so:

Code: Alles auswählen

oDlg.getControl("gdat").date = CDateToUnoDate(CDate(Clng(getVariable(oDoc, "feld7"))))
Analoges geht so für Zeiten nicht:

Code: Alles auswählen

oDlg.getControl("anhtime").time = CDateToUnotime(CDate(Clng(getVariable(oDoc, "feld20")))
weil Clng den echten Bruch des Feldinhaltes auf Null rundet und ich separate Funktionen für Zeitwerte bisher nicht gefunden habe.
Wie würdet ihr das machen? Uwe
Zuletzt geändert von krueuw am Mi, 12.04.2017 19:22, insgesamt 1-mal geändert.
Ubuntu 16.04 Libreoffice Version: 5.1.6.2
Toxitom
********
Beiträge: 3768
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Feld (als Zeitwert formatiert) in Writer per Makro in Timecontrol eines Dialoges übernehmen

Beitrag von Toxitom »

Hey Krueuw,

hmm, was liefert denn dier Ausdruck "getVariable(oDoc, "feld20")" als Wert zurück? ist das ein String oder ein interner Datumswert der Form "0,12345"?

Im 2. Fall solltest Du das direkt nutzen können, falls der Wert als String geliefert wird, dann zuerst in eine Zahl verwandeln - mit cDbl!.

Immer zwischendrin prüfen, ob das gewünschte ERgebnis vorhanden ist!

dann einfach mit:

Code: Alles auswählen

Dlg.getControl("anhtime").time = CDateToUnotime(cdbl(getVariable(oDoc, "feld20"))
zuweisen.

VG Tom
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
krueuw
*
Beiträge: 17
Registriert: Sa, 18.03.2017 08:10

[Gelöst] Feld (als Zeitwert formatiert) in Writer per Makro in Timecontrol eines Dialoges übernehmen

Beitrag von krueuw »

Klappt genauso! Danke.
Ubuntu 16.04 Libreoffice Version: 5.1.6.2
Antworten