Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Christopher am 20.09.06 - 12:31:20

Titel: Probleme mit IsUIDocOpen !
Beitrag 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?

Titel: Re: Probleme mit IsUIDocOpen !
Beitrag von: Glombi am 20.09.06 - 12:41:43
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
Titel: Re: Probleme mit IsUIDocOpen !
Beitrag von: Christopher am 20.09.06 - 12:48:32
Verdammt da ist das Properties "IsUIDocOpen" für die Füße.
Titel: Re: Probleme mit IsUIDocOpen !
Beitrag von: LN4ever am 23.09.06 - 10:25:38
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.