Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Christopher am 20.09.06 - 12:31:20
-
Hallo Männer´s
ich bearbeite ein Dokument mit einen Agenten und prüfe ob das Dokument geöffnet ist.
Ich erhallte immer eine False von "IsUIDocOpen" zurück.
Jetzt kommte es, wenn ich den Debugger aktiviere bekomme ich ein "True" ::) zurück.
Warum auch immer ich kann es mir nicht erklären.
Habt Ihr zu diesem Problem eine Lösung?
-
IsUIDocOpen ist mit Vorsicht zu genießen, denn es macht nicht das was man vielleicht vermutet: Es wird NICHT geprüft, ob das Backend-Dokument aktuell vom Anwender geöffnet ist!
Es liefert true, falls das Backend-Dokument mit
set doc = uidoc.Document
gesetzt wurde. Was danach allerdings mit dem Frontend-Dok. passiert ist, ist egal. ich habe für mich denn Sinn der Funktion noch nicht wirklich ermittelt.
Denn wenn ich im Code das so setze, weiß ich ja dass ein UI Dok. da ist.
Andreas
-
Verdammt da ist das Properties "IsUIDocOpen" für die Füße.
-
Es gibt einen nicht uninteressanten Anwendungsfall für diese Property. Und zwar im Datenbankscript bei QUERYDOCUMENTDELETE
Wie verschwinden Dokumente ? Ein Anwender öffnet ein Dokument, befindet sich nicht im Edit-Modus und drückt aus irgendeinem Grund die ENTFERNEN-Taste, z.B. weil er etwas korrigieren möchte und denkt, er sei im Edit-Modus.
Was passiert ? Das gesamte Dokument wird gelöscht - nicht eben das, was der Benutzer wollte. Das läßt sich abfangen, und zwar mit
...
If Continue Then
Set tdoc = coll.GetFirstDocument
If coll.count=1 And tdoc.IsuiDocopen Then
tabbruch=Messagebox("Soll dieses Dokument wirklich gelöscht werden",3+32+256,"Delete actual document ?")
If tabbruch <> 6 Then Continue=False
End If
...
Wenn ich in einer View ein Dokument lösche, kommt die Frage nicht.
Für den Fall, den Christopher abfangen will, ist die Property allerdings völlig ungeeignet.