Seite 1 von 1

[gelöst]Datum fixieren

Verfasst: So 16. Aug 2015, 09:46
von malt14
Guten Tag,

im Forum fand ich bereits:
http://www.libreoffice-forum.de/viewtop ... =datetime2

Code: Alles auswählen

sub fixdatum
      
   sDatum = format (date() ,"DD.MM.YYYY")
   odoc=thiscomponent
   oview=odoc.getcurrentcontroller.getviewcursor
   odoc.gettext().insertstring(oview,sdatum,false)

end sub
Kann man noch die Zeit hinzufügen, z.B 16.08.2015 09:43?
Da ich dies nur im Textteil einer Writer Datei benötige, wäre die Extension DateTime2 zu umfangreich.

Mit dem Makro Recorder erzeugte ich:

Code: Alles auswählen

sub date_writer
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(5) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Type"
args1(0).Value = 0
args1(1).Name = "SubType"
args1(1).Value = 0
args1(2).Name = "Name"
args1(2).Value = ""
args1(3).Name = "Content"
args1(3).Value = "0"
args1(4).Name = "Format"
args1(4).Value = 10050
args1(5).Name = "Separator"
args1(5).Value = " "

dispatcher.executeDispatch(document, ".uno:InsertField", "", 0, args1())


end sub
Gibt Datum/Zeit nur als Zahl; außerdem grau unterlegt wie ein Feldbefehl. Das Format sollte jedoch wie der übrige Text sein.

Für Calc funktioniert das mit dem Makro Recorder erzeugte:

Code: Alles auswählen

sub datum_zeit_fix
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "StringName"
args1(0).Value = "=JETZT()"

dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args1())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())

rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "SelectedFormat"
args3(0).Value = 1

dispatcher.executeDispatch(document, ".uno:ClipboardFormatItems", "", 0, args3())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SetOptimalColumnWidthDirect", "", 0, Array())


end sub
Vielleicht gibt es dafür eine einfachere Lösung.

Kann man die persönlichen Anpassungen der Symbolleisten und Tastenkombinationen speichern, um diese auf ein anderes System zu übertragen oder als backup? Kopieren des LO config Ordners in roaming hilft dafür nicht.

Grüße

Malt

LibreOffice
Version: 4.4.5.2
Build-ID: a22f674fd25a3b6f45bdebf25400ed2adff0ff99
Gebietsschema: de_DE
Microsoft Windows 8.1 Home 6.03.9600 x64, Java 8 Update 51 (Build 1.8.0_51-b16)

Re: Datum fixieren

Verfasst: So 16. Aug 2015, 12:34
von malt14
Hallo nikki,

Dank für den Link.

Ich hatte gehofft, jemand weiß, wie man das Makro ergänzt, um neben dem Datum die Zeit auszugeben.

Grüße
Malt

Re: Datum fixieren

Verfasst: So 16. Aug 2015, 13:18
von F3K Total
Hi,
malt14 hat geschrieben:Ich hatte gehofft, jemand weiß, wie man das Makro ergänzt, um neben dem Datum die Zeit auszugeben.
ersetze die erste Makrozeile durch folgende:

Code: Alles auswählen

sDatum = format (now() ,"DD.MM.YYYY HH:MM")
Gruß R

Re: Datum fixieren

Verfasst: So 16. Aug 2015, 16:18
von malt14
Hallo R,

Dank für Deine Hilfe! Es funktioniert.

Ich änderte das Format auf ISO 8601, allerdings konnte ich das "+02:00" nicht einbauen.

Code: Alles auswählen

sub date_writer
   sDatum = format (now() ,"YYYY-MM-DDTHH:MM:SS")
   odoc=thiscomponent
   oview=odoc.getcurrentcontroller.getviewcursor
   odoc.gettext().insertstring(oview,sdatum,false)



end sub

Da es in Calc keine ISO 8601 Datumsvorlage gibt, konnte ich dies Format dort nicht benutzen. Es wäre zwar möglich, dies benutzerdefiniert mittels Dokumentvorlage für neue Dateien einzusetzen, jedoch würde bei der Nutzung in alten Dateien das Datum als Zahl ausgegeben.

Wäre praktisch, es gäb auch für Calc ein kurzes Makro.

Grüße
Malt

Re: [gelöst]Datum fixieren

Verfasst: So 16. Aug 2015, 20:12
von F3K Total
malt14 hat geschrieben:Wäre praktisch, es gäb auch für Calc ein kurzes Makro.
Jo, wäre es, ist auch kein Problem.
Wenn Du möchtest, dass ich es für dich mache, schreib mir eine PN (Private Nachricht).
R

Re: [gelöst]Datum fixieren

Verfasst: So 16. Aug 2015, 21:43
von malt14
Hallo R,

für mich selbst ist es nicht so wichtig. Ich erwähnte es als Anregung. Vielleicht bauen die Programmierer in eine künftige LO Version für Writer und Calc entsprechende Features ein.

Nochmals Dank für Deine Hilfe.

Grüße
Malt

Re: [gelöst]Datum fixieren

Verfasst: So 16. Aug 2015, 21:54
von F3K Total
malt14 hat geschrieben:Vielleicht bauen die Programmierer
Dann bist du hier an der falschen Adresse, da solltest du dich an die Programmierer wenden, in diesem Forum helfen Anwender Anwendern.
R