Formuláře/Razítka
Klíčová slova:
Formulář
Datová položka
Číselník
Kontrola dat
Vstup údajů do systému
Princip funkce formulářů
Formuláře slouží ke skupinovému vstupu dat do počítače. Jsou relativně autonomní složkou systému, která má společné rysy za všech okolností. Formulářový vstup se uplatňuje všude tam, kde vstupuje najednou celá řada údajů. Umožňují se různé nestandardní akce, jako je křížové doplnění údajů z databáze, kontrola na správnost součtu, automatické generování výčetek apod.
V následujícím popise budeme vycházet ze standardního vybarvení programů rodiny ArcShellu. Jelikož mají tyto programy společně nastavitelné barvy, může se finální nastavení lišit případ od případu.
Formuláře se objevují obvykle v okénkách a jejich rozměr může být v podstatě libovolný. Formulář zde figuruje jako
papír a okénko jako průzor na něj. Okénkem je možno rolovat všemi směry, kam to má smysl. Manuální rolování je vesměs
zbytečné, formulář sám okénkem roluje tak, jak vyplňování postupuje. Většina formulářů je navíc navržena / generována
tak, že odpovídají velikostí přesně zobrazovacímu okénku.
Formuláře se objevují v tomto kontextu resp uspořádání obrazovky:
Horní řádek obsahuje datum a čas resp. aktuální chybové hlášení.
Dolní řádek obsahuje nápovědu pro nejdůležitější klávesy (citlivá na myš).
Střední část obsahuje rámeček se snímaným formulářem.
Šedá část formuláře odpovídá papírovému podtisku.
Modré kolonky jsou datové položky - tedy ty části formuláře, které je možno vyplňovat.
Červená kolonka je ta, kterou operátor právě vyplňuje.
V cyklu práce s formulářem operátor prochází položkami, vkládá do nich data a až je spokojen, data předá k dalšímu
zpracování. Tento cyklus je doprovázen kontrolami ze strany formulářového systému:
Během práce na jediné položce se kontrolují vstupující znaky na přípustnost.
Po opuštění položky se kontroluje položka na správnost jako celek.
Při ukládání resp ukončení se kontrolují všechny položky na konzistentnost.
Některé položky mohou být vyplněny jenom výběrem z číselníku.
Některé položky mohou být vnuceny systémem (součet jiných položek apod.).
Jiné položky mohou být předvyplněny, ale operátor má možnost je přepsat. Vyznačují se tím, že posledním
znakem v jejich jménu je "W".
Způsob hlášení chyb.
Chyby při vyplňování se projevují akusticky a výpisem vysvětlujícího textu v horním řádku. Text zmizí obvykle po
dalším stisku klávesy. Zvlášť důležitá hlášení se zobrazí v červeném rámečku a operátor je musí potvrdit stiskem
klávesy Enter nebo Esc.
Pohyb mezi položkami. Ve formuláři se mezi jednotlivými položkami pohybuje pomocí kláves:
Enter ... na další položku
Tab ... na další položku s ev. kopírováním směrem shora dolů
Ctrl+Enter ... na předchozí položku
Up ... o řádek nebo odstavec výše
Down ... o řádek nebo odstavec níže
^Y ... smaže položku
^U ... smaže párované položky v razítku s citlivostmi, tedy položku Hodnota i Interpretace.
Cvaknutí levým knoflíkem myši - skok na udanou položku
Formulář může ale posun přes položku sám odmítnout - to pokud hodnota aktuální položky
neprošla odpovídajícím testem.
Obdobně se může stát, že je způsob chodu kurzoru po individuálních položkách odlišný - definovaný programátorem
aplikace. Přípustný je například automatický odskok po vyplnění jednoznakové položky nebo vertikální chod.
Pohyb v rámci položky. Zde se uplatňují klávesy:
Left ... posun vlevo
Right ... posun vrpavo
Backspace ... výmaz znaku před kurzorem
Del ... výmaz znaku na kurzoru
Vyplňování údajů
Vstup dat se děje jako na psacím stroji - přepisováním kolonky. Jako data sepřipouštějí alfanumerické znaky. Ty
jsou průběžně kontrolovány a systém například nedovolí vstup písmen tam, kde musí být číslice.
Kontroly po opuštění položky
Tyto kontroly probíhají tehdy, pokud operátor - nejčastěji stiskem Enter - "odešle" data do kolonky. Například se
číslo kontroluje na sémantickou vlastnost resp. na výskyt v databázi. Typickými důvody pro chybové hlášení jsou:
Nepovolená hodnota.
Formálně nesprávná hodnota.
Prázdná avšak povinná položka.
Chybný formát číselného údaje.
Neprošla kontrola údaje proti číselníku.
Sémantická chyba plynoucí z kontextu.
...
Kontroly na závěr práce s formulářem
Stiskem F2 operátor odesílá ke zpracování formulář jako celek. Před tím je formulář zkontrolován jak na formální
tak i na logickou správnost. Mají-li být například určité položky součtem jiných, je tento fakt kontrolován.
Důležité klávesy
Esc, F10 - ukončí práci s formulářem aniž by se data zpracovávala.
F2 - odesílá data z formuláře ke zpracování.
F3 - rozsvítí menu pro určitou položku - pokud existuje nebo je vyžadováno systémem.
F1 - zobrazí základní help.
F12 a Ctrl+F12 - slouží k "zamrazení" a "rozmražení" formuláře. Hodí se pokud je třeba práci na složitém
formuláři přerušit, počítač použít na něco jiného a poté pokračovat v práci.
Implementační informace
Informace v této kapitole jsou určeny administrátorovi a pojednávají o detailech implementace formulářů. Manipulace
s definičními soubory formulářů by finální uživatel měl provádět jenom výjimečně a to po předchozím uvážení všech
důsledků.
Formuláře jsou definovány v souborech *.def a jejich struktura je rádek po řádku následující. Nejprve je sekce
definice formálního vzhledu a položek ve formuláři. Vždy lichý řádek definuje vzhled formuláře - jednoho řádku v
něm. Sudý řádek začíná povinně lomítkem a jsou na něm úseky odpovídající položkám. Tyto mají jedno až tříznaková jména
a jejich skutečná délka je označena sekvencí znaků $. Na řádku může být neomezeně položek, nemohou se ale ani
překrývat a ani přesně dotýkat. Formulář je koncipován na řádky široké až 255 znaků a dlouhý 64 řádků. Počet položek
je omezen číslem 512. Po sekci definice vzhledu formuláře ukončené znakem @ na samostatném řádku následuje sekce
definic vlastností položek. Řádky mohou obsahovat některé z rovnic:
check=on - zapíná automatické scanování.
int=prefix - deklaruje položky jako celočíselné.
number=prefix - deklaruje položka jako číselné s buiseness formátem zápisu.
float=prefix - deklaruje položky jako reálné hodnoty.
mod11=prefix - deklaruje jako modulo 11 položku (viz dále).
evmod11= - viz dále.
evf3=položka - deklaruje položku jako číselníkovou.
cis=položka|číselník - deklaruje položku jako číselníkovou s s kontrolou na udaný soubor.
jump|položka - po vyplnění znaku do položky se jde rovnou vbez Enter na další.
vertical=on - donutí systém snímat formulář po sloupcích.
default=položka|předdefinovaná hodnota - dává položce před snímáním nastavenou hodnotu.
paired=P|Q - svazuje dvě položky jako párované, první P bude obsahovat název antibiotika a druhá, Q,
jeho citlivost (resp. citlivost mikroba na antibiotikum uvedené v P).
oracle= ...
upper=prefix - zapíná automatickou konverzi na velká písmena, viz též v kapitole o technické konfiguraci systému o tom, jak se interpretují násobné stisky stejné klávesy na stejném místě bez ohledu na Shift a Caps Lock, je to v kapitole Frekventované dotazy.
...
Verze od verze formulářový systém může obsahovat také další klauzule. Je-li na pravé straně rovnice prefix, pak se podmínka testů týká všech položek, začínajících daným prefixem. Rozdíl mezi float a number je v tom, že number umožňuje zápis čísla včetně oddělovačů čárkami. Klauzule mod11 deklaruje položku jako bankovní účet splňující test na mod11, evmod11 pak umožní i prázdnou položku (obvykle se používá pro předčíslí).Klauzule evf3 a cis slouží ke svázání položky s číselníky.
Pro jednoznakové položky je zavedena v některých aplikacích konvence, že systém automaticky konvertuje malá písmena na velká. Týká se to jenom standardních ascii znaků s kódem <=127.
Formuláře jsou implementovány jako objecty s overloadovanými metodami. Metody obsahují řadu parametrů, které je možno konfigurovat buď globálně, nebo i na úrovni definičních souborů jednotlivých fomulářů. Každé snímání formuláře probíhá podle schématu:
Načtení formuláře z definičního souboru.
Cyklus snímání jednotlivých znaků. Formulář funguje jako konečný automat, který volá automaticky některé metody, které stav formuláře libovolně změnit - obvykle ale modifikují jenom podlední vstup z klávesnice. Detailní diskuse metod je uvedena dále.
Kontrola údajů po stisku F2.
Uložení údajů do transakčního souboru.
Nastartování transakce.
Hlavní metody, kterými je možno formulář ovládat jsou tyto:
Test vstupujícího znaku. Je-li například položka deklarována jako mod11, není do ní možno ani zapisovat písmena.
Test opuštění položky (po Enter apod). Testuje integritu na úrovni jedné položky. Například mod11 se testuje na modularitu. Položky deklarované jako cis se kontrolují na udaný číselník.
Stisk F3 - nabídka. Použije se číselník deklarovaný v klauzuli cis.
Test po stisku F2 - položky se podrobí individuálním testům.
Vedle uživatelsky definovaných metod obsahují programy také řadu testů, které se nedají na uživatelské úrovni modifikovat - různé křížové testy, vazby mezi čísly účtů a databází evidence účtů apod.
Zásahy do definice formulářů by se měly dít opatrně. Zde se pokusíme ještě shrnout některé problémy, ke kterým by mohlo dojít:
Zrušení/přejmenování důležité položky - přestane fungovat transakce.
Zkrácení položky pod minimální míru - systém se zacyklí, typicky nepůjde vložit údaj z čísleníku ale hned se bude proti číselníku kontrolovat.
Nevhodná redeklarace položky. Bude-li například částka redeklarována jako číselníková položka, pravděpodobně se nikdy nepodaří vyplnit formulář s výčetkou.
Zkorumpování struktury - formulář bude nesmyslný.
Za běhu se mohou při nevhodné redefinici formuláře objevovat i varovná hlášení "reference na neexistující položku XXX" apod.
Každý zásah do struktury formulářů je nutno uvážit a nejprve vyzkoušet. Při problémech je nutno se vrátit k originálnímu tvaru nebo konzultovat dodavatele programového vybavení.
Laboratorní systém s výjimkou nejsložitějších formulářů používá automatické generování. Zde se tedy všechna výše uvedená varování týkají pouze několika formulářů (MOP apod).
Rejstřík kapitoly
Nadřízená kapitola dokumentace / rejstřík