Autor Thema: Kalendereintrag Date, Time  (Gelesen 5678 mal)

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Kalendereintrag Date, Time
« am: 10.10.03 - 00:01:55 »
Hi,

ich schreibe über ein Script Daten einer Dialogbox in einen Kalendereintrag der Mail-DB. Der Eintrag ist vom Typ "Reminder".
Als Beispiel hab ich mich hier orientiert: http://www.eknori.de/tips/reminder.htm


Nun gibts ja folgende Felder in der Kalendermaske die u.a. gefüllt werden sollten:
Zitat
StartDate
StartTime
StartDateTime
EndDate
EndTime
EndDateTime

Wenn ich jedes Feld mit Datum der Dialogbox fülle, klappt es wunderbar, als Zeit zeigt Notes dann (wie erwartet) 0:00 Uhr an.

Jetzt soll in die Maske noch ein Uhrzeit enthalten.

Die Uhrzeit wird als Datumsfeld, on Display display Time, übergeben und diese deklariere ich als
Zitat
Dim Zeit As NotesDateTime
ReminderTime$ = source.FieldGetText("Reminder_Time")
Set Zeit = New NotesDateTime( ReminderTime$ )

Die Felder des Reminderdoc hätte ich nun so gesetzt:
Zitat
With reminderDoc
.CalendarDateTime = Datum.lsLocalTime
.StartDate    = Datum.lsLocaltime
.StartTime   = Zeit.lsLocaltime
.StartDateTime   = Zeit.lsLocaltime
.EndDate       = Datum.lsLocaltime
.EndTime      = Zeit.lsLocaltime
.EndDateTime   = Zeit.lsLocaltime
End With

Klappt soweit auch wunderbar (lt. Anzeige in der Kalenderview), wenn ich z.B. den 23.09.03, 15:00 Uhr als Reminder setze.

Nur setzt Notes das STARTDATETIME auf "30.12.1899 15:00:00 CET".

Daher meine Befürchtung, dass das Reminden etc. nicht klappt.

Wie kann ich denn das anpassen?

TMC
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Kalendereintrag Date, Time
« Antwort #1 am: 10.10.03 - 20:22:19 »
*mal hoch schieb den Thread*

Sollte ich mich unklar ausgedrückt haben, dann bitte auch Info....

TMC
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Kalendereintrag Date, Time
« Antwort #2 am: 11.10.03 - 11:55:00 »
Nur mal auf die Schnelle - kann's gerade nicht testen:
Der 30.12.1899 ist der "Nullpunkt" für Notes' Datums-Nummern,
mit 15:00 Uhr hintendran ist dies also 0 + 15/24.
Probier daher mal, StartDateTime aus StartDate + StartTime zu bilden.

Vielleicht war's das ja schon ...

Das nächste Mal wieder getestete Antworten ;-)

Bernhard

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Kalendereintrag Date, Time
« Antwort #3 am: 11.10.03 - 14:06:50 »
Hi Bernhard,

Zitat
Probier daher mal, StartDateTime aus StartDate + StartTime zu bilden.

Ähm, wie müsste ich das im Script schreiben?
Code
With reminderDoc
.CalendarDateTime = Datum.lsLocalTime
.StartDate    = Datum.lsLocaltime
.StartTime   = Zeit.lsLocaltime
.StartDateTime   = Zeit.lsLocaltime
.EndDate       = Datum.lsLocaltime
.EndTime      = Zeit.lsLocaltime
.EndDateTime   = Zeit.lsLocaltime
End with

reminderDoc.CalendarDateTime = Datim.IsLocalTime + Zeit.IsLocaltime
geht ja so niemals ned...

Ich habe auch mal im Mailfile in der FORM "_Calendar Entry" geschaut, nur da werde ich irgendwie ned schlau; die haben da ein JavaScript im Event 'on change' drin im Feld 'StartTime'.....

Lt. dem Folder ($Alarms) wird für den Alarm das Feld CalendarDateTime rangezogen.

Grüße,
TMC
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Glombi

  • Gast
Re:Kalendereintrag Date, Time
« Antwort #4 am: 11.10.03 - 14:16:27 »
Hi,
ich würde das so machen:

dim StartDateTime as NotesDateTime
set StartDateTime = New NotesDateTime(Datum.LocalTime & " " & Zeit.LocalTime)

reminderDoc.StartDateTime = StartDateTime.LSLocalTime

EndDateTime analog...

Andreas

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Kalendereintrag Date, Time
« Antwort #5 am: 11.10.03 - 14:50:51 »
Sorry, TMC, leider wieder nur ein Schnellschuss (diesmal aber getestet ;-)
Statt den Verrenkungen mit NotesDateTime etc. folgender Vorschlag:
Code
Dim ws As New NotesUIWorkspace
   
   Dim vStartDate As Variant
   Dim vStartTime As Variant
   Dim vStartDateTime As Variant
   
   vStartDate = ws.CurrentDocument.Document.StartDate (0)
   vStartTime = ws.CurrentDocument.Document.StartTime (0)
   
   Msgbox "StartDate: " & Cstr (vStartDate) & Chr$ (10) &_
   "StartTime: " & Cstr (vStartTime)
   
   vStartDateTime = vStartDate + vStartTime
   Msgbox "StartDateTime: " & Cstr (vStartDateTime)


Hilft Dir das weiter ?
Herzliche Wochenendegrüsse von Ober... nach Unter... - na, Du weisst schon ;-)
Bernhard

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Kalendereintrag Date, Time
« Antwort #6 am: 11.10.03 - 15:13:54 »
danke Euch beiden !

Ich habe mich jetzt für Glombi's Lösung entschieden
(war jetzt irgendwie schneller für mich, außerdem mach ich sonst alles im Script bereits im Backend....)

Grüße,
TMC
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Kalendereintrag Date, Time
« Antwort #7 am: 11.10.03 - 15:22:44 »
Das eine (Glombi's) ist garantiert so gut wie das andere (dem Ich sein's ;-).
Nur der Vollständigkeit halber: Auch mein Code läuft im Backend, ich hab's halt eben nur in einer Maske mit 'nem Knöpfchen auf die Schnelle ausprobiert. Daher
Zitat
ws.CurrentDocument.Document.StartDate (0)
was ja aber eindeutig auf's Backend verweist ;-)

Bernhard aus dem richtig warmen, sonnigen Chiemgau (TMC: Wie siehts denn gerade bei Euch im "niedrigeren Bayern" aus ?)

Glombi

  • Gast
Re:Kalendereintrag Date, Time
« Antwort #8 am: 11.10.03 - 15:28:35 »
@Bernhard:
Ich wusste gar nicht, dass man so einfach Zeit/Datumswerte addieren kann. Offenbar geht das ja dann viel einfacher, da haste Recht.

Was passiert eigentlich, wenn ich
01.01.2003 + 01.01.2003 mache?

Gibts dann den 02.02.4006 - na wenn ich Zeit hab, probier ich es mal aus.

Andreas

P.S.: Hier ist es wettermäßig nicht ganz so gut wie bei Euch im Süden. Aber morgen muss es schön sein, denn dann ist Erntedankfest und die Kiddies müssen ja irgendwie beschäftigt sein...
« Letzte Änderung: 11.10.03 - 15:29:50 von Glombi »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Kalendereintrag Date, Time
« Antwort #9 am: 11.10.03 - 15:38:47 »
Hallo, Andreas (und alle anderen),

der Umgang mit Datums-/Zeitwerten ist wirklich ein weites Feld in LN ;-)
Wenn Du wie beschrieben Datumswerte addierst, bekommst Du eine Datumsseriennummer, die sich aus den jeweils vergangenen Tagen seit dem 30.12.1899 ergeben.
Heute + Heute (Für die Nachwelt: Heute = 11.10.2003) würde beispielsweise den 23.07.2107 ergeben.

Was der vereinfachte Umgang von Datums-/Zeitwerten via Variants (vom Typ 8, glaube ich) allerdings auch bedeutet (und das "umständliche Dealing" von Notes ursächlich begründet): Zeitzonen fallen unter den Tisch. In einer internationalen Umgebung muß man also über die NotesDateTime Class gehen.

Ciao,
Bernhard

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Kalendereintrag Date, Time
« Antwort #10 am: 11.10.03 - 15:58:52 »
Hi Bernhard,

ist quasi ähnlich wie in Excel.....

Auch da ergibt heute() + heute() den 23.07.2107.......

bye,
TMC

P.S. na ja, so warm ist es bei uns in Niederbayern ned (schätze 12Grad (Mist, irgendwo hatte ich doch mal ein Grad-Zeichen auf meiner Tastatur....;-), bewölkt, aber Sonne kommt öfters mal raus.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Kalendereintrag Date, Time
« Antwort #11 am: 11.10.03 - 16:15:01 »
Fast alle Programme arbeiten ja mit Datumseriennummern ...
By the way - und um stilgerecht zu bleiben ;-)
1-2-3 liefert bei 11.10.2003 + 11.10.2003 auch den 23.087.2107

@TMC: Der Chiemgau meldet 17°C bei fast völlig wolkenfreiem, blauen Himmel ;-)

@TMC (#2): Die Taste für das Grad-Zeichen befindet sich direkt unter der Flucht-Taste und muß gedrückt werden, nachdem man vorher (und währenddessen !!!) eine der Tasten (links oder rechts am unteren Rand des Schlüsselbretts) mit einem "Pfeil-nach-oben"-Symbol niederdrückt ;-)))

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Kalendereintrag Date, Time
« Antwort #12 am: 11.10.03 - 16:55:04 »
huch, glatt übersehen
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

Na ja, ein Alt + 0176 hätte es auch getan, aber ich war vorhin zu faul nachzusehen, welche Nr. denn das °-Zeichen hat :-)

TMC
der jetzt 15°C meldet lt. Außenthermometer ;-)
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Kalendereintrag Date, Time
« Antwort #13 am: 12.10.03 - 15:24:29 »
Bernhard:
Die Grad-Taste ist aber nur direkt unter der Flüchtlingstaste, wenn man ein Full-Keyboard hat und nicht wie im Moment bei mir noch die Formel-1 Weltmeistertaste dazwischengeschoben ist :-)

TMC:
Die Definition von Tagesseriennummern nach dieser Art geht meines Wissens auf Multiplan zurück (wer erinnert sich noch ??), das Spreadshiiit, das M$ hatte, bevor sie unexzellent wurden, dort wurde allerdings der 1.1.1900 als Tag 1 definiert, was aber lückenlos in die Notes-Definition 31.12.1899=0 überführt werden kann. Dieser Standard wurde eigentlich von fast allen Datums-Berechnungsprogrammen übernommen und da die @Formelsprache von Notes auf 1-2-3 zurückgeht, ist es kein Wunder, dass es überall gleich rechnet.

Das ist fast so, wie wenn man sagt: TMD = TMC + 1

:-)
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz