4D Write Pro – Detekce úprav dokumentu

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í!

Roland Lannuzel
- Product Owner & 4D Expert - Po studiu elektroniky se Roland věnoval průmyslovým IT jako vývojář a konzultant, který vytvářel řešení pro zákazníky s různými databázemi a technologiemi. Koncem 80. let se zamiloval do 4D a používal jej při psaní podnikových aplikací, které zahrnovaly účetní, fakturační a e-mailové systémy. nakonec se připojil ke společnosti v roce 1997 a Rolandův cenný přínos zahrnuje návrh specifikací, testovacích nástrojů, demoverzí a také školení a přednášky pro komunitu 4D na mnoha konferencích. Nadále aktivně utváří budoucnost 4D definováním nových funkcí a nástrojů pro vývoj databází.