ZFO editor

Úvod

ZFO Editor je program umožňující práci se ZFO formátem na platformách, které nejsou nativně podporovány oficiálním klientem 602XML Filler.

Podle dokumentace společnosti Software 602 existuje formát ZFO ve dvou variantách:

  1. Komprimovaný balík jednoho nebo několika souborů ("Zipped fo").
  2. Formát datové zprávy, popsaný v dokumentu Provozní řád ISDS

ZFO Editor umí pracovat s formátem č.1. Formát č.2 umí zpracovat aplikace dsgui.

VAROVÁNÍ

Tato verze je určena pouze pro demonstrační účely. Její použití je pouze na vlastní nebezpečí a sdružení CZ.NIC v žádném případě neodpovídá za žádné způsobené škody.

Vývoj ZFO Editoru byl ukončen a není již dále ze strany CZ.NIC jakkoli udržován či podporován. Zdrojové kódy jsou k dispozici pod svobodnou licencí, která umožňuje případným zájemcům pokračovat ve vývoji tohoto programu.

Ke stažení

Návrhy, připomínky

Posílejte na email zfo-editor@labs.nic.cz.

Uživatelská dokumentace

Popis ZFO editoru

ZFO Editor je desktopová aplikace pro práci se ZFO formuláři. Využívá XML, XSLT, Xpath, Javascript a je napsána v jazyce Python. Umožní zobrazit, vyplnit a uložit ZFO formulář stejným způsobem jako v oficiálním software pro ZFO formuláře od společnosti Software 602. Aplikace ZFO Editor tedy umožňuje vyplnit ZFO formulář bez instalace produktu 602XML Filler.

ZFO Editor pracuje se soubory s příponou .zfo. Po startu si uživatel v dialogovém oknu vybere formulář, s kterým chce pracovat. Po výběru ZFO formuláře se ZFO Editor pokusí balík rozbalit a obsah souboru form.fo zkonvertovat do HTML formuláře. Formulář je pak zobrazen užívateli, který může editovat jednotlivá pole.

ZFO Editor byl vyvíjen a testován na Ubuntu. Ke svému běhu potřebuje Python verze 2.6, balík python-webkit a knihovnu lxml, která je dostupná z balíku python-lxml. Tato knihovna umožňuje pracovat s XML dokumenty a provádět XSLT transformace. Na transformace z formátu ZFO do HTML formuláře je použitá šablona fo2html.xsl, která byla doplněna o šablony zpracovávající rozšíření FO formátu společnosti Software 602. HTML formulář je pak zobrazen v okně aplikace a posílá aplikaci žádosti o zpracování údálostí, které se v něm vyskytly (kliknutí myši, zápis do pole…).

ZFO Editor není v tuto chvíli schopný zpracovat všechny ZFO formuláře. Dokumentace ZFO formátu se o mnoha aspektech ZFO formátu nevyjadřuje, proto byla implementace provedena metodou zpětného inženýrství a není možné zaručit plnou kompatibilitu s aplikací 602XML Filler.

Další odlišnost od aplikaci 602XML Filler je v zobrazování formulářů. Formát ZFO pracuje s pojmem „stránka“ tj. obsah rozděluje na jednotlivé stránky, u HTML formulářů je pojem „stránka obsahu“ nezřejmý, proto jsou ZFO formuláře vykreslovány jako jedna dlouhá HTML stránka. Také se může lišit rozložení objektů, protože ZFO formuláře pracují s absolutními pozicemi a rozměry objektů.

Instalace ZFO editoru

ZFO Editor se instaluje buď z poskytovaných balíčků nebo ze zdrojových souborů pomocí setuptools. Je potřebné mít nainstalován interpret jazyka Python verze 2.6, a balíky pyton-lxml, python-webkit (nebo jejich obdobu).

Spuštění ZFO Editoru

ZFO editor se spouští z příkazové řádky příkazem zfo_editor (jako argument může být uvedena cesta k ZFO, který se po startu otevře).

Otevření formuláře

Formulář se otevírá výběrem cesty k souboru v dialogovém okně. Po výběru ZFO formuláře aplikace rozbalí ZFO balík, transformuje formát fo na HTML stránku použitím XSLT šablony a výsledné HTML zobrazí. Zároveň si uloží již zpracovaný FO dokument do dočasné mezipaměti pro další práci. Při následném otevření formuláře ze stejné cesty se už transformace neprovádí, využije se výsledný předzpracovaný HTML soubor z předešlého běhu.

Po vykreslení formuláře aplikace vyplní hodnoty polí, k čemuž použije datovou větev formuláře. Následně aplikace znepřístupní pole která jsou jen ke čtení, skryje ty části formuláře, které mají být skryty a vytvoří opakující se sekce odpovídající datové větvi.

Editace formuláře

Po změně a opuštění každého vstupního pole formuláře se zadaná hodnota uloží do datové větve. Aplikace ověří, zda uložená hodnota splňuje podmínky specifikované ve formuláři. Když nesplňuje, je hodnota přepsána zpátky původní hodnotou. Pokud ano, nová hodnota je uložena a jsou přepočítána ostatní vstupní pole, včetně seznamu needitovatelných a skrytých polí, závislá na změněném vstupním poli. Informace o uložení či neuložení hodnoty v poli je užívateli zobrazena v postranním panelu.

Uložení formuláře

Formulář se ukladá pomocí nabídky menu výběrem možnosti Uložit.