Domino 9 und frühere Versionen > ND9: Entwicklung
Manueller Spiecherdialog einfügen
Legolas:
Hallo Forum,
eine Frage zum Speicherdialog von Dokumenten.
Ich habe eine Anwendung in der ein neues Dokument erzeugt wird, das initial mit diversen Daten vorbelegt und berechnet werden muss.
Ich muss nun eine eigene Speicherdialogbox beim Verlassen des Dokuments anzeigen, da diese noch weitere Funktionen beinhalten muss.
Beim Verlassen des Dokuments liefert jedoch die source.ModifiedSinceSaved Eigenschaft immer ein True zurück.
Egal ob ich das Dokument nur neu erstelle und direkt wieder schließe oder ob ich Änderungen im Dokument vornehme.
Das Ziel soll natürlich sein, dass die eigene Dialogbox nur erscheint, wenn der Anwender auch wirklich Änderungen im Dokument vorgenommen hat.
Ist sowas möglich?
Gibt es z. Bsp. die Möglichkeit, den Status der ModifiedSinceSaved Eigenschaft eines Dokumentes manuell zu manipulieren?
Grüße
Bernd
rambrand:
Hallo Bernd,
meines Wissens nach ist die Eigenschaft Read-only. Ist als nichts mit manipulieren.
Du willst also nur, wenn der Anwender wirklich etwas geändert hat, dass Dein Speichern-Dialog erscheint?
Meine Idee wäre jetzt beim Wechsel in den Bearbeitenmodus die Feldinhalte zwischenzuspeichern und wenn der Benutzer das Dokument schließen will, die aktuellen Feldinhalte mit den zwischengespeicherten abzugleichen. Gibt es Änderungen, dann soll der Dialog erscheinen.
Die Eigenschaft modifiedsincesaved geht dann auf true, wenn im UIDocument etwas geändert wird. Werden eventuell beim Öffnen des Dokuments noch irgendwelche Felder angepackt, bevor der Anwender überhaupt etwas ändern kann?
Bye
Markus
Tode:
Leider ist die ModifiedSinceSaved- Property (genau wie die IsNewDoc- Property bei per Script angelegten Dokumenten) sehr unzuverlässig.
Ich arbeite in solchen Fällen mit einer "ShadowDocument"- Klasse: Beim öffnen lege ich mir ein Objekt dieser Klasse an, das hat ein NotesDocument- Property, in das ich alle Items des Dokuments kopiere. Beim speichern wird das Shadow- Dokument einfach mit den Werten aus dem Dokument aktualisiert, und beim schliessen prüfe ich die relevanten (weil vom User änderbaren) Felder gegeneinander ab, und weiss dann, ob sich was geändert hat (wir arbeiten z.B. mit Computed Tabbed Tables für die Optik... und die dafür zuständigen Felder brauche ich natürlich nicht zu vergleichen, weil sie keine relevane Änderung darstellen...
Legolas:
Hallo Ihr Zwei,
das habe ich fast befürchtet.
Und wir verfahrt Ihr dann bei Richtext Feldern?
Sichert Ihr da den Text den rtItem.text zurückgeliefert wird und vergleicht Ihr dann diesem mit dem RT-Feld des zu speichernden Dokuments?
Bei uns hier im Haus sind das allerdings RT-Felder mit teilweise einer Menge Dateianhänge die auch mal über 50 MB groß sein können.
Grüße
Bernd
rambrand:
Hallo Bernd,
mit RichText habe ich das bisher - zum Glück - nicht machen müssen.
Eventuell wäre die Eigenschaft ValueLength ein gangbarer Weg, einfach die Byte-Größe der Werte in den Feldern vergleichen.
Bye
Markus
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln