Definovatelné položky a formuláře - obecně
Tu nájdete:

Uživatelsky definovatelné položky umožňují uživateli si pevnou strukturu Business objektů rozšířit dle vlastních požadavků (s tzv. pevnými položkami) a potřeb a příslušné agendy si tak obohatit o libovolné své vlastní definice položek a dále o libovolné své vlastní formuláře vstupních oken a v nich používat jak své vlastní nadefinované položky, tak položky v systému dodávané výrobcem pro jednotlivé Business objekty. Pokiaľ teda užívateľovi v niektorej z agend chýba položka, ktorú by si želal k jednotlivým záznamom evidovať, môže si ju sám nadefinovať v agende Definovateľné položky a pomocou vlastného vstupného formulára nadefinovaného v agende Definovateľné formuláre si ich zadávať.
Tato technologie je velkou měrou využívána zejména v agendách modulu Mzdy a personalistika, protože mzdová a personální problematika je obecně natolik obsáhlá a má mnoho variant, že je nelze všechny postihnout v dodávaných definicích pevných vstupních oken (formulářů) a položek v nich. Proto jsou tyto agendy v ABRA Gen řešeny z velké části formou pružných definovatelných formulářů jednoduše přizpůsobitelných uživateli a to nejen, co se týče vzhledu, ale i položek, které se v nich mohou vyskytovat.
Na princípe definovateľných položiek sú postavené užívateľsky definovateľné číselníky, ktoré majú len niekoľko základných položiek pevných a zvyšok predstavujú práve položky, ktoré si užívateľ nadefinuje príp. nechá nadefinovať podľa svojich požiadaviek.
Využitie ale tieto položky nájdu samozrejme aj v iných agendách.
Na zjednodušenie výkladu budeme používať tiež skratky:

V každej agende, ktorá prácu s definovateľnými položkami a definovateľnými formulármi podporuje, môžu byť k dispozícii nasledujúce prvky:
- Subzáložka Formuláre - pod záložkou Detail (resp. adekvátnou záložkou zobrazujúcou detailné informácie aktuálneho záznamu).
- Iná subzáložka pod záložkou Detail (resp. adekvátnou záložkou zobrazujúcou detailné informácie aktuálneho záznamu), ktorá je podobou subzáložky Formuláre. Ide napr. o subzáložku Ostatné resp. Mzdové údaje v agendách Zamestnanci, Pracovné pomery a Mzdové listy.
- Panel definovateľných formulárov a to typicky ako oblasť v spodnej časti subzáložky Obsah v záložke Detail (resp. adekvátnej subzáložky zobrazujúcej detailné informácie aktuálneho záznamu).
Či sa v danej agende subzáložka Formuláre resp. adekvátna záložka alebo panel definovateľných formulárov zobrazuje, závisí od aktuálneho nastavenia v menu Nastavenia pre danú agendu.
Existujú však aj prípady, keď zobrazovanie subzáložky Formuláre resp. adekvátnej záložky alebo panela definovateľných formulárov v danej agende nie je možné potlačiť nastavením v menu Nastavenia, pretože by to v uvedených agendách nebolo zmysluplné a ich stále zobrazovanie je výhodné. Napr. niektoré mzdové agendy, definovateľné číselníky a pod.
V subzáložke Formuláre resp. inej adekvátnej subzáložke a v paneli definovateľných formulárov si môže užívateľ vyberať z definovateľných formulárov nadefinovaných pre Business objekty danej agendy a zobrazovať si resp. zadávať pomocou nich požadované údaje.

Existujú dva typy Udf položiek. Líšia sa tým, ako sú reprezentované vnútorne a ako sa s nimi ďalej nakladá. Z toho vyplývajú aj rôzne výhody a nevýhody použitia.
-
Obyčajné alebo "Neextra" definovateľné položky - Položky, ktoré nemajú svoje dáta uložené priamo v zázname tabuľky prislúchajúcej Business objektu, pre ktorý sú nadefinované, ale sú uložené v spoločných tabuľkách s Udf položkami iných objektov. Tudíž, co položka, to záznam ve speciální tabulce (UserData nebo UserWgData). Nevýhodou je pomalšia odozva, najmä pri veľkom množstve Udf položiek, zložitejšia práca s nimi. (Napr. získanie informácie o hodnote troch Udf položiek ku konkrétnej hlavičke faktúry znamená 3 príkazy do špeciálnej tabuľky Udf položiek).
-
Extra definovateľné položky - Položky, ktoré majú svoje dáta uložené priamo v zázname tabuľky prislúchajúcej Business objektu, pre ktorý sú nadefinované. Môžu tu teda byť ako ďalšie stĺpce konkrétneho záznamu danej agendy. Výhodou je, že práce s nimi je většinou rychlejší a jednodušší, hlavně v DynSQL a externích nástrojích. (Napr. získanie informácie o hodnote Udf položiek ku konkrétnej hlavičke faktúry znamená jeden príkaz (získajú sa naraz s ostatnými údajmi hlavičky faktúry)).
X_položky sú oproti U_položkám výhodnejšie z hľadiska rýchlosti práce s nimi, je však potrebné mať na pamäti, že i tak existuje určité obmedzenie, kedy toto môže prestať platiť: ak ich totiž bude veľa, rozšíri sa počet dátových stránok (záznam zaberie viac bytov), čo môže odozvu systému naopak tiež spomaliť.
Z vyššie uvedeného vyplýva, že pri extra položkách musí byť teda zabezpečená úprava štruktúry tabuliek v databáze (zjednodušene povedané "pridanie stĺpcov" podľa nadefinovaných extra položiek). To sa však deje automaticky (ak je to možné) a užívateľ sa tým nemusí zaoberať. Avšak ale táto automatická úprava štruktúry tabuľky sa nemusia podariť, pokiaľ je daná tabuľka práve v užívaní. Dále je po změně v definicích extra položek vhodné restartovat aplikační server. Podrobnejšie viď Extra položky - vnútorná reprezentácia - hlavne Odporúčaný postup pre pridanie extra položiek (a iné zmeny v ich definíciách).
Tj. nevýhody extra položek:
- Možné potíže s aktualizací struktury tabulek, příp. potřeba restartů aplikačního serveru.
- Dále limity pro extra položky dané omezením délky záznamu v databázi (omezený počet možných extra položek daný podle typu databázového serveru limitem počtu sloupců v tabulce (ORACLE), či délkou v KB jednoho záznamu (Firebird)).
Extra položky boli v systéme zavedené neskôr. Dôvodom, prečo aj naďalej existujú oba typy, je hlavne spätná kompatibilita (môžu existovať rôzne externé aplikácie naviazané na "neextra" Udf položky). A dále to, že u položek s historií (většina Udf položek modulu Mzdy a personalistika) jsou data historie stejně uložena ve speciální společné tabulce, čímž se stejně ztrácí výhoda extra položek.
K dispozícii je tiež možnosť previesť si starší typ "neextra" Udf položiek na extra položky.
To, či si užívateľ položku nadefinuje ako extra či "neextra", je čisto na ňom a môže to urobiť jednoducho začiarknutím príznaku Extra priamo v definícii. Ako sa rozlišujú v svojom názve, viď Pravidlá pre použitie prefixov a kódov Udf položiek.
V niektorých prípadoch nie je možné extra položky definovať priamo k danému Business objektu, ale inde. Viď Obmedzenia pre definíciu extra položiek v rámci niektorých Business objektov.

Každá definovateľná položka a každý definovateľný formulár má o. i. nasledujúcu vlastnosť, ovplyvňujúcu ďalšiu prácu s nimi:
- Systémová definícia
- Ano - označení pro def. položky a formuláře dodávané výrobcem. Systémové definovateľné položky sú od užívateľských odlíšené aj prefixom v kóde. Pre systémové definície platí obmedzenie v opravách a mazaní a sú automaticky aktualizované v rámci update.
-
Nie - Potom nejde o systémovú def. položku resp. def. formulár, ale o vašu vlastnú užívateľskú definovateľnú položku resp. definovateľný formulár. Takýchto definovateľných položiek aj formulárov si môžete vytvoriť ľubovoľné množstvo, napr. pomocou kópie vybranej systémovej a jej modifikáciou. Súčasne je možné aj systémovú položku pri jej použití v vstupnom formulári drobne modifikovať.
U definovatelných položek jsou čtyři možnosti: systémové a nesystémové extra položky a dále systémové a nesystémové "neextra" položky. Každá má iný prefix a kód v inom rozsahu. Viď Pravidlá použitia prefixov a kódov Udf položiek.
Každý definovateľný formulár má ďalej nasledujúcu vlastnosť:
- Globálna definícia
- Ano - Pak je definovatelný formulář společný pro celou firmu.
-
Nie - Definovateľný formulár je uložený ako užívateľský a bude k dispozícii iba pre užívateľa, ktorý ho nadefinoval (vytvoril). Pozor! Výnimkou je prípad, keď je takýto neglobálny def. formulár vybraný automaticky na základe aktuálne použitej definície podmienok definovateľných formulárov (ak je v takej definícii použitý). Tzn. aj neglobálny formulár môže užívateľ sprístupniť ostatným prostredníctvom spomenutej definície. Objasníme na príklade:
Užívateľ Novák si nadefinuje formulár X ako "svoj" neglobálny. Takýto def. formulár sa ostatným užívateľom na výber neponúka. Pokiaľ ale užívateľ Novák tento formulár použije v definícii podmienok definovateľných formulárov, ktorú sprístupní ostatným užívateľom (tzn. nadefinuje ju ako globálnu), a oni túto definíciu použijú, tak ak je podmienka v nej nadefinovaná pre formulár X splnená, tak aj im sa formulár X zobrazí a budú ho môcť použiť. Nastavenie je k dispozícii len pre nesystémové definície. Všechny systémové definice jsou automaticky Globální (jsou dodávány výrobcem, tudíž ani nemohou být vázány na žádného konkrétního uživatele).27.06.07