Definovatelné položky - záložka Detail

Zobrazí detailní informace o nadefinovaných položkách k aktuálnímu záznamu třídy BO ze záložky Seznam. Údaje o definovatelných položkách nadefinovaných k dané třídě objektu jsou uspořádány do subzáložek:

Obsažené subzáložky: Položky Definice položky

V horní části záložky Detail může být variantně zobrazen některý z Panelů definovatelných údajů detailu pro tuto agendu. Zobrazení panelu definovatelných údajů detailu závisí na aktuálním nastavení v menu Nastavení pro danou agendu a přihlášeného uživatele.

Dále jsou v horní části záložky Detail k dispozici následující položky:

Název Popis
Třída

Třída Business objektu (BO), pro který jsou uživatelské položky definovány. U nové definice položek třídu vyberete ze skrytého seznamu, u již existující definice je položka nepřístupná, tedy nelze ji měnit.

Pro každou třídu lze nadefinovat maximálně jednu definici definovatelných položek.

Nabízí se jen ty třídy BO, které danou funkcionalitu podporují (dáno výrobcem).

K některým třídám BO nelze definovat extra položky. Viz dále popis zatržítka "Extra".

Řetězec, pod kterým se jednotlivé třídy v seznamu nabízejí, odpovídá položce "Popis" daného Business objektu a můžete podle ní i daný Business objekt dohledat v popisu Struktur a definic GenDoc.chm.

K vybrané třídě se zobrazuje i CLSID (identifikační GUID) Business objektu dané třídy.

V dokumentaci GenDoc.chm jsou CLSID Business objektů uvedeny jak v nekomprimovaném delším 36-ti znakovém tvaru (32 znaků vč. pomlček), resp. v 38-mi znakovém (vč. pomlček, závorek), tak v pakovaném 26-ti znakovém tvaru (viz PackedGUID), ve kterém se používají v programu (podle nich lze rovněž popis v dokumentaci GenDoc.chm rychle dohledat).

Subzáložka Položky

Obsahuje:

Seznam položek - seznam řádků definic položek

Needitovatelný seznam definovatelných položek již nadefinovaných k aktuální třídě BO ze záložky Seznam. V seznamu jsou pro každou uživatelskou položku uvedeny základní údaje o ní. Význam jednotlivých údajů je zřejmý z názvu nebo popisu v subzáložce Definice položky, blíže objasníme pouze následující:

Název Popis
Systémová Položka, která informuje, zda se jedná o systémovou definici či nikoli.
Kód Kód definovatelné položky. Kód je přidělován automaticky programem podle vnitřních pravidel při zadání nové definice definovatelné položky.

Lišta navigátoru

Ve spodní části subzáložky je k dispozici lišta navigátoru:

Příklad lišty navigátoru v této subzáložce

Navigátor v této subzáložce obsahuje tlačítka:

  • Pro pohyb kurzoru po řádcích (na začátek, předchozí řádek, další řádek, na konec) seznamu účtů, změně jejich pořadí a hledání hodnoty v seznamu. Pořadí položek má význam zejména orientační. Pokud se jedná o položky agend mezd, které vstupují do výpočtu, pak platí, že pořadí položek nijak neovlivňuje výpočet mezd.
  • Vložit - Pro vložení nového řádku pro definici další uživatelské položky k dané třídě objektů před aktuální řádek (na němž stojí kurzor). Údaje dané položky se zadávají v subzáložce Definice položky a jsou dostupné k editaci pouze tehdy, když je vybrána třída Business objektu. Dokud není třída zvolena, jsou needitovatelné.
  • Přidat - Pro přidání nového řádku pro definici další definovatelné položky k dané třídě objektů na konec. Údaje přidávané položky v subzáložce Definice položky jsou dostupné k editaci pouze tehdy, když je vybrána třída Business objektu. Dokud není třída zvolena, jsou needitovatelné.
  • Vymazat - Pro vymazání aktuálního řádku, resp. označených, pokud je nějaký označen, s definicí uživatelské položky.

    Pro mazání definic definovatelných položek platí stejné upozornění, jako pro mazání celé definice - viz popis u funkce Vymazat v záložce Seznam.

  • Sečteno do ... - Funkce pro dohledání definic součtů, do kterých aktuální definovatelná položka vstupuje jako sčítanec. Funkce je k dispozici pouze pro třídy Business objektů agend modulu Mzdy a personalistika, pro ostatní nemá význam.
  • Kopírovat - Provede kopii aktuální položky do nově přidaného záznamu. Slouží pro urychlení editace, pokud definujete více položek obdobných vlastností. Údaje kopírované položky jsou dostupné k editaci pouze tehdy, když je vybrána třída Business objektu. Dokud není třída zvolena, jsou needitovatelné.
  • Typ čísla - Slouží pro hromadné nastavení položky Typ čísla u číselných položek (tj. položek typu Číslo), což je nutné pro Přechod na novou lokální měnu EUR. Zpracuje označené, je-li nějaká položka označena, v opačném případě jen aktuální položku. Má význam jen pro položky typu Číslo.
  • Vyhledat - Funkce pro vyhledání použití aktuální položky resp. označených, pokud je nějaká označena,v různých místech programu jako např. v definovatelných sloupcích, v definovatelných vstupních formulářích, v definovatelných panelech detailu nebo seznamu, v definicích omezení na záložkách Omezení příslušných agend, v tiskových sestavách, exportech atd. Výsledky zobrazí v agendě Editor. Je-li pro hledání označeno více položek najednou, pak si výsledy lze zobrazit v agendě Editor najednou anebo jednotlivě pro každou položku zvlášť.
  • Načítat data - funkce slouží pro vygenerování skriptu s háčkem a jeho kompilaci v agendě Balíčky skriptů, který je třeba, aby bylo možné používat na položce typu znaky a typu editace číselník filtrování záznamů z číselníku pomocí parametru @@. Po vytvoření skriptu je nutné restartovat systém ABRA Gen. Pokud již pro definovatelnou položku skript existuje, není možné jej vygenerovat znovu, neboť nemohou existovat dva skripty stejného jména. Pokud by to přesto bylo potřeba, je neprve nutné skript v agendě Balíčky skriptů smazat ručně.

Subzáložka Definice položky

Subzáložka pro zadání vlastní definice aktuální položky ze subzáložky Přehled položek. Obsahuje:

Příznaky uživatelských položek, viz dále, jsou "cachovány" a aby se změny řádně projevily, je nutné vypnutí a znovuspuštění systému ABRA Gen.

Dále pozor na případné opravy některých údajů definovatelných položek, které jste již použili ve vstupních formulářích. Opravy se nemusí automaticky ve formuláři projevit, příp. i mohou způsobit chybnou funkci. Viz popis ve funkci Oprava.

Formulář definice detailu

Název Popis
Název a popisy
  Název položky

Název položky v databázi.

Obecně může jít o libovolný alfanumerický řetězec 1-28 znaků (resp. 25 znaků pokud je použitý Identifikátor a výběr z číselník + cizí klíč) dlouhý plus prefix. Prefix je předvyplňován automaticky programem podle toho, zda se jedná o systémovou definici či nikoliv a podle toho, zda se jedná o extra položku či nikoliv. Jaké prefixy se mohou vyskytnout, viz Pravidla pro použití prefixů a kódů Udf položek.

Povinná položka. Používá se v číselníkových položkách pro výběr položky, např. do vstupních formulářů, k výběru položky ve výpočtových schématech a dalších definicích ve mzdách a personalistice apod. Název by měl být unikátní a co nejvýstižnější, aby usnadňoval pozdější orientaci v seznamu položek.

U extra položek již po uložení nelze opravovat.

Pokud se v názvu položky použije suffix _ID (tento sufix se automaticky doplňuje u položek, které mají zaškrtnutou volbu Cizí klíč), tak u těchto položek se předpokládá, že se jedná o OID položku (interní jednoznačný identifikátor), která může být odkazem do jiných číselníků. Velikost této položky musí být vždy 10 znaků.

V některých částech ABRA Gen se provádí kontrola této velikosti a pokud velikost vkládané hodnoty je větší, než požadovaných 10 znaků (položka s sufixem _ID má např. velikost 20 znaků), tak systém zobrazí chybové / informační hlášení a nedovolí hodnotu uložit. Z výše uvedeného důvodu doporučujeme suffix _ID používat jen u odkazů na jiné číselníky.

Pokud chcete hodnoty položek přenášet při vzájemném importu dokladů, pak nemohou být odpovídající položky různých Business objektů nadefinovány libovolně. Co musí položka splňovat, aby bylo možno je při importu přenášet, viz Importy uživatelsky definovatelných položek.

  Extra

Je-li zatrženo, bude položka nadefinována jako Extra položka. Po uložení nelze opravovat. Pokud jste definici provedli špatně a ještě nemáte zadána data, pak položku smažte a nadefinujte znovu. Pokud k ní již data existují, pak máte možnost nadefinovat si novou extra položku a data si do ní nakopírovat funkcí Kopírovat data.

Pozor! K některým třídám BO nelze definovat extra položky:

  • BO servisní knížky - jedná se o technické omezení dané tím, že do servisní knížky se zapisuje i automaticky např. během obnovy dat, kdy se objekty ukládají ještě předtím, než je celý systém řádně inicializován.
  • Případy, kdy více BO sdílí jednu tabulku - V tomto případě lze většinou extra položky definovat v rámci jiné třídy. Pokud v definici dané třídy není možno definovat extra položky, ale lze ji definovat jinde, zobrazuje se pod položkou "Třída" textová informace, kde lze definici extra položek pro daný Business objekt provést. Viz Omezení pro definici extra položek u některých Business objektů.
  Systémová

Nastavení, zda se jedná o definici systémovou či nikoliv. Běžný uživatel však nemá možnost toto nastavovat, položka mu není k dispozici k editaci.

Systémové a nesystémové položky jsou kromě této položky ještě navíc odlišeny prefixem doplňovaným automaticky v názvu položky, viz popis položky Název.

Jako systémové definice jsou typicky dodávány výrobcem definovatelné položky mezd a personalistiky. Pro systémové záznamy platí omezení, co se týče uživatelských oprav a jsou automaticky aktualizovány. Aktualizace přichází v úvahu zejména pro mzdové agendy, dále viz Defaultní data a update mzdových agend.

  Popis položky Popisný název. Display Label dané položky, tj. popis který bude u dané položky uveden, pokud bude použita ve vstupním formuláři.
  Popiska položky Display Hint dané položky, tj. hint, který se bude u dané položky zobrazovat, je-li použita ve vstupním formuláři.
Základní vlastnosti
  Jen ke čtení

Nastavení, zda má být daná položka editovací (je možno její hodnotu uživatelsky editovat) nebo zda je určena pouze pro zobrazování hodnoty v ní uložené. Pokud je položka jen ke čtení, pak v ní nelze editovat hodnotu, i kdyby v definici definovatelného vstupního formuláře, kde je daná položka použita, bylo pro ni nastaveno, že je editovací.

Pro definovatelné položky mezd a personalistiky, které jsou počítané, tj. pro které je definován výpočet ve Výpočtových schématech, by mělo být nastaveno, že nejsou k dispozici k editaci (jelikož editovaná hodnota by po výpočtu stejně byla přepsána hodnotou vypočtenou.) Objasníme na příkladu:

Mějme nadefinovanou položku mzdového listu "Nárok na stravenky celkem", pro kterou je definován výpočet jako součet z jiných položek. Pokud bychom v definici položky "Nárok na stravenky celkem" povolili editaci a rovněž povolili editaci ve vstupním formuláři, v němž je položka obsažena (tj. vlastnost Jen ke čtení by byla nezatržena), pak by při editaci takového formuláře byla položka uživateli k dispozici k zadávání, tj. mohl by do ní zadat libovolnou hodnotu, např. omylem. Jakmile by ale byl spuštěn výpočet mezd, příslušná položka by se přepočítala a uživatelsky zadaná hodnota by byla automaticky přepsána vypočtenou.

  Historie

Nastavení, zda se u dané položky má sledovat historie změn jejích hodnot, je-li zatrženo, pak půjde o položku s historií. Objasníme na příkladu:

Mějme nadefinovanou položku Příjmení zaměstnance k třídě BO Zaměstnanci. U dané položky je třeba sledovat, jakým způsobem se měnila hodnota v čase, proto u ní nastavíme sledování historie.

Sledování historie je možné aktivovat na libovolné třídě a datového typu. Výjimku tvoří Uživatelsky definovatelná položka s Datovým typem Poznámka, kde není možné historii zapnout.

  Povinná

Nastavení, zda se má jednat o povinnou položku, tj. program bude vyžadovat její vyplnění.

Vyplnění položky hlídá příslušný BO při svém ukládání a pokud položka k němu nadefinovaná je nastavena jako povinná a není vyplněna, pak uložení záznamu striktně nepovolí! A to bez ohledu, zda je nebo není zmíněná položka použita na některém z definovatelných formulářů definovaných k danému BO!

Vyplněnost povinných uživatelských položek se nekontroluje, pokud si záznam obsahující vstupní formulář s takovou položkou pouze skrýváte nebo naopak obnovujete ze skrytých. Čili pokud jste měli starší skrytý záznam z doby, kdy položka ještě nebyla povinná, pak jste její vyplnění učinili povinným a obnovili záznam ze skrytých, pak jeho obnova bude možná, ale povinná položka samozřejmě nebude vyplněna a bude třeba ji vyplnit ručně opravou daného záznamu.

Tedy pokud si nadefinujete povinnou položku, určitě ji použijte alespoň na jednom ze vstupních formulářů k dané třídě BO. Pokud tak neučiníte, pak nebudete moci uložit žádný nový záznam dané agendy, jelikož program bude požadovat její zadání, ale nebude kudy ji zadat.

  Přenos

Nastavení, zda se při kopii daného objektu má hodnota zmíněné položky přenášet do nového objektu. Objasníme na příkladu:

Mějme nadefinované položky např. Další specifikace k třídě objektů Skladová karta s nastavením Přenosu. U skladové karty K1 vyplníme její hodnotu. Pokud pak budeme skladovou kartu K1 kopírovat , zkopíruje se i hodnota položky Další specifikace.

Přenos hojně využívají definovatelné položky mezd a personalistiky, typicky položky třídy mzdové listy dílčí a souhrnné při tvorbě nových mzdových listů. Zda se však přenos hodnot nastavený v definici položek uplatní, závisí ještě na nastavení u konkrétní funkce, která tvorbu nového objektu dané třídy provádí. Viz též Předvyplňování položek v agendách mezd a personalistiky.

Nemusí jít přímo o funkci Kopírovat, ale o libovolnou jinou, která tvoří nový objekt (např. doklad v dané agendě) podle nějakého jiného. Objasníme na příkladu:

V agendě Mzdové uzávěrky provádíme v rámci Inicializace mzdového období Generování mzdových listů se zatržením "Přenášet hodnoty z předchozího ML". Pak se pro položky, které mají definován Přenos, zkopírují hodnoty ze mzdového listu předchozího mzdového období.

Přenesená (kopírovaná) hodnota má přednost před Výchozí hodnotou případně zadanou v definici položky, příp. Výchozí hodnotou definovanou v agendě jiným způsobem (např. v Druzích prac. poměrů ve mzdách a personalistice). Viz též Předvyplňování položek v agendách mezd a personalistiky.

  Přenos při importech

Nastavení, zda se má hodnota zmíněné položky přenášet při vzájemných importech dokladů do následného dokladu. Např. při importech dodacího listu do faktury vydané apod. Zatržení tohoto příznaku pro přenos této položky do následného dokladu je podmínkou nutnou, nikoli však postačující.

Pokud chcete hodnoty položek přenášet při vzájemném importu dokladů, pak nemohou být odpovídající položky různých Business objektů nadefinovány libovolně. Co musí položka splňovat, aby bylo možno je při importu přenášet, viz Importy uživatelsky definovatelných položek.

  Hromadná změna

Nastavení, zda má jít měnit hodnoty dané uživatelsky definovatelné položky prostřednictvím funkce hromadné opravy v příslušné agendě. Je-li zatrženo, bude se daná položka nabízet k výběru ve formuláři pro hromadnou změnu položek - viz Okno s definovatelným výčtem hromadně opravitelných položek.

Datový typ
 

Datový typ

+ doplňující údaje

Datový typ definovatelné položky. Zvolený datový typ určuje, které z následujících položek se zpřístupní. Pro přehlednost položky, které se zpřístupňují podle zvoleného dat typu, popíšeme jen u toho typu, kterého se týkají.

Pokud chcete hodnoty položek přenášet při vzájemném importu dokladů, pak nemohou být odpovídající položky různých Business objektů nadefinovány libovolně. Co musí položka splňovat, aby bylo možno je při importu přenášet, viz Importy uživatelsky definovatelných položek.

Datový typ a některé související údaje (velikost apod.) již nelze po uložení opravovat.

Pozor na případné opravy některých údajů definovatelných položek, které jste již použili ve vstupních formulářích. Opravy se nemusí automaticky ve formuláři projevit, příp. i mohou způsobit chybnou funkci. Viz popis ve funkci Opravit.

Lze volit z následných datových typů, pro něž se zpřístupní další doplňující položky:

Identifikátor

Datový typ Identifikátor umožňuje volit Způsob editace. K jednotlivým hodnotám způsobu editace se pak definují následující doplňující údaje:

Způsob editace:
Výchozí Velikost

Délka položky definovatelné položky, tj. kolik znaků bude možno do dané položky zadat. V tomto případě je pevně stanovena na 10 znaků.

Pokud se v názvu položky použije suffix _ID (tento sufix se automaticky doplňuje u položek, které mají zaškrtnutou volbu Cizí klíč), tak u těchto položek se předpokládá, že se jedná o OID položku (interní jednoznačný identifikátor), která může být odkazem do jiných číselníků. Velikost této položky musí být vždy 10 znaků.

V některých částech ABRA Gen se provádí kontrola této velikosti a pokud velikost vkládané hodnoty je větší, než požadovaných 10 znaků (položka s sufixem _ID má např. velikost 20 znaků), tak systém zobrazí chybové / informační hlášení a nedovolí hodnotu uložit. Z výše uvedeného důvodu doporučujeme suffix _ID používat jen u odkazů na jiné číselníky.

Zobrazovací velikost

Zobrazovaná délka uživatelské položky, tj. kolik znaků bude v dané položce zobrazeno (tj. pokud je délka položky větší než její zobrazovací délka, pak nemusí být samozřejmě vidět všechny znaky najednou).

Zarovnání položky

Způsob zarovnání uživatelské položky.

Číselník Číselník

Odkaz na tabulku číselníku, ze kterého se má do dané položky vybírat. Požadovaný číselník vyberete ze skrytého seznamu nabízených. Pokud se jedná o číselník chráněných objektů, můžete ještě zadáním parametrů v následující položce nastavit, zda tuto skutečnost respektovat i u této definovatelné položky a jak, tj. s jakou filtrační maskou pro číselník bude v daném místě chráněný číselník použit.

Některé z parametrů zadaných přímo v definici definovatelné položky slouží pro omezování za záznamy (tj. uplatní se při sestavování podmínky DynSQL), jiné pro editaci záznamů (tj. uplatní se v editační položce pro omezení nabízených číselníkových záznamů resp. obecně v opravě Business objektu), jiné :

  • ObjectSecurityMask nebo SecurityMask - je-li zadán v definici položky, použije se pro předvyplnění parametrů při použití této definovatelné položky do definovatelného vstupního formuláře (a ovlivňují pak, které záznamy z číselníku se nabízí při zadávání hodnot do daného formuláře s ohledem na přístupová práva uživatele k příslušnému číselníku). Pak se při vytváření editačního prvku pro editaci číselníku na definovatelných formulářích automaticky nastavuje vytvářenému prvku maska podle hodnoty parametru. Obdobně se tento parametr využívá přímo v Business objektu, který obsahuje danou definovatelnou položku (aby kontrola omezení dle práv nastavená tímto parametrem fungovala i v rámci úprav BO přes otevřené rozhraní AbraOLE). (Hodnoty: 0 ⇒ žádná kontrola práv, 1 ⇒ jen chráněné objekty s právem Zobrazit, 2 ⇒ jen chráněné objekty s právem Použít).
  • DynSQLSecurityMask nebo SecurityMask - použije se vytváření podmínky (v DynSQL) podle definovatelné položky (samozřejmě pouze tehdy, je-li v definici def. položky nastaveno, že se má použít pro omezení výběrů dat). Ovlivňuje, jaké hodnoty se pak v dané definovatelné položce nabízejí z číselníku, pokud je definovatelná položka použita pro omezení dat a jak se uplatní přístup. práva při výběru záznamů z databáze, pokud se za danou položku aktuálně neomezuje. Pokud není dohledán parametr DynSQLSecurityMask, použije se parametr SecurityMask.
  • SecurityMask - parametr zde používaný v předchozích verzích. Zachován z důvodu zpětné kompatibility.
  • SecurityWithNull=True - způsobí, že se k omezení za chráněný objekt přidává také fragment SQL pro nevyplněné hodnoty (tj. pokud není příslušný omezovací prvek zatržen, zobrazí se automaticky všechny záznamy s danou položkou nevyplněnou). Dále viz popis omezení Rozšířit o nevyplněné, zejména Chování při různých kombinacích omezování za číselníkové údaje, které mohou být nevyplněné.

Nejsou-li žádné parametry uvedeny, pak se při vytváření podmínky DynSQL práva uplatní, tj. jakoby DynSQLSecurityMask=1 (a záznamy s nevyplněnou položkou nebudou zobrazeny) a při editaci se neuplatní, tj. jakoby ObjectSecurityMask=0.

Objasníme na příkladech:

Uživatel Novák má přístupová práva pro zobrazení i použití ke středisku 100. Ke středisku 200 má právo jen k zobrazení a středisko 300 nemá právo ani zobrazovat ani použít. Pak mějme uživatelskou položku "Středisko opravy", nepovinnou, nadefinovanou jako číselníkovou s odkazem do číselníku středisek a použitou pro omezování výběrů dat, nadefinovanou pro nějakou dokladovou agendu, např. Dlouhodobý majetek. Dále si obdobnou položku nadefinujeme pro číselník (např. Umístění majetku).

V definici položek "Středisko opravy" nechť je parametr DynSQLSecurityMask=1.

  • Dlouhodobý majetek: Pokud uživatel bude chtít v záložce Omezení omezovat za prvek "Středisko opravy", budou se mu v záložce Omezení v prvku "Středisko opravy" nabízet jen střediska 100 a 200. Pokud za danou položku neomezuje, vyberou se JEN záznamy, které mají v položce "Středisko opravy" středisko, k němuž má právo zobrazovat, tj. střediska 100 a 200. Pokud bude editovat kartu majetku, budou se mu nabízet v položce "Středisko opravy" všechna střediska.
  • Číselník umístění majetku: Po otevření číselníku bude mít daný uživatel v záložce Seznam načtené všechny záznamy bez ohledu na práva ke střediskům. Pokud uživatel bude chtít omezovat/filtrovat za prvek "Středisko opravy", budou se mu ve funkci Filtrovat rozšířeně v prvku "Středisko opravy" nabízet jen střediska 100 a 200. Pokud za danou položku nefiltruje, vyberou se po aplikaci filtru JEN záznamy vyhovující filtru, které současně mají v položce "Středisko opravy" středisko, k němuž má právo zobrazovat, tj. střediska 100 a 200. Pokud bude editovat záznam umístění majetku, budou se mu nabízet v položce "Středisko opravy" všechna střediska.

Zadání jako v Příkladu 1. Ale v definici položky "Středisko opravy" je parametr DynSQLSecurityMask=1 a současně SecurityWithNull=True. Při omezování za tuto položku se budou standardním způsobem zohledňovat přístupová práva k danému chráněnému objektu a spolu s nimi se automaticky zobrazují všechny záznamy s danou položkou nevyplněnou, pokud není příslušný omezovací prvek zatržen. Tj. pokud uživatel za danou položku neomezuje, vyberou se všechny záznamy, které mají v položce "Středisko opravy" středisko, k němuž má právo zobrazovat, tj. střediska 100 a 200 a navíc se zobrazí všechny záznamy, které mají danou položku nezadanou.

Zadání jako v Příkladu 1. Ale v definici položky pro zadání "Střediska opravy" je parametr ObjectSecurityMask=2. Pokud uživatel bude zadávat nový záznam, bude moci do položky "Středisko opravy" zadat jen středisko 100. Pokud by v definici vstupního formuláře byl parametr ObjectSecurityMask=1, pak by uživatel mohl v editaci zadat středisko 100 nebo 200. Pokud by v definici vstupního formuláře nebyl ani parametr ObjectSecurityMask ani SecurityMask, pak by uživatel mohl v editaci zadat středisko libovolně bez ohledu na svá práva, tj. jak středisko 100 tak 200 nebo 300.

Zadání jako v Příkladu 1. Ale v definici položky pro zadání "Střediska opravy" není žádný parametr. Pak se při výběru záznamů (omezování v dokladové agendě, filtrování v číselnících) systém zachová stejně jako v příkladu 1. Jak se zachová při editaci UDF položky, viz příklad 3.

Číselníkovou položku lze vložit do vstupních formulářů jednak jako Číselník a jednak jako Číselník (objektový), což může být v řadě případů výhodnější nebo dokonce i nezbytné. Dále viz popis obou prvků ve vstupním formuláři.

Textová položka

Položka zobrazovaná resp. zadávaná z daného číselníku ve formuláři. Vybírat můžete z textových položek, které daný číselník nabízí.

Parametry

Možnost zadat, s jakými parametry se má daný číselník volat.

Mohou zde být dva druhy parametrů:

  • Parametry, které se využijí pro omezování za záznamy (při sestavování podmínky DynSQL). Ty se pak projeví při vyvolání číselníku z položky, za kterou se v dané agendě omezuje (viz např. záložka Omezení), resp. rozšířeně filtruje (viz např. funkce Nastavit filtr). Příkladem jsou parametry typu SecurityMask, RollFilter apod.
  • Parametry pro editaci záznamů (Business objektu). Ty se využijí pro filtraci číselníku při jeho zavolání z číselníkové položky např. ze vstupního formuláře. Příkladem jsou parametry @@ apod.

    V tomto druhém případě se zde zadaný parametr použije pouze pro předvyplnění stejnojmenné položky v návrhu Definovatelného formuláře. Zda se nakonec uplatní, závisí na tom, jak zadáte parametry na výsledném formuláři.

Od v. 14.53.10 je nutné při filtraci číselníků za definovatelnou položku vytvořit klíč pro filtrování ručně pomocí háčku ve skriptingu AddCustomKey. Více viz Příklad 5 níže.

Některé lze použít pro oba případy. Parametry lze kombinovat. U parametrů téhož typu se pak výsledek vyhodnotí jako jejich logický součin (průnik), viz příklady dále.

Příklady parametrů:

FilterDocumentType

[kód typu dokladů 1; kód typu dokladů 2; ...]

Používá se pro podmínku DynSQL s číselníkem Řady dokladů. V číselníku se nabídnou řady dokladů pouze těch typů dokladů, které jsou specifikovány v tomto parametru. Jednotlivé typy dokladů se oddělují znakem, který se nevyskytuje v názvu typu, je tedy možno použít ';'.

Omezení číselníku jen za vybraný typ dokladů

Nadefinujeme si položku typu znaky s editací přes číselník a vybereme např. číselník řad dokladů. Při použití položky ve vstupním formuláři ale chceme, aby se číselník z položky vyvolaný otevřel pouze s řadami určitého typu dokladů, např. jen typu faktury vydané. Pak v definici v části Parametry zadáme:

Příklad volání číselníku s parametry

@ToAccount

[TRUE|FALSE|1|0]

Používá se pro podmínku DynSQL s číselníkem Typy dokladů. V číselníku se nabídnou pouze typy dokladů, které mají v klíči ToAccount neboli Účtovat nastavenu hodnotu dle tohoto parametru.

SecurityMask, SecurityWithNull, DynSQLSecurityMask, ObjectSecurityMask

Používá se pro podmínku DynSQL s číselníky chráněných objektů. Viz příklady výše u položky Číselník.

RollFilter:Parametry pro číselník

Parametr pro podmínku DynSQL. Tento speciální parametr specifikuje číselníkový parametr, který se předá do číselníku volaného ze seznamu podmínek. Pomocí parametru je možno zajistit, aby se při otevření číselníku coby výběrového zobrazily pouze určité záznamy, např. jen určité hodnoty obsažené v klíči. (Parametr RollFilter může nahradit i speciální parametry FilterDocumentType a @ToAccount).

Mějme číselníkovou uživatelskou položku s názvem SkladX, která se odkazuje na číselník skladů s tím, že se má využívat i pro omezování. Pokud chceme, aby se po otevření číselníku skladů vyvolaného jako výběrového z této omezující položky nabídly jen sklady zadané jako polohované, zadáme v definici položky SkladX parametr takto:

RollFilter:@@IsLogistic=A

Pak číselník skladů vyvolaný z této omezující položky zobrazí jen záznamy s hodnotou klíče IsLogistic rovné A, tj. jen polohované sklady.

RollFilter:@@DocumentType=31
Ekvivalentní forma výrazu: FilterDocumentType='31'

Allowed

[OID1; OID2; ...]

Používá se pro filtrování záznamů z číselníku volaného jinak než z omezující podmínky, tj. pro editaci záznamu (Business objektu). Jedná se o možnost filtrovat za řetězce OID, které lze vybrat.

_Excluded

[OID1; OID2; ...]

Používá se pro filtrování záznamů z číselníku volaného jinak než z omezující podmínky, tj. pro editaci záznamu (Business objektu). Jedná se o možnost filtrovat za řetězce OID, které nelze vybrat.

@ resp. @@

(tj. @Výraz_klíče [Hodnota1], @#Výraz_klíče [Hodnota1;Hodnota2;...] @@Název_klíče [Hodnota1], @@#Název_klíče [Hodnota1;Hodnota2;...])

Používá se pro filtrování záznamů z číselníku volaného jinak než z omezující podmínky, tj. pro editaci záznamu (Business objektu). Těmito parametry lze číselník filtrovat za určitý výčet klíčových hodnot, kterým se rovná klíč nadefinovaný v DynSQL nebo výraz daného klíče.

Tyto parametry jsou využitelné i z otevřeného rozhraní a zde byly také podrobně popsány včetně dalších příkladů. Viz Parametry pro číselníky volané z číselníkových položek.

Mějme číselníkovou uživatelskou položku SkladX, která se odkazuje na číselník skladů. Položku vložíme do vstupního formuláře. Dále mějme sklady s kódy 01,02,03,04 s tím, že polohované jsou 01,02 a 03. Chování po otevření číselníku skladů vyvolaného jako výběrového z dané položky ve formuláři, pokud jsou k dané číselníkové položce zadány následující parametry a tyto jsou převzaty do formuláře:

@@Name=Hlavní
Číselník skladů zobrazí jen sklad s názvem Hlavní.

@@#Code=01;02;
Číselník skladů zobrazí jen sklady s kódem 01 a 02.

@@#Code=01;03
@@IsLogistic=A

Číselník skladů zobrazí jen sklady splňující obě podmínky (logický součin), tj. sklady s kódem 01 a 03.

V tomto případě vycházíme z toho, že v dodávaném DynSQL skladů jsou klíče s názvy Name, Code a IsLogistic. Bylo by možné použít i jen jeden @ (za výraz klíče), jelikož všechny tři klíče obsahují jednoduchý výraz rovný názvu stejnojmenné položky (fieldu), tj. např. klíč s názvem Code obsahuje výraz rovný fieldu Code z tabulky skladů atd.

Rozdíl mezi použitím parametru RollFilter a @@ objasníme na příkladu:

Rozdíl mezi uplatněním parametru RollFilter a @@:

Mějme číselníkovou uživatelskou položku SkladX, u níž jsou zadány následující parametry obdobně jako v předchozích příkladech:

RollFilter:@@#Code=01;02
@@#Code=03;04 (tento parametr je převzat do vstupního formuláře).

Při otevření číselníku skladů z položky SkladX coby omezující položky (např. ze záložky Omezení) se uplatní první parametr, tj. zobrazí se jen záznamy s hodnotou klíče Code rovné 01 a 02, tj. jen sklady s kódem 01,02. Při otevření číselníku ze vstupního formuláře se uplatní druhý parametr, tj. zobrazí se jen sklady s kódem 03,04.

Pro filtrování za definovatelnou položku je nutné od v. 14.53.10 její klíč vytvořit zatržením parametru Umožnit podle této položky řadit seznam a pomocí háčku ve skriptingu AddCustomKey (dříve se klíč vytvářel automaticky). Skript s háčkem je také možno vytvořit pomocí funkce Načítat data.

Vytvoření klíče pro filtrování u uživatelské položky:

Mějme vytvořenou definovatelnou extra položku pro třídu Osoba s názvem X_DEALER, popisem Prodejce, datového typu Ano/Ne a mějme u ní zatržen parametr Umožnit podle této položky řadit seznam. Dále mějme vytvořenou definovatelnou extra položku pro třídu Skladová karta s názvem X_DEALERS, popisem Prodejce, datového typu Znaky, způsobem editace Číselník a odkazující do číselníku Číselník osob. I u této položky zatrhneme parametr Umožnit podle této položky řadit seznam, jako položku odkazovaného číselníku zvolíme Příjmení.

Dále vytvořme dva definovatelné formuláře. První pro třídu Osoba, na který přidáme extra položku X_DEALER, a druhý pro třídu Skladová karta, na který přidáme extra položku X_DEALERS a do pole Parametry vložíme:

@@X_DEALER=A

Nyní restartujeme aplikaci a otevřeme Adresář osob. Na definovatelném formuláři zatrhneme u některých osob zatržítko Prodejce. Pokud nyní otevřeme agendu Skladové karty a na námi vytvořeném definovatelném formuláři otevřeme adresář osob, bude seznam osob omezen za ty, kteří mají zatržen parametr Prodejce.

Jiné případy

U některých číselníků je uvedení vhodného parametru povinné. Takovým číselníkem je např. číselník Tiskových sestav, který nemá smysl vyvolávat bez specifikace programového bodu, k němuž jsou tisk. sestavy nadefinovány. Pokud tedy máte položku typu Znaky → Číselník → Číselník Tiskových sestav, pak je třeba v parametru uvést parametr _PROGPOINT. Programové body pro jednotlivá místa ABRA Gen můžete dohledat v popisu Struktur a definic GenDoc.chm.

_PROGPOINT=X4SX2B3BBPNOF2MDBX3EXJTJN0. (Jedná se o dohledání programového bodu pro danou agendu v GENDoc.)

Znaky

Datový typ Znaky umožňuje volit Způsob editace. K jednotlivým hodnotám způsobu editace se pak definují následující doplňující údaje:

Způsob editace:
Výchozí Velikost

Délka položky definovatelné položky, tj. kolik znaků bude možno do dané položky zadat.

Zobrazovací velikost

Zobrazovaná délka uživatelské položky, tj. kolik znaků bude v dané položce zobrazeno (tj. pokud je délka položky větší než její zobrazovací délka, pak nemusí být samozřejmě vidět všechny znaky najednou).

Zarovnání položky

Způsob zarovnání uživatelské položky.

Volby Název volby Položka umožňuje editaci názvů jednotlivých možností z následující položky.
Volby

Při zadávání položky Volby stanoví uživatel délku řetězce v údaji Velikost, tím zároveň určí maximální počet možností v položce Volby, které je možné zadat.

Názvy jednotlivých voleb se mění v předcházející položce Název volby.

Všechny volby, zaškrtnuté i nezaškrtnuté při definici položky, se nabízejí v návrhu Definovatelného formuláře. Na výsledném formuláři se pak zobrazují pouze volby zaškrtnuté při definici formuláře.

Do položky Výchozí hodnota se zapíší pouze volby zaškrtnuté při definici položky Volby. Jen tyto volby se pak nabízejí při omezování záznamů v záložce Omezení resp. na jiných místech systému, která pracují na stejném principu. Avšak defaultně se v nových záznamech dané agendy předvyplňují jen ty hodnoty, které jsou zaškrtnuté jak zde v definici položky Volby, tak i v položce Výchozí hodnota.

Velikost Počet voleb, které bude možné zadat. Tuto položku již nelze po uložení opravovat.
Zobrazovací velikost Totéž jako stejnojmenná položka u Výchozího způsobu editace, viz výše.
Adresářová cesta Velikost Totéž jako stejnojmenná položka u Výchozího způsobu editace, viz výše.
Zobrazovací velikost Totéž jako stejnojmenná položka u Výchozího způsobu editace, viz výše.

Celé číslo

Datový typ Celé číslo umožňuje zvolit z více způsobů editace, k nimž se pak definují následující doplňující údaje:

Způsob editace
Výchozí Velikost

Velikost definovatelné položky, tj. kolik znaků bude možno do dané položky zadat.

Do definovatelné položky typu celé číslo definované s tímto způsobem editace bude možno v definovatelných formulářích zadávat nejen kladné, ale i záporné hodnoty, tj. vč. znaménka (tudíž délka by pak měla být zadána odpovídajícím způsobem). Zadání vč. záporných hodnot využijete např. pro položky, které mají být charakteru nějakých korekčních opravných hodnot k jiným položkách (typicky ve mzdách) apod.

Zobrazovací velikost Zobrazovaná velikost uživatelské položky, tj. kolik znaků bude v dané položce zobrazeno (tj. pokud je délka položky větší než její zobrazovací délka, pak nemusí být samozřejmě vidět všechny znaky najednou).
Skrytý seznam Velikost Totéž jako stejnojmenná položka u Výchozího způsobu editace, viz výše.
Zobrazovací velikost Totéž jako stejnojmenná položka u Výchozího způsobu editace, viz výše.
Možnosti

Zde nadefinujete hodnoty skrytého seznamu, tj. možnosti, které následně budou uživateli nabízeny jako hodnoty skrytého seznamu. Jeden řádek oddělený Enterem pak znamená jednu hodnotu skrytého seznamu.

Zda se ve výsledném nadefinovaném formuláři použijí hodnoty skrytého seznamu zadané zde nebo v položce Možnosti v definici definovatelného formuláře, závisí na zatržítku Možnosti převzít z definice.

Vnitřně jsou v programu jednotlivé nadefinované možnosti interpretovány celým číslem podle svého pořadí, přičemž počáteční číslo, kterému odpovídá první možnost je nastavitelné v položce "Počítat od" přímo v definici vstupního formuláře, do něhož je nadefinovaná položka typu Skrytý seznam použita. Objasníme na příkladu:

Nadefinujeme si uživatelskou položku typu celé číslo s editací formou skrytého seznamu následovně:

Příklad zadání definic možností

Pokud danou položku vložíme do vstupního formuláře, nadefinované hodnoty se budou nabízet jako možné hodnoty skrytého seznamu při editaci dané položky ve vstupním formuláři:

Nastavíme-li Počítat od rovno nule, vnitřní interpretace jednotlivých hodnot naší uživatelské položky v programu je pořadí celých čísel, počínaje od nuly. Tj. první hodnota je vnitřně interpretována jako 0, druhá hodnota jako 1 atd.

Svislý přepínač Velikost Totéž jako stejnojmenná položka u Výchozího způsobu editace, viz výše.
Zobrazovací velikost Totéž jako stejnojmenná položka u Výchozího způsobu editace, viz výše.
Možnosti

Zde nadefinujete hodnoty pro přepínač, tj. možnosti ze kterých uživatel bude moci následně jednu zvolit. Jeden řádek oddělený Enterem pak znamená jednu hodnotu přepínače. Vnitřně jsou v programu jednotlivé nadefinované možnosti interpretovány celým číslem podle svého pořadí, přičemž počáteční číslo, kterému odpovídá první možnost je nastavitelné v položce "Počítat od" přímo v definici vstupního formuláře, do něhož je nadefinovaná položka typu Přepínač použita. Objasníme na příkladu:

Nadefinujeme si uživatelskou položku typu celé číslo s editací formou skrytého seznamu následovně:

Příklad zadání definic možností

Pokud danou položku pak vložíme do vstupního formuláře, nadefinované hodnoty se budou nabízet jako možné hodnoty přepínače při editaci dané položky ve vstupním formuláři:

Nastavíme-li Počítat od rovno jedné, vnitřní interpretace jednotlivých hodnot naší uživatelské položky v programu je pořadí celých čísel, počínaje od jedné. Tj. první hodnota je vnitřně interpretována jako 1, druhá hodnota jako 2 atd.

Vodorovný přepínač Velikost Totéž jako stejnojmenná položka u Výchozího způsobu editace, viz výše.
Zobrazovací velikost Totéž jako stejnojmenná položka u Výchozího způsobu editace, viz výše.
Možnosti Obdobně jako stejnojmenná položka u Svislého přepínače, viz výše, jen se bude jednat o přepínač vodorovný.

Při použití položky tohoto typu do vstupního formuláře lze dále nastavit i jiné vlastnosti, např. oddělování tisíců.

Číslo

K datovému typu Číslo se definují následující doplňující údaje:

Typ čísla

Údaj potřebný pro posouzení, zda je třeba uživatelsky definovatelnou položku přepočítávat z původní lokální měny na novou lokální měnu, např. při Přechodu na novou lokální měnu EUR. Defaultně nabývá hodnoty Nedefinováno.

Při přechodu na euro musí uživatel přidělit jednu z následujících hodnot:

  • Prostá hodnota - Při konverzi dat se nijak nepřepočítává hodnota uživatelsky definovatelné položky.
  • Částka v měně - Částka v měně se přepočítá tak, aby odpovídala nové lokální měně.
  • Částka v lokální měně - Při konverzi dat se přepočítává hodnota uživatelsky definovatelné položky konverzním kurzem na novou lokální měnu.

    Údaj můžete nastavit i hromadně pomocí funkce Typ čísla dostupné v liště navigátoru v subzáložce Položky.

Velikost

Velikost definovatelné položky, tj. kolik znaků bude možno do dané položky zadat. Zde pro velikost s ohledem na případná desetinná místa platí, že velikost je počítána vč. desetinných míst. Tj.:

Je-li velikost=3, desetiny=2, pak povolené hodnoty jsou v rozsahu -9.99 až +9.99.

Zobrazovací velikost Zobrazovaná velikost uživatelské položky, tj. kolik znaků bude v dané položce zobrazeno (tj. pokud je délka položky větší než její zobrazovací délka, pak nemusí být samozřejmě vidět všechny znaky najednou).
Desetiny Desetinná část definovatelné položky.

Při použití položky tohoto typu do vstupního formuláře lze dále nastavit i jiné vlastnosti, např. oddělování tisíců.

Datum

K datovému typu Datum se definují následující doplňující údaje:

Zobrazovat čas

Je-li zatrženo, bude možno v dané datumové položce zadávat i údaj o čase, jako je tomu v některých případech u pevných položek typu Datum - viz Editační položky datumové.

Je-li současně zatrženo Používat pro omezení výběrů dat, bude potom automaticky možno danou definovatelnou položku omezovat i za čas.

Ano/Ne

Datový typ Ano/Ne nevyžaduje další doplňující údaje.

Poznámka

Datový typ Poznámka je téměř shodný s typem Znaky, pouze má "maximální" možný počet znaků. Tento maximální počet znaků platí:

K datovému typu Poznámka se definují následující doplňující údaje:

Zobrazovací velikost

Zobrazovaná velikost uživatelské položky, tj. kolik znaků bude v dané položce zobrazeno (tj. pokud je délka položky větší než její zobrazovací délka, pak nemusí být samozřejmě vidět všechny znaky najednou).

Výběr dat a řazení
  Používat pro omezení výběrů dat

Příznak, zda se má daná položka používat v omezovacích podmínkách pro výběry dat z databáze. Je-li zatrženo, bude možno podle hodnoty dané položky záznamy z databáze omezovat resp. filtrovat či hromadně označovat. Tj. daná položka přibude v seznamu položek, podle kterých lze omezovat, filtrovat, označovat atd.:

Obecně platí následující: Jak bylo řečeno v kap. Záložka Omezení - obecně, omezovací (filtrovací) podmínky dostupné v daném místě programu pro výběry dat z databáze, jsou dány definicí dynamického zdroje dat (DynSQLs), tj. DynSQL příkazu, který se vztahuje k danému místu programu (viz podmínky DynSQL v nástroji DynSQLEditor) a dále uživatelsky definovatelnými položkami, které mají v definici nastaveno "Používat pro omezení výběrů dat" a jsou nadefinovány pro Třídu Business objektu s CLSID, jako je CLSID uvedený u aliasu A v datasetu daného DynSQL příkazu. Tj. platí, že daná uživatelská položka přibude v seznamu podmínek ve všech místech programu, ke kterým se vztahují ty DynSQL příkazy, jejichž některý dataset obsahuje alias A s CLSID rovným třídě Business objektu, pro nějž je položka nadefinována. Objasníme na příkladu:

Mějme DynSQL "Objednávky vydané" s datasety MAIN (pro získávání dat z hlaviček dokladů OV) a ROW (pro získávání dat z řádků dokladů OV). Dataset ROW nechť má definován alias A s CLSID=CHMK5QAWZZDL342X01C0CX3FCC. Používá se v agendě Objednávek vydaných, viz např. záložka Omezení agendy OV.

Dále mějme DynSQL "Hodnotící kritérium - Řádky objednávek vydaných". Toto DynSQL není svázáno přímo s nějakou agendou, ale je určeno pro využití z definic počítaných hodnotících kritérií (pro hodnocení dodavatelů). Jeho dataset MAIN nechť má definován alias A s CLSID=CHMK5QAWZZDL342X01C0CX3FCC.

Pokud pak nadefinujeme položku k třídě Business objektů "Objednávky vydané - řádky" (tj. s CLSID=CHMK5QAWZZDL342X01C0CX3FCC) a nastavíme u ní, že se má používat pro omezení výběrů dat, pak přibude mezi omezovacími prvky jak v záložce Omezení agendy OV, tak v definici kritéria, které se odkazuje na DynSQL "Hodnotící kritérium - Řádky objednávek vydaných".

Pokud se jedná o číselníkovou položku s odkazem do číselníků chráněných objektů, pak se ještě vhodným nastavením parametrů nastaví, jak zohledňovat přístupová práva k nim. Viz popis položek Číselník a Parametry u položky Znaky se způsobem editace Číselník a dále popis omezení Rozšířit o nevyplněné.

Dále viz:
- Omezování u položek s historií
- Omezování na položky, kterou jsou současně kategorizačním údajem, viz popis funkce Filtrovat v Adresáři firem

  Umožnit podle této položky řadit seznam

Příznak, zda má jít podle dané položky řadit v seznamech. Je-li zatrženo a má-li se tato položka zobrazovat jako uživatelsky definovatelný sloupec seznamu, bude možno podle tohoto sloupce seznam třídit.

Tato možnost řazení v seznamu není k dispozici pro datový typ Poznámka.

Automaticky se pak za běhu provedou příslušné úpravy v DynSQL pro dokladové agendy (přidání odpovídajícího "fieldu", klíče odpovídajícího názvu atd.), resp. se provede registrace nového klíče pro číselníky (se shodným jménem jako definovatelná položka), tedy tak, že třídění dle dané položky bude k dispozici včetně možnosti měnit řazení kliknutím na sloupec.

Vedlejším efektem tohoto zatržení také je, že tyto položky jsou pak dostupné též rovnou přes hlavní dataset MAIN. (Např. v definici tiskových sestav). Viz datový model - co je v datovém modelu zobrazováno.

Datový typ Celé číslo se způsobem editace Skrytý seznam, Svislý přepínač a Vodorovný přepínač se třídí podle vnitřní interpretace hodnot nikoli podle hodnot v seznamu. Objasníme na příkladu:

Nadefinujeme si uživatelskou položku typu celé číslo s editací formou skrytého seznamu stejně jako v příkladu výše. Potom pomocí vstupního formuláře přiřadíme jednotlivým skladovým kartám konkrétní barvu obalu a vytvoříme si definici Def.1 obsahující definovatelný sloupec Barva obalu a např. Kód a Název skladové karty. Pokud potom v seznamu skladových karet podle Def.1 řadíme seznam podle barvy obalu, skladové karty se setřídí podle vnitřní interpretace hodnot, tj. podle čísel 0 až 3, která odpovídají jednotlivým barvám obalu, a ne podle abecedně seřazených názvů barev.

Řazení u položek s historií probíhá podle aktuální hodnoty položky, tj. není podporováno řazení se zohledněním historických hodnot položek.

K datovému typu Znaky - číselník se definují ještě následující doplňující údaje:

Zvolte položky odkazovaného číselníku k řazení

Po stisku tlačítka / tlačítka (může se lišit dle verze a nastaveného vzhledu) se nabídne modální okno se seznamem všech persistentních položek daného číselníkového objektu. Zde je možno zatrhnout, podle kterých z nich má být možno seznam řadit, pokud bude tato zobrazovaná v seznamu. Tj. v seznamu bude definován sloupec odkazující se na uživatelskou položku typu číselník a z daného číselníku bude zvolena k zobrazení jedna z položek, která je zadána jako položka, podle které má jít třídit.

Pokud uživatel zatrhne více položek současně, vytvoří se odpovídající počet fieldů a klíčů v DynSQL pro dokladové agendy resp. se provede registrace odpovídajícího počtu nových klíčů pro číselníky.

Objasníme na příkladu:

Nechť chceme na doklady zadávat způsoby dopravy, které chceme rozlišovat měnou, ve které bude za dopravu nakonec odběrateli fakturováno. K jednotlivým způsobům dopravy si tedy chceme přiřadit měnu. Kód a název měny chceme vidět v seznamu způsobů dopravy.

Pak si nadefinujeme uživatelskou číselníkovou položku např. "Měna dopravy" s odkazem do číselníku měn, zatrhneme, že se dle ní má třídit a to např. dle těchto položek číselníku měn:

Pak si v agendě Způsoby dopravy vyvoláme editor sloupců. V něm si funkcí Nový sloupec postupně vytvoříme definici dvou nových sloupců typu Objekt. Mezi nabízenými datovými položkami objektu bude i naše uživatelská číselníková položka "Měna dopravy":

První sloupec nadefinujeme odkazem na kód měny (tj. ve výrazu bude U_MENADOP.Code), druhý na Název (tj. ve výrazu bude U_MENADOP.Name):

Definici zobrazení sloupců uložíme pod nějakým názvem. Pokud ji použijeme, může seznam vypadat následovně:

Dle sloupce s názvem měny třídit lze, jelikož jsme jej zatrhli ke třídění v definici položky. Dle kódu třídit nelze - ten jsme nezatrhli.

Třídit nelze podle číselníkových položek, pokud se tyto odkazují do číselníků, které nemají žádné klíče nebo mají jen klíče na pole, která jsou odkazem do jiného číselníku. Jedná se např. o číselníky Odpovědné osoby, Pracovníci, Uživatelé pošty, Řidiči. (Jelikož hodnoty v klíčích jsou načítány z jiných tabulek (např. Jméno pracovníka v číselníku pracovníků ve výrobě je načítáno z napojeného číselníku Osoby)). U takových položek lze sice možnost třídění zatrhnout, ale nenabízí se k výběru žádná položka, kterou by šlo vybrat k řazení.

  Příznaky

Možnost v rámci definice položky nastavit různé další vlastnosti. Pro třídy objektů, které nepodporují nastavování dalších vlastností, se možnost nastavení této vlastnosti nenabízí, tj. položka Příznaky není k dispozici. Příznaky hojně využívají definovatelné položky mezd a personalistiky.

Příklady příznaků:

  • Položka má vliv na spočtený mzdový list - u položek třídy zaměstnanec a pracovní poměr, kde lze zatržením nastavit, zda změna v položce má mít vliv na spočtený mzdový list. Pak změna provedená v takových položkách způsobí shození příznaku správnosti výpočtu mezd. Objasníme na příkladu:

Mějme nadefinovanou položku např. Částka pojistného na životní pojištění k třídě objektů Zaměstnanec a mějme ji umístěnu v některém ze vstupních definovatelných formulářů. Zaměstnanci provedeme úspěšný výpočet mezd. Pokud poté dodatečně u daného zaměstnance provedeme v daném mzdovém období opravu hodnoty této položky, danému zaměstnanci se tím automaticky nastaví, že výpočet mezd neproběhl úspěšně a je třeba ho zopakovat.

U položek samotné třídy Mzdových listů se tento typ příznaku nenabízí, jelikož všechny položky mzdových listů dílčích i souhrnných mají automaticky vliv na spočtení mezd, tj. oprava libovolné z nich způsobí shození příznaku správnosti výpočtu mezd.

  • Položku lze editovat v uzavřených mzdových obdobích - u položek třídy měsíční údaje firmy, kde lze zatržením nastavit, zda danou položku bude možné v agendě Měsíční údaje firmy opravovat i v případě, že je dané mzdové období již uzavřeno.
Možnosti k datovému typu
  Vytvořit index

K dispozici jen pro Extra položky. Je-li zatrženo, pak se současně s danou položkou vytvoří i index (v databázi) pro zrychlení načtení dat.

Při kopírování extra položek s nastaveným příznakem "Vytvořit index" (funkce Kopírovat v liště navigátoru), se index nekopíruje (generuje se nový název indexu).

  Cizí klíč

K dispozici jen pro Extra položky, pro datový typ Znaky a způsob editace Číselník. Je-li zatrženo, v databázi při vytvoření příslušné položky v příslušné tabulce vznikne i cizí klíč (ForeignKey), tj. záznam o vazbě mezi danou Extra položkou a cizím klíčem z jiné tabulky (cizím klíčem v systému ABRA je typicky ID daného číselníkového záznamu)). Existence cizího klíče mj. zajistí kontrolu referenční integrity na úrovni databáze. Tj. do dané číselníkové extra položky nebude možné zapsat jinou hodnotu než hodnotu obsaženou v daném číselníku a z odkazovaného číselníku nebude možné smazat hodnotu, která je u nějakého záznamu zadána do této definovatelné Extra položky. Příznak Cizí klíč lze nastavit pouze při vytváření nové Extra položky, u již existujících položek tato možnost k dispozici není. Je-li cizí klíč nastaven, nelze již u dané def. položky měnit vlastnosti Způsob editace a Číselník.

Pokud položka není zatržena, kontrola referenční integrity se neprovádí a jako výchozí hodnota definovatelné položky může být nastavena vazba na již neexistující záznam. Viz poznámka u položky Výchozí hodnota.

  Rozlišovat velikost písmen Položka je aktivní pouze, pokud byla zatržena též položka Používat pro omezení výběrů dat. Není k dispozici pro položky typu Poznámka a Poznámka (unicode). Hodnota tohoto parametru, jehož funkčnost je zřejmá z jeho názvu, slouží k předvyplní parametru Rozlišení velikosti písmen na záložce omezení (resp. Filtru či Hromadného označení).
  Výchozí hodnota

Hodnota, která se má defaultně předvyplňovat pro nové záznamy dané agendy (mohou vznikat i kopií existujících).

Výchozí hodnota zadaná v definici položky se nemusí uplatnit, pokud je nový objekt tvořen kopií existujícího a pro danou položku je současně nastaven Přenos (a u funkce, která tvorbu nového objektu podle jiného (kopii) provádí, je rovněž přenos nastaven).

Výchozí hodnota zadaná v definici položky se rovněž nemusí uplatnit, pokud je pro danou položku nastavena výchozí hodnota jiným způsobem přímo v nějaké jiné specializované agendě, viz např. Předvyplňování položek v agendách mezd a personalistiky.

Není k dispozici pro položky, které jsou určeny jen ke čtení (viz výše). Důvodem je samozřejmě to, že takové položky není za určitých okolností dovoleno měnit a předvyplnění nějakou hodnotou by bylo chápáno jako změna dané položky, jelikož vyplnění položky výchozí hodnotou je na stejné úrovni jako vyplnění položky z klávesnice.

Pokud je položka typu Znaky a zvolený způsob editace je číselník, pak může být v položce Výchozí hodnota zobrazováno i identifikační číslo (ID) vybraného záznamu z číselníku a to podle toho, jaká položka je z daného číselníku zvolena jako vybíraná (viz popis textové položky u datového typu Znaky). ID vybraného záznamu bude zobrazováno také v případě, že Způsob editace byl z původně nastavené možnosti Číselník dodatečně změněn na typ Výchozí.

Pokud je položka typu Znaky, zvolený způsob editace Číselník a není zatržena možnost Cizí klíč, může nastat následující scénář:

  • Při definici výchozí hodnoty uživatel otevře zvolený číselník, ze kterého vybere požadovaný výchozí záznam a uloží. Na níže uvedeném obrázku definujeme výchozí hodnotu položky navázané na Adresář firem, jako výchozí hodnotu jsme si zvolili firmu s kódem 0036.

    Jako výchozí hodnota je nastavena vazba na existující firmu s kódem 00036. ID této firmy je 2B00000101.

  • Firmu 00036 následně někdo z Adresáře firem smaže (bez možnosti obnovení).
  • Do nových záznamů agendy s uvedenou definovatelnou položkou se bude stále vyplňovat ID odstraněného smazaného záznamu, přestože záznam s tímto ID již v Adresáři firem neexistuje (protože není zatržena volba Cizí klíč, mezi definovatelnou položkou a Adresářem firem neexistuje pevná vazba, referenční integrita se nekontroluje).

Pokud taková situace nastane, v poli Výchozí hodnota se přestane zobrazovat kód firmy (protože firma byla z databáze odstraněna), nicméně stále se bude zobrazovat ID smazaného záznamu, které se stále používá jako výchozí hodnota definovatelné položky (díky zobrazování ID je zřejmé, že výchozí hodnota existuje).

Jako výchozí hodnota se používá odkaz na již neexistující záznam s ID 2B00000101 v navázaném číselníku. Výchozí hodnotu bude zřejmě zapotřebí upravit (odkazovat se na jinou, aktuálně existující firmu).

V případě, že je popsané chování nežádoucí, řešením je používání příznaku Cizí klíč. Existence cizího klíče zajistí, že se firmu nepodaří smazat, pokud bude v některé definovatelné položce se způsobem editace Číselník nastavena jako výchozí.

Lišta navigátoru

Jedná se o tentýž navigátor jako v subzáložce Přehled položek.

Panel pro zobrazení seznamu položek

Ve spodní části subzáložky dále může být zobrazena oblast pro zobrazování seznamu položek ze subzáložky Přehled položek, tj. položek již nadefinovaných pro aktuální třídu Business objektů ze záložky Seznam. Je k dispozici pouze, je-li v menu Nastavení aktuálně zatržena volba pro zobrazení přehledu položek i v definici. Umožňuje rychle listovat seznamem již nadefinovaných položek (bez nutnosti přepínat na subzáložku Přehled položek) a prohlížet resp. editovat jejich definici.

Pravidla pro použití tohoto panelu jsou pro všechny agendy, ve kterých se může panel takového charakteru vyskytnout, společná a byla podrobně popsána v kap. Panel pro zobrazení seznamu na jiných záložkách.

Zobrazení seznamu v Detailu

V některé části této záložky může být zobrazen Seznam (Panel pro zobrazení seznamu na jiných záložkách), tedy záznamy ze záložky seznam (podrobněji viz Společné prvky v číselnících - záložka Detail).

Zobrazení seznamu závisí na aktuálním nastavení v menu Nastavení pro danou agendu a přihlášeného uživatele.

Funkce k záložce Detail:

Podmnožina funkcí ze záložky Seznam.

V editačním režimu platí zásady platné pro editaci záznamů v knihách. K dispozici jsou standardní funkce pro režim editace, přičemž po uložení záznamu v závislosti na jeho údajích může dojít k vyvolání nějaké další automatické akce, viz akce volané po uložení záznamu.