Wenn sich ein 4D Write Pro Dokument im Bearbeitungsmodus befindet, ist es oft hilfreich zu wissen, ob es vom Endanwender tatsächlich geändert wurde. Anhand dieser Information können Aktionen oder Schnittstellen benutzerfreundlicher gestaltet werden.
Ab 4D v19 R7 ist dies einfacher denn je.
DEMO-DATENBANK
GEÄNDERTE DOKUMENTE
Ein Dokument kann auf verschiedene Arten geändert werden. Entweder:
- durch Programmierung mit einem der vielen Befehle oder
- durch den Endbenutzer selbst.
Ein geändertes Dokument muss im Allgemeinen gespeichert werden, sei es in Bezug auf den Inhalt (Hinzufügen, Ändern oder Löschen von Text, Tabellen oder Bildern…) oder das Aussehen (Stil, Ränder, Ausrichtung, Farben…).
In jedem Fall müssen Sie in der Lage sein, die Möglichkeit zum Speichern über eine Schaltfläche oder ein Menü anzubieten, und im Extremfall, wenn der Benutzer die Seite verlassen möchte, ohne sie gespeichert zu haben, müssen Sie ihm eine Nachholoption anbieten können („Möchten Sie speichern…?“).
Dies ist nun sehr schnell durch das Testen des neuen document.modified Attributs möglich.
Das Prinzip dieses Attributs ist ganz einfach. Wenn das Dokument erstellt oder geladen wird, wird sein Wert auf False gesetzt. Sobald das Dokument dann geändert wird (durch Programmierung oder Benutzeraktion), ändert sich der Wert automatisch auf True.
So wird es einfach, die richtigen Entscheidungen zu treffen 🙂
- Aktualisieren Sie die Schnittstelle
OBJECT SET ENABLED(*; "btnSave";WParea.modified) // true or false
- Bestätigen Sie das Speichern
If (Form event code=On Unload)
If (WParea.modified)
CONFIRM("Would you like to save the document ?"; "Save"; "Discard")
If (ok=1)
// do what you have to do
End if
End if
End if
Egal, ob ein Leerzeichen gelöscht oder ein Komma hinzugefügt wird, ein einzelnes Zeichen fett oder kursiv gesetzt wird, das document.modified wird auf True gesetzt. Auch im Falle einer Rückgängigmachung bleibt das document.modified auf True.
Es ist jedoch möglich, den Wert dieses Attributs durch Programmierung zu erzwingen, z. B. nachdem das Dokument gespeichert wurde.
If (WParea.modified)
// save document
// (…)
// then set the status to false
WParea.modified:=False // will stay false until next document modification
End if
… ODER NICHT GEÄNDERT?
Einige Aktionen können nur das Erscheinungsbild der Dokumente ändern, ohne den Inhalt des Dokuments zu verändern; dies sind die Ansichtseigenschaften.
Sie können den Zoomfaktor ändern, die horizontalen und vertikalen Lineale ein- oder ausblenden, unsichtbare Zeichen, Formeln, Kopf- oder Fußzeilen einblenden, usw. Nichts von alledem wird gespeichert. Das bedeutet, dass das Dokument nicht verändert wird und daher das Attribut document.modified bleibt False. Siehe die Dokumentation über dieses neue Attribut.
Schlussfolgerung
Diese neue und unkomplizierte Eigenschaft erkennt schnell Änderungen in einem Dokument und führt entsprechende Aktionen durch. Entweder transparent (z. B. automatisches Speichern, wenn ein Dokument geöffnet bleibt) oder mit intelligenter Anpassung der Oberfläche an die jeweiligen Umstände!