Seite 2 von 2
Verfasst: Mi, 12.10.2005 11:34
von Toxitom
Hey Lenu,
Was mich auch noch interessieren würde, wozu ich aber bisher nichts gefunden habe: hat man auch Zugriff auf Erstellungs- und Änderungszeit? DateSerial liefert offenbar 00:00:00
Ja, hat man. Nur: DateSerial liefert eben nur einen Datumswert, die Funktion, die du brauchst, heisst TimeSerial() und erwartet drei Parameter: Stunden, Minuten, Sekunden -> Also:
Code: Alles auswählen
nZeit = timeSerial(oDatE.Hours, oDatE.Minutes, oDatE.Seconds)
liefert dir die entsprechende Zeit.
PS: noch ein Schönheitsmerkmal: Wenn du schon die ungarische Notation verwendest und Variable entsprechend kennzeichnest (sehr löblich

), dann bitte korrigiere die folgende Zeile:
iDatE = thisComponent.getDocumentInfo().CreationDate
CreationDate etc liefert keine Integer-Varaible, sondern ein Objekt des Typs com.sun.star.util.DateTime, die Variable sollte also mit "o" beginnen.
Viele Grüße
Thomas
Verfasst: Mi, 12.10.2005 12:09
von Lenu
Hallo Thomas
im Prinzip funktionierts. Aber kann es sein, dass CreationDate und ModifyDate nur das Datum, aber nicht die Zeit liefern können? Oder habe ich was falsch verstanden:
Code: Alles auswählen
Function InfoDokZeitErstellung() As Long
oZeitE = thisComponent.getDocumentInfo().CreationDate
InfoDokZeitErstellung = TimeSerial(oZeitE.Hours, oZeitE.Minutes, oZeitE.Seconds)
end function
und
Code: Alles auswählen
Function InfoDokZeitAenderung() As Long
oZeitA = thisComponent.getDocumentInfo().ModifyDate
InfoDokZeitAenderung = TimeSerial(oZeitA.Hours, oZeitA.Minutes, oZeitA.Seconds)
end function
ergeben jedenfalls 0 (bzw. 00:00:00 im entsprechenden Format) und CreationTime scheint es nicht zu geben.
Schöne Grüsse
Verfasst: Mi, 12.10.2005 12:33
von Toxitom
Hey Lenu,
Aber kann es sein, dass CreationDate und ModifyDate nur das Datum, aber nicht die Zeit liefern können? Oder habe ich was falsch verstanden:
Nein, beide Funktionen liefern sowohl das Dateum als auch die Zeit. Der zweite Satz ist da schon richtiger:
Unter Calc und Basic werden interne Datums/Zeit Werte als laufende Zahlen dargestellt, und zwar die Zeitwerte als Nachkommastellen, das Datum als Vorkommastellen.
Wenn du deine Funktionen aber als "Long " definierst, so werden nur Ganzzahlen ohne Nachkommastellen gespeichert. Wo soll da die Zeit hin?
Lass die Definition weg oder nimm Single bzw. Double, dann solltest du die Zeit auch sehen
Gruss
Thomas
Verfasst: Mi, 12.10.2005 14:04
von Lenu
ach, ist das schöööööööööööööööööööööööööön!
Jetzt klappts sogar so:
=VERKETTEN(TEXT(INFODOKDATUMERSTELLUNG();"TT.MM.JJJJ");" ";TEXT(INFODOKZEITERSTELLUNG();"HH:MM"))
Bleibt nur noch der Schönheitsfehler mit dem Basic-Laufzeitfehler wenn beim Oeffnen des Dokumentes das Aenderungsdatum nicht gefunden wird.
Werde ich mich wohl noch mit dem Thema Fehler-Handling beschäftigen müssen. Kann man sowas in einer function überhaupt auffangen?
Jedenfals vielen Dank für Eure Hilfe. Und keiner hat sich daran gestört, dass das Ganze nichts mehr mit "Tabellenkopf fixieren" zu tun hatte. Da wird anderswo anders reagiert.
Schöne Grüsse
Verfasst: Mi, 12.10.2005 14:15
von teakay
Mich stört es nicht das ihr ein wenig vom Thema abgewichen seit, denn es ging ja teilweise noch um den 2. Teil meiner Frage. So habe ich auch mal noch einiges mitbekommen. Vielleicht braucht man das ja mal.

Verfasst: Mi, 12.10.2005 21:28
von Toxitom
Hey Lenu,
Bleibt nur noch der Schönheitsfehler mit dem Basic-Laufzeitfehler wenn beim Oeffnen des Dokumentes das Aenderungsdatum nicht gefunden wird.
Probier einfach mal im entsprechenden Makro (das den Fehlercode produziert), die folgende Zeile einzufügen:
Das unterdrückt Fehlermeldungen und geht zur nächsten Zeile vor. Sollte man zwar nur begrenzt einsetzen - man sieht ja sonst die Fehlermeldungen nicht mehr - aber manchmal braucht man es eben
Gruss
Thomas