Zeitfelder ohne Datum und Datumsfelder ohne Zeit per LotusScript erstellen

    • Offizieller Beitrag

    In einer Teilmaske habe ich 2 Felder angelegt ein Datumsfeld und ein Zeitfeld.
    Beim Speichern werden in dem Datumsfeld nur die der Datumsanteil und in dem Zeitfeld auch nur der Zeitanteil ohne Zeitzone gespeichert. So muss / soll es auch sein.


    Bei einem Import (Lotusscript) lese ich die Datums/zeit wert in ein NoptesDateTime-Objekt (ndt) und lösche die Datumskomponene mit SetAnyDate. Im Debugger fehlt jetzt auch das Datum.
    Schreibe ich den Inhalt des ndt-Objektes jetzt in das Zeitfeld, wird mir immer das Datum 30.12.1899 und die aktuelle Zeitzone angehängt.
    Analog beim Datumsfeld, hier wird dann 00:00:00 Uhr und die Zeitzone angehängt.


    Wie kann ich per Script ein Datumsfeld nur mit Datum und ohne Zeit und ohne Zeitzone erzeugen?
    Wie kann ich per Script ein Zeitfeld nur mit Zeit und ohne Datum und ohne Zeitzone erzeugen?


    Vielen Dank und viele Grüße
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

    Einmal editiert, zuletzt von Diali ()

  • So muss / soll es auch sein.

    In meiner Welt ist das unmöglich, ausser wenn alle Zeiten in GMT gegeben sind. Es gibt nämlich nur eine Zeit... auch nichts so ärgerlich als eine Zeit als Text zu speichern, ohne Zone.


    Wenn Du unbedingt die zwei aufteilen möchtest: wäre es möglich nur ein Feld zu benutzen für Eingabe und die Trennung in zwei unsichtbaren Felder wegzuschreiben?

    • Offizieller Beitrag

    Danke für die Antwort.


    Mal zum Hintergrund:
    Bei den Datums und Zeitwerten handelt es sich immer um lokale Zeiten am entsprechenden Ort.
    Die Zeiten sind Anreise- / Abreisedatum für Hotels, Abflugs-/ Ankunftszeiten (Datum & Zeit) für Flugbuchungen, Abreise- / Ankunftszeiten (Datum & Zeit) für Bahnbuchungen, Eventzeiten (Datum & Zeit) usw..
    Die Zulieferung erfolgt per Excel-Tabelle vom Reisebüro. Das Reisebüro trägt mir auch keine Zeitzonen ein, dann wäre es zu einfach.


    Habe ich reine Zeit und reine Datumsfelder, dann gibt es keine Zeitzone. Über die Maske und eine manuelle Eingabe funktioniert dies .


    Die Excel-Tabellen werden aber per Lotusscript importiert. Mit SetAnyTime und SetAnyDate kann ich die nicht benötigte Kompunente aus dem NotesDateTime heraus werfen. Sobald ich den Wert dann ins Feld schreibe, wird an das Datum die Zeit 00:00:00 in meiner aktuellen Zeitzone angehängt. Je nach lokaler Zeitzone verschiebt sich jetzt mein Datum um einen Tag.
    Bei der Zeit wird immer das Datum 30.12.1899 angehängt und es erscheint auch die Zeitzone, in der ich mich beim Import befinde.


    Auch ein ComputeWithForm bringt hier keine Abhilfe und ein manuelles editieren der Maske bringt auch keine Abhilfe.
    Nachdem ich die Felder umgestellt habe und mir die Zeitzone mit anzeigen lasse, kann ich die Zeitzone in der Maske löschen und es steht wieder das Datum / die Zeit so darin wie ich es haben möchte.


    Der Import selber findet auch in verschiedenen Zeitzonen statt, so dass die lokale Zeit mal MEZ, GMT, BST und weitere, sein kann.


    Zur Zeit behelfe ich mir, in dem ich die Maske im Frontend öffne und dann die Datums- und Zeitfelder per UI-Klasenfülle.
    Leider kann jetzt den Import kein Backend-Agent mehr ausführen. Und der Agent läuft wesentlich länger.


    Werde demnächst mal versuchen den Umweg über DXLExport, Feldmanipulation und DXLImport zu gehen.


    Nächstes Problem wird es sein die Termine in die einzelnen Kalender der User einzutragen, da ich keine Zeitzone habe...
    Zeitzonen für alle Ort pflegen? -> auf gar keinen Fall!
    Die iCal-Dateien vom Reisebüro sind auch unbrauchbar, weil darüber keine Zuordnung zu den Personen machbar ist ...
    Das Leben könnte so einfach sein, wenn vom Reisebüro die Zeitzone mit käme ...


    Bin trotzdem weiterhin für jede Idee dankbar.


    Viele Grüße
    Dirk


  • Versuch's mal...

  • Boss:

    Bei einem Import (Lotusscript) lese ich die Datums/zeit wert in ein NoptesDateTime-Objekt (ndt) und lösche die Datumskomponene mit SetAnyDate. Im Debugger fehlt jetzt auch das Datum.
    Schreibe ich den Inhalt des ndt-Objektes jetzt in das Zeitfeld, wird mir immer das Datum 30.12.1899 und die aktuelle Zeitzone angehängt.
    Analog beim Datumsfeld, hier wird dann 00:00:00 Uhr und die Zeitzone angehängt.

    • Offizieller Beitrag

    vielen Dank - funktioniert. :thumbup:


    ReplaceItemValue hatte ich nicht auf dem Radar. ;(
    Der ReplaceItemValue schreibt das Datum und die Zeit richtig.


    Über item.Values, doc.Feld usw. wird immer wieder diese nicht gewollte Zeitkomponente angehängt.


    Vielen Dank & viele Grüße
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein