Když je dokument aplikace 4D Write Pro v režimu úprav, je často užitečné zjistit, zda jej koncový uživatel skutečně upravil. Na základě této informace lze upravit akce nebo rozhraní tak, aby byly pro uživatele přívětivější.
Počínaje verzí 4D v19 R7 je to nyní jednodušší než kdy dříve.
DEMO DATABÁZE
UPRAVENÉ DOKUMENTY
Dokument lze upravit různými způsoby. Buď je možné použít tzv:
- programováním pomocí některého z mnoha příkazů nebo
- samotným koncovým uživatelem.
Upravený dokument musí být zpravidla uložen, ať už z hlediska obsahu (přidání, úprava, odstranění textu, tabulek nebo obrázků…) nebo vzhledu (styl, okraje, orientace, barvy…).
V každém případě musíte být schopni nabídnout možnost uložení prostřednictvím tlačítka nebo nabídky a v krajním případě, kdy by uživatel chtěl odejít bez uložení, mu být schopni nabídnout možnost dohrání („chcete uložit...?“).
To se nyní velmi rychle provede otestováním nového dokumentu.modified atribut.
Princip tohoto atributu je jednoduchý. Při vytvoření nebo načtení dokumentu je jeho hodnota nastavena na False. Jakmile je pak dokument upraven (programátorským nebo uživatelským zásahem), hodnota se automaticky změní na True.
Správné rozhodování se tak stává přímočarým 🙂
- Aktualizace rozhraní
OBJECT SET ENABLED(*; "btnSave";WParea.modified) // true or false
- Potvrďte uložení
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
Ať už se jedná o smazanou mezeru nebo přidanou čárku, tučně nebo kurzívou přidaný jeden znak, nastaví se dokument.modified na True. I v případě zrušení zůstane dokument.modified True .
Hodnotu tohoto atributu je však možné vynutit programově, například po uložení dokumentu.
If (WParea.modified)
// save document
// (…)
// then set the status to false
WParea.modified:=False // will stay false until next document modification
End if
… NEBO NENÍ ZMĚNĚN?
Některé akce mohou měnit pouze vzhled dokumentů, aniž by skutečně měnily obsah dokumentu; jedná se o vlastnosti zobrazení.
Můžete změnit faktor zvětšení, zobrazit nebo nezobrazit vodorovná a svislá pravítka, zvolit zobrazení neviditelných znaků, vzorců, záhlaví nebo zápatí atd. Nic z toho se neuloží. To znamená, že dokument se nemění, a proto zůstává atribut document.modified False . Viz dokumentace k tomuto novému atributu.
Závěr
Tato nová a jednoduchá vlastnost rychle zjistí změny uvnitř dokumentu a provede odpovídající akce. Buď transparentně (například provede automatické uložení, když dokument zůstane otevřený), nebo inteligentně upraví rozhraní podle okolností!