Domino 9 und frühere Versionen > ND6: Entwicklung

zuweisung UiDoc

(1/3) > >>

RonMat:
Möchte über ausgewählte Dokumente ein Refresh durchführen und habe nachfolgenden Script erstellt:
Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim collection As NotesDocumentCollection
   Dim doc As NotesDocument
   Set db = session.CurrentDatabase
   Set collection = db.UnprocessedDocuments
   Set doc = collection.GetFirstDocument()
   Dim ws As New NotesUIWorkspace
   Dim Uidoc As NotesUIDocument
   While Not(doc Is Nothing)
      
      
      Set uidoc= ws.currentdocument
      Call uidoc.refresh
      
      Set doc = collection.GetNextDocument(doc)
   Wend

Das ist nur ein Testscript, später wird die Collection aus def. Datensätzen
erzeugt.
Wenn ich das Script laufen lasse, dann geht ein Fensterchen auf mit der Message: Object variable not set

Ich muß diverse Felder berechnen und hatte es vorher mit computedwith form versucht, doch die Felder wurden nicht berechnet und ich habe ein refresh auf das Dokument laufen lassen und siehe da ..
Da in der Doc Klasse ein refreshen nicht vorgesehen ist wollte ich den Umweg über das Uidoc machen , nun habe ich aber o.g. Prob.
Kann mir wohl einer weiterhelfen? Vielleicht habe ich ja auch im Augenblick ein ziemliches Brett vorm Auge

Axel:
Hi,

in deinem Script knallst in der Zeile

Set uidoc...

Und auf jeden Fall, dass was du vorhast geht so nicht. Das Thema hatten wir hier schon mehrmals.

Die einfachste Möglichkeit ist eine Ansichtsaktion die den Formelbefehl

@Command([ToolsRefreshSelectedDocs])

aufruft.

Damit werden alle markierten Dokumente in der Ansicht aktualisiert.


Axel

Johnson:
@Command([ToolsRefreshSelectedDocs]) führt allerdings keinen Code der Refresh-Events aus. Dort könnten ebenfalls noch Systemfelder geschrieben werden.

Die Zeile Set uidoc= ws.currentdocument ist hier nicht passen.
Die CurrentDocument-Eigenschaft gibt das aktuell geöffnete Dokument zurück. In der Collection sind allerdings nur die ausgewählten Dokumente der Ansicht. Soll heißen: Die Dokumente müssen erst noch geöffnet werden.

Set uidoc = ws.EditDocument(True, doc, False)
If uidoc.EditMode Then Call uidoc.Refresh
Call uidoc.Close(True)

Axel:

--- Zitat von: Johnson am 03.01.06 - 13:06:01 ---@Command([ToolsRefreshSelectedDocs]) führt allerdings keinen Code der Refresh-Events aus. Dort könnten ebenfalls noch Systemfelder geschrieben werden.

--- Ende Zitat ---

Refresh-Event.   ???



--- Zitat von: Johnson am 03.01.06 - 13:06:01 ---...Soll heißen: Die Dokumente müssen erst noch geöffnet werden.

Set uidoc = ws.EditDocument(True, doc, False)
If uidoc.EditMode Then Call uidoc.Refresh
Call uidoc.Close(True)

--- Ende Zitat ---

Damit wirst du allerdings nicht lange Freude haben. Aus eigener Erfahrung kann ich dir sagen, dass nach relativ kurzer Zeit der Notes-Client abschmiert.

Axel

RonMat:
Danke für Euere Anregungen bzw. Kommentare.
Es muß doch eine funktionierende Refresh-Möglichkeit geben, die auch stabil läuft, wobei ich im Moment noch nicht sehe weshalb der Client abschmiert.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln