Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Fis am 20.09.02 - 10:49:21

Titel: Zeit stoppen
Beitrag von: Fis am 20.09.02 - 10:49:21
Hallo zusammen,

brauche ein Script, was mir die Zeit startet, wenn das Dokument geöffnet wird und stoppt, wenn es geschlossen wird. Diese Zeit wird dann in einem Feld ausgegeben.

Danke und Gruß
Rodan
Titel: Re: Zeit stoppen
Beitrag von: manuel am 20.09.02 - 12:28:47
Ich hätte folgenden Vorschlag:


'In die Declarations der Maske
Dim Tmr As NotesTimer
Dim seconds As Integer



Sub Postopen(Source As Notesuidocument)
     seconds = 0
     Set Tmr = New NotesTimer(1)
     On Event Alarm From Tmr Call TimerHandler
End Sub



Sub TimerHandler(Source As NotesTimer)
     seconds = seconds + 1
End Sub



Sub Querysave(Source As Notesuidocument, Continue As Variant)
     Source.Document.Duration = seconds
End Sub


Wobei Duration ein Feld ist ...
Kannst damit etwas anfangen?
Titel: Re: Zeit stoppen
Beitrag von: Fis am 20.09.02 - 13:27:40
Sub TimerHandler(Source As NotesTimer)
     seconds = seconds + 1
End Sub


wo kommt das rein? Bin kein Programmierer, also für doofe erklären ;-)


Gruß Rodan
Titel: Re: Zeit stoppen
Beitrag von: Glombi am 20.09.02 - 13:37:42
Hallo Fis,
hier eine etas einfachere Lösung:
Angenommen, die vergangene Zeit soll in Sekunden in das Feld ElapsedTime geschrieben werden:

(Declarations)
dim doc as NotesDocument
dim timer_start as Single
dim timer_ende as Single

Postopen(Source...)
set doc = Source.Document
timer_start = timer

QuerySave
timer_ende = timer
doc.ElapsedTime = timer_ende - timer_start


Gruß
Andreas
Titel: Re: Zeit stoppen
Beitrag von: manuel am 20.09.02 - 13:43:01
TimeHandler ist eine neue Funktion. Kopiere die Funktion, markiere dann den ganzen Code irgendeiner Funktion (zB Terminate) und füge die TimeHandler ein. Jetzt siehst du einen neuen Eintrag bei den Funktionen.

Kurze Erklärung was das Script macht:
Im Postopen wird ein neuer Timer erstellt mit dem Intervall eine Sekunde. Bei dem Event Alarm, also immer nach einer Sekunde, wird die Funktion TimerHandler aufgerufen. Diese Funktion zählt die Variable seconds immer um eins hoch.

Vor dem Speichern wird noch schnell der Wert in das Feld Duration geschrieben.
Titel: Re: Zeit stoppen
Beitrag von: manuel am 20.09.02 - 13:45:45
Jep, nimm die Funktion von Glombi, hört sich vernünftiger an  ;D

Schönen Gruß
Manuel
Titel: Re: Zeit stoppen
Beitrag von: Fis am 20.09.02 - 13:46:41
Super hat funktioniert. Danke euch beiden.

Gruß Rodan