Domino 9 und frühere Versionen > ND8: Entwicklung
Queryclose und "Wollen Sie speichern" = Nein
Peter Klett:
Du kannst umgekehrt prüfen, indem Du Dir eine globale Variable (z.B. Dim flagGespeichert As Integer) definierst, und diese im Querysave auf True setzt. Dann kannst Du im Queryclose abfragen ob das Dokument gespeichert wurde.
Was passiert im Queryclose, wenn Du das Dokument nur zum Lesen öffnest? Beachtest Du auch Source.EditMode?
iukhdh:
Wenn ich das Dokument nur zum Lesen öffne, dürfte es eigentlich keine Probleme geben, da ich an den Werten ja nix ändere, und diese ja schon in der Dialogbox geprüft wurden. Aber ich weiß was du meinst, muss ich mir anschauen.
Jetzt probier ich morgen mal mein Glück mit dem Flag.
Danke.
Peter Klett:
Hier ein anderer Lösungsansatz (so arbeite ich bei Dialogboxen). Du rufst die Dialogbox im Script in einer Schleife auf (
Do While ...
If workspace.Dialogbox (........, dialogdoc) Then
), nach Schliessen führst Du Deine Überprüfung im aufrufenden Script auf, ist alles in Ordnung, verlässt Du die Schleife, wenn nicht, gibst Du eine Fehlermeldung aus (oder schreibst die Fehler in ein extra Fehlerfeld in der Dialogbox), und die Dialogbox öffnet sich wieder. Damit hast Du zwar den Effekt, dass die Dialogbox kurz geschlossen und danach wieder geöffnet wird, sparst Dir aber das Gehampel, was Du jetzt gerade machen musst.
Peter Klett:
--- Zitat von: iukhdh am 31.05.10 - 17:50:12 ---Wenn ich das Dokument nur zum Lesen öffne, dürfte es eigentlich keine Probleme geben, da ich an den Werten ja nix ändere, und diese ja schon in der Dialogbox geprüft wurden....
--- Ende Zitat ---
Wenn sich morgen an der Überprüfung etwas ändert (z.B. ein neues Feld kommt dazu), wird beim Schließen aller alten Dokumente, die dieses Feld nicht haben, eine Fehlermeldung ausgegeben.
iukhdh:
Hallo Peter,
da bin ich nochmal kurz.
Also dein Vorschlag mit dem Flag funktioniert einwandfrei. Da ich die Überprüfungen im Queryclose ja nur ein einziges Mal benötige (beim schliessen der Dialogbox) breche ich bei späteren Aufrufen die Abfragen im Queryclose einfach ab. Alles andere läuft dann im Querysave.
Deinen anderen Lösungsansatz probier ich bei Gelegenheit mal aus, da stehen noch einige andere Sachen an, die nicht so eilig sind wie diese gerade.
Danke für die Hilfe.
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln