Domino 9 und frühere Versionen > Entwicklung
Maske oder Seite periodisch aktualisieren
(1/1)
webchild:
Gibt es eine Möglichkeit eine Maske oder eine Seite in einer Rahmengruppe über einen Agenten oder LotusScript periodisch zu aktualisieren.
Ich habe schon einiges ausprobiert. ??? :-\
Was ich vorhabe, ist den Ticker von @klausal zu verwenden, aber die Ansicht der Maske/Seite soll periodisch aktualisiert werden.
Siehe:
http://www.atnotes.de/index.php?board=16;action=display;threadid=10587;start=new
Ich habe erstmal das Problem, dass ich bei einem Agenten nicht sehe ob er überhaupt ausgeführt wird. (Ich teste die Datenbank erst lokal. Auch der Agent soll erstmal lokal laufen.)
Es ist ein periodischer Agent der folgende Formel ausführt:
SELECT @All;@Command([ReloadWindow])
Ich habe es auch mit LotusScript versucht, aber da scheitere ich daran, dass ich nicht weiß, wie ich eine Maske oder eine Seite in einer Rahmengruppe ansprechen kann.
doc.Reload oder ähnliches funktioniert nicht oder ich weiß nicht wie!
Ich würde mich über einen guten Tipp freuen, Krista :D
jovel:
Hi,
so ganz kann ich nicht nachvollziehen, was du erreichen willst.
Hilft dir evtl. ein Agent weiter der @command([ToolsRefreshAllDocs]) ausführt??
sloe:
Hi,
eine Möglichkeit:
In den Globals der Ansicht:
--- Code: ---Dim abgelaufeneZeit As NotesTimer
--- Ende Code ---
und dazu eine eigne Sub:
--- Code: ---Sub AktualisierungFrame(Source As NotesTimer)
On Error Resume Next
Dim ws As New NotesUIWorkspace
Dim s As New NotesSession
Dim uidoc As NotesUIDocument
Dim view As NotesView
Dim db As NotesDatabase
Set uidoc = ws.CurrentDocument
Set db = s.CurrentDatabase
Set view = db.GetView("AnsichtName")
Call view.refresh
Call ws.ViewRefresh
End Sub
--- Ende Code ---
In der Ansicht im PostOpen:
--- Code: ---Sub Postopen(Source As Notesuiview)
On Error Resume Next
Set abgelaufeneZeit = New NotesTimer(900, "Aktualisierungszeit") ' 900 Sekunden = 15 Minuten
On Event Alarm From abgelaufeneZeit Call AktualisierungFrame
End Sub
--- Ende Code ---
Die pünktliche Ausführung alle 15 Minuten ist aber nicht garantiert:
The interval in seconds for calling the event handler for the timer. This parameter sets the Interval property. The interval is not guaranteed; other activities on the computer involving script may delay the event.
Gruß
Sloe
webchild:
Habe folgenden Code für meine Anforderungen bekommen:
----------------------------------------------------------------------
In die Globals (Options) der Maske kopieren:
Dim NTime As Integer
Dim NTimer As NotesTimer
Sub NTimerHandler(Source As NotesTimer)
nTime = nTime + 1
Print nTime
If nTime=15 Then
Msgbox "Aktualisiere Fenster ...",64,"NotesTimer-Klasse nutzen"
Dim ws As New NotesUIWorkspace
Call ws.reloadWindow()
nTime=0
End If
End Sub
Und diesen hier ins PostOpen der Maske:
Sub Postopen(Source As Notesuidocument)
Set nTimer = New NotesTimer(1)
nTime = 0
On Event Alarm From nTimer Call nTimerHandler
End Sub
... et voilà - das Fenster wird alle 15sec aktualisiert :)
-----------------------------------------------------------------
Damit ist mein Anfrage geklärt, es funktioniert super.
Die Zeit und die Messagebox kann man an seine Wünsche anpassen.
Für alle die die Datenbank von Klaussal mit der Erweiterung verwenden möchten, hab ich die geänderte Datenbank angehängt.
Danke an alle die sich mit dem Problem auseinander gesetzt haben.
Grüße, Krista
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln