Entwickler-Ecke

Off Topic - LibreOffice und JETZT() - beim Speichern festlegen


trm - Do 21.08.14 21:19
Titel: LibreOffice und JETZT() - beim Speichern festlegen
Huhu.

Weiß jemand, wie oder ob es möglich ist, eine Vorlage im LibreOffice Calc zu erstellen, bei der bei jeder Speicherung eine Formel, welche das aktuelle Datum ausgibt, fest verankert und beim nächsten Öffnen der abgespeicherten Datei diese dann das Datum der letzten Speicherung statt der Formel anzeigt?

Die Formel ist einfach: JETZT()


jaenicke - Do 21.08.14 22:31

Für MS Office ist das einfach:
http://www.mrexcel.com/forum/excel-questions/423192-date-last-saved-modified.html
Ob es so etwas auch für LibreOffice gibt, kann ich dir leider nicht sagen. Aber vielleicht hilft das weiter um etwas passendes zu finden.


Marc. - Sa 23.08.14 15:41

Hallo Mathias, Du hast den Thread als erledigt markiert. Wie hast Du Dein Problem denn gelöst?

Ich hatte mir in LO (4.2) mal ein Makro geschrieben,

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
Function LastSaved()
   Dim Doc As Object
   Dim ModDate As Variant
   
   Doc = ThisComponent()
   ModDate = Doc.DocumentProperties.ModificationDate
   
   If ModDate.Year = 0 Then
      ModDate = Doc.DocumentProperties.CreationDate
   End If
           
   LastSaved = Date(ModDate.Year,ModDate.Month,ModDate.Day) & " " & Time(ModDate.Hours,ModDate.Minutes,ModDate.Seconds)  
End Function

Sub CalculateAll
   Dim Doc As Object 
   Doc = ThisComponent()
   Doc.CalculateAll
End Sub
und letzteres mit dem Speichern-Event verknüpft. Dämlicherweise wird beim Öffnen der Datei statt dem Datum der letzten Änderung das Datum des Öffnens angezeigt. :shock: Die Anzahl der Änderung (EditingCycles) bleiben aber konstant.
Außerdem muss das Makro in die Datei eingebettet werden, ansonsten existiert beim Öffnen des Dokumentes das Objekt Doc.DocumentProperties noch nicht, wenn das Makro darauf zugreifen möchte.

Scheint mir alles noch nicht ganz ausgereift zu sein oder ich mache irgendetwas grundlegend falsch.

Beste Grüße


trm - So 24.08.14 01:07

Hi Marc,

ich habe es gar nicht zum Laufen gebracht, weil es den Befehl Application..Volatile in Basic nicht gibt. Eine Möglichkeit, dies zu emulieren habe ich auch nicht gefunden. Somit schreibe ich das Datum immer per Hand rein.

Der ganze Hintergrund der Sache ist, ich wollte eine Formel für das Datum einer Rechnungsvorlage erstellen, mit der ich nicht immer das Datum per Hand ändern muss. Einfach nur JETZT() dort reinschreiben bringt nichts, dann steht ja in einem späteren Öffnen der Rechnung (nicht die Vorlage) das aktuelle Datum drin.

Deinen Code habe ich getestet, er funktionierte ein einziges mal, danach, beim nächten öffnen der Datei nicht mehr.

Danke für Deine Hilfe, bin im Moment zu müde. ;)


Marc. - So 24.08.14 15:00

Scheint wohl ein Bug [https://bugs.freedesktop.org/show_bug.cgi?id=60290] zu sein. Einen ähnlichen Bug gab es auch einmal bei Excel [http://support.microsoft.com/kb/826741].
Da der Bugreport bereis über ein Jahr zurückliegt und sich seitdem nicht mehr getan hat, ist es auch fraglich, ob sich im absehbarer Zeit jemand darum kümmern wird. :?