Seite 1 von 1

Feldbefehl Jahr.TageImJahr

Verfasst: Sa 23. Apr 2016, 13:30
von oopa
Nach einer Weile des (frustrierten) Probierens mit allen möglichen Ansätzen und der Feststellung, dass in diesem Bereich wenig an Doku zu finden ist, nun also die Hoffnung, dass einer von euch die Lösung kennt.

Ich möchte gerne (in die Fußzeile) eines (mehrseitigen) Dokuments eine Versionsnummer einfügen, die sich zusammensetzt aus dem Jahr und der Anzahl der seit dem 1.1. vergangenen Tage. Für heute also: "16.114". Da gelingt mir nicht - weder mit verschiedenen Datumsformaten, noch mit Variablen noch Benutzerfeldern etc.

Re: Feldbefehl Jahr.TageImJahr

Verfasst: Sa 23. Apr 2016, 16:50
von miesepeter
Also die 16 kann man einfügen, die Tage seit dem Jahresbeginn könnte ich aber nur mit Calc errechnen. Ich fand keine Möglichkeit, das mit Writer-Formel zu erzeugen... Ciao

Re: Feldbefehl Jahr.TageImJahr

Verfasst: So 24. Apr 2016, 14:51
von lorbass
Du wirst vermutlich nicht umhin kommen, ein kleines Makro zu schreiben, das den Tag im Jahr bestimmt, und ein Feld in die Fußzeile einzufügen, das dieses Makro aufruft (Register Funktionen, Typ Makro ausführen im Dialog Felder).

Gruß
lorbass

Re: Feldbefehl Jahr.TageImJahr

Verfasst: Mo 25. Apr 2016, 16:31
von oopa
Danke für die Anregungen. Dass es ohne Makros nicht geht, hatte ich schon vermutet;
so scheint es dann wohl auch zu sein.

Re: Feldbefehl Jahr.TageImJahr

Verfasst: Mo 25. Apr 2016, 19:17
von F3K Total
Hi,
mit folgendem Makro

Code: Alles auswählen

Sub Set_Current_day_of_Year
     dim nDate as long
     oTFEnum = thiscomponent.Textfields.createEnumeration
     while oTFEnum.hasmoreelements
         oTF = oTFEnum.nextElement
         if oTF.VariableName = "TAG_IM_JAHR" then
             n1stDate = DATEVALUE("01.01."+Year(now()))
             oTF.Content = DATEVALUE(DATE())- n1stDate + 1
             oTF.update
         endif
     wend
End Sub
geht es, wenn du über STRG+F2 -> Reiter Variablen -> Variable setzen eine Variable TAG_IM_JAHR erzeugst, z.B. 111 eingibst und in die Fußzeile einfügst.
Das Makro läßt du beim Öffnen des Dokumentes einmal ausführen ->
Menü Extras/Anpassen.../Reiter Ereignisse -> Dokument öffnen -> Makro ..., hier das o.a. Makro auswählen, speichern, fertig.
Wenn Du die Datei öffnest, wird heute 116 eingetragen.

Damit das Makro laufen darf, stellst du unter Extras/Optionen/LibreOffice/Sicherheit/Makrosicherheit mindestens die Stufe Mittel ein, dann wirst du beim Öffnen von Dokumenten gefragt, ob du Makros ausführen möchtest.
Beispieldatei anbei. Um den Unterschied zu sehen, kannst Du die Datei erst ohne Makro öffnen, dann steht 16.100 in der Fußzeile, mit Makroausführung springt es auf 16.116 um, und beginnt in 2017 mit 17.001.

Gruß R

Re: Feldbefehl Jahr.TageImJahr

Verfasst: Sa 30. Apr 2016, 09:06
von oopa
Ohh, super! Danke für die Mühe. So werde ich es einmal ausprobieren.

Re: Feldbefehl Jahr.TageImJahr

Verfasst: Mo 2. Mai 2016, 23:35
von Wanderer
Hallo,
oopa hat geschrieben:Dass es ohne Makros nicht geht,
statt Makros könnte man sich auch von Calc helfen lassen und in einer simplen Calc-Datei in einem Feld
die Tageszahl zwischen HEUTE() und dem 1.1 des Jahres bestimmen.
Dies Feld kann man als DDE-Verknüpfung in Writer einbinden.

Einfacher ist das nicht, aber wenn man die Makrosicherheit nicht ändern will vielleicht eine Alternative.

MfG, Jörn