Příručka ve formátu PDF

1. Základní informace

1.1. Popis ovládacího prvku

TextBox je textové pole libovolné šířky a výšky určené k zadávání prostého textu o maximální délce do 250 znaků u databáze Firebird a 4000 znaků u databáze MSSQL, bez možnosti vložení vynuceného přechodu na novou řádku – enteru. Při nastavení šířky na 0 pixelů se u textového pole nezobrazuje typické orámování, a také chybí možnost editace textu – hodnota textového pole se zobrazuje jako běžný odstavec s prostým textem.

1.2. Vytvoření nového ovládacího prvku

Nový textbox je možné vytvořit dvěma základními způsoby:

Z editačního formuláře

  • Nejčastějším způsobem je vytvoření nového textboxu přímo z editačního formuláře pomocí toolbaru s ovládacími prvky.
  • Nejdříve se kliknutím myši v editačním formuláři určí pozice, na kterou má být nový textbox umístěn. Tím dojde ke zvýraznění vybrané pozice šedou horizontální linií. Následně stačí v toolbaru editačního formuláře kliknout na položku „TextBox“, v nově otevřeném dialogu vyplnit atributy nového ovládacího prvku, a následně uložit. Tím dojde k vložení nového textboxu na předem vybrané místo editačního formuláře.
  • Nedojde-li před vložením nového textboxu k určení požadované pozice, bude nový textbox vložen na konec editačního formuláře.

Z nahlížecí tabulky

  • Nahlížecí tabulka obsahuje na pravém okraji ikonu pro přidání nového sloupce. Následně zobrazený seznam ovládacích prvků umožňuje vybrat nový textbox, který bude umístěn v editačním formuláři ihned za ovládací prvek, který se v nahlížecí tabulce zobrazuje jako poslední. Po vyplnění atributů nového ovládacího prvku a jeho uložení dojde k vložení nového textboxu do editačního formuláře, a zároveň dojde k přidání nového sloupce do nahlížecí tabulky, který je spojený s právě vytvořeným textboxem.

1.3. Editace nebo smazání ovládacího prvku

  • U každého existujícího ovládacího prvku se po jeho levé straně v editačním formuláři zobrazuje ikona tužky, která slouží pro změnu nastavení ovládacího prvku nebo jeho smazání.
  • Jednotlivé ovládací prvky mohou být v editačním formuláři vertikálně přesouvány metodou Drag&Drop. Přesunutí spočívá v chycení ovládacího prvku nejlépe za jeho název umístěný v levém sloupci editačního formuláře, a následném tažení až na požadované místo v editačním formuláři. Z bezpečnostních důvodů je důležité mít povolenou funkci přesouvání ovládacích prvků pomocí zaškrtávacího pole „Drag&Drop“ umístěného nad toolbarem s ovládacími prvky. Při každém přihlášení do aplikace je toto pole nezaškrtnuté.
  • Smazání textboxu má za následek nevratné smazání databázového sloupce spojeného s tímto textboxem v databázi, a tudíž i ke smazání jeho hodnot ve všech záznamech databázové tabulky. Některé textboxy v systémových editačních formulářích není možné smazat, protože jsou nutné k základní funkčnosti celé aplikace.

2. Seznam záložek v dialogu nastavení ovládacího prvku

  • Obecné – Nastavení obecných vlastností
  • Výchozí hodnota – Nastavení výchozí hodnoty u nově vytvářených záznamů
  • Události – Nastavení javascriptových událostí
  • Tlačítko – Nastavení tlačítka, které může být zobrazováno napravo vedle ovládacího prvku
  • Nápověda – Nastavení textu nápovědy, který může být zobrazován v pravé části editačního formuláře
  • Filtr – Nastavení filtru, který může být zobrazován v nahlížecí tabulce v záhlaví sloupce
  • Práva – Nastavení práv
  • Administrace – Nastavení ostatních vlastností

2.1. Záložka „Obecné“

Obrázek.png

2.1.1. Název

  • Název ovládacího prvku zobrazovaný v editačním formuláři v samostatném sloupci s barevným pozadím nalevo vedle samotného textového pole.

2.1.2. Zkrácený název

  • Volitelný název ovládacího prvku zobrazovaný v záhlaví nahlížecí tabulky, pokud je ovládací prvek zvolen jako jeden ze sloupců nahlížecí tabulky.
  • Je-li zkrácený název uveden, zobrazuje se celý název ovládacího prvku v tooltipu nad zkráceným názvem.
  • Není-li zkrácený název uveden, zobrazuje se v záhlaví nahlížecí tabulky celý název ovládacího prvku.
  • Pomocí zkráceného názvu „ “ (pevná mezera) lze úplně skrýt název ovládacího prvku zobrazovaný v nahlížecí tabulce.

2.1.3. Slovník…

  • Slovník zobrazuje seznam názvů ostatních ovládacích prvků, formulářů, nahlížecích stránek, kategorií, aplikací a aplikačních skupin, použitých napříč celou aplikací.
  • Vyhledávání ve slovníku slouží k navržení správného názvu ovládacího prvku a k udržení konzistence názvosloví v celé aplikaci tak, aby se ovládací prvky se stejným významem umístěné na různých místech v aplikaci nazývaly stejným způsobem.

2.1.4. Datový typ – validace

  • Datový typ definuje druh nebo význam hodnot, kterých může ovládací prvek nabývat.
  • Datový typ určuje databázový typ sloupce v databázové tabulce, která je přidružena k aktuálnímu formuláři.
  • Rozbalovací seznam obsahuje následující datové typy:

Textový řetězec

Obrázek.png

  • „String“ s maximální délkou 250 znaků u databáze Firebird a 4000 znaků u databáze MSSQL, reprezentovaný jako databázový typ „varchar“ u databáze Firebird a „nvarchar“ u databáze MSSQL.
  • Hodnota tohoto pole v editačním formuláři je validována pouze na zadanou maximální délku.

Celé číslo

Obrázek.png

  • Integer“ s délkou 4 bajtů reprezentovaný jako databázový typ „int“.
  • Hodnota tohoto pole v editačním formuláři je validována na zadanou maximální délku, na znaky z množiny 0 až 9, a na rozsah zadané hodnoty v rozmezí od -2147483648 do 2147483647.
  • V nahlížecí tabulce je možné sloupec typu „celé číslo“ automaticky sčítat do zápatí tabulky.

Velké celé číslo

Obrázek.png

  • „Long“ s délkou 8 bajtů reprezentovaný jako databázový typ „bigint“.
  • Hodnota tohoto pole v editačním formuláři je validována na zadanou maximální délku, na znaky z množiny 0 až 9, a na rozsah zadané hodnoty v rozmezí od -9223372036854775808 do 9223372036854775807.
  • V nahlížecí tabulce je možné sloupec typu „velké celé číslo“ automaticky sčítat do zápatí tabulky.

Desetinné číslo

Obrázek.png

  • „Double“ s délkou 8 bajtů reprezentovaný jako databázový typ „float“.
  • Hodnota tohoto pole v editačním formuláři je validována na zadanou maximální délku, na znaky z množiny 0 až 9 a čárku jako oddělovač desetinných míst, a na rozsah zadané hodnoty v rozmezí od -1000000000000000 do 1000000000000000.
  • Všude v aplikaci kromě samotného textového pole v editačním formuláři se desetinné číslo zobrazuje včetně volitelného symbolu, a nedochází k zaokrouhlování zobrazované hodnoty.
  • V nahlížecí tabulce je možné sloupec typu „desetinné číslo“ automaticky sčítat do zápatí tabulky.

Měna

Obrázek.png

  • „Double“ s délkou 8 bajtů reprezentovaný jako databázový typ „float“.
  • Hodnota tohoto pole v editačním formuláři je validována na zadanou maximální délku, na znaky z množiny 0 až 9 a čárku jako oddělovač desetinných míst, a na rozsah zadané hodnoty v rozmezí od -1000000000000000 do 1000000000000000.
  • Všude v aplikaci kromě samotného textového pole v editačním formuláři se měna zobrazuje včetně volitelného symbolu, zaokrouhlená na dvě desetinná místa.
  • V nahlížecí tabulce je možné sloupec typu „měna“ automaticky sčítat do zápatí tabulky.

Datum

datum.png

  • „DateTime“ s délkou 8 bajtů reprezentovaný jako databázový typ „datetime“.
  • Hodnota tohoto pole v editačním formuláři je validována na zadanou maximální délku, na znaky z množiny 0 až 9 a tečku nebo lomítko jako oddělovač jednotlivých složek datumu, a na rozsah zadané hodnoty v rozmezí od 1.1.1901 do 31.12.9999.
  • Všude v aplikaci se datum zobrazuje podle základního nastavení portálu (dd/mm/yyyy nebo mm/dd/yyyy) a podle jazykových zvyklostí aktuálně přihlášeného uživatele (tečka nebo lomítko jako oddělovač), volitelně i s názvem dne nebo číslem týdne.
  • Datum může i nemusí být zadáván včetně času. Je-li čas používán, v editačním formuláři se zobrazuje a do databáze se ukládá pouze hodinová a minutová složka – sekundy, milisekundy a ticky jsou z data odstraněny.

Čas (hh:mm)

Obrázek.png

  • „String“ s délkou 6 bajtů reprezentovaný jako databázový typ „varchar(6)“.
  • Čas je textová hodnota vyjadřující počet hodin a počet minut. Tyto dva údaje jsou odděleny dvojtečkou, s možností zápisu záporné hodnoty pomocí znaménka „mínus“ na začátku.
  • Hodnota tohoto pole v editačním formuláři je validována na zadanou maximální délku, na znaky z množiny 0 až 9, na pomlčku jako znaménko „mínus“, a na dvojtečku jako oddělovač hodin a minut.
  • V nahlížecí tabulce je možné sloupec typu „čas“ automaticky sčítat do zápatí tabulky.

Čas (hh:mm:ss)

Obrázek.png

  • „String“ s délkou 13 bajtů reprezentovaný jako databázový typ „varchar(13)“.
  • Čas je textová hodnota vyjadřující počet hodin, minut, sekund, a volitelně milisekund. Tyto tři údaje jsou odděleny dvojtečkou, s možností zápisu záporné hodnoty pomocí znaménka „mínus“ na začátku. Volitelné milisekundy jsou vyjádřené jedno až tříciferným číslem zapsaným na konci za tečkou.
  • Hodnota tohoto pole v editačním formuláři je validována na zadanou maximální délku, na znaky z množiny 0 až 9, na pomlčku jako znaménko „mínus“, na dvojtečku jako oddělovač hodin, minut a sekund, a na tečku jako oddělovač milisekund.
  • V nahlížecí tabulce je možné sloupec typu „čas“ automaticky sčítat do zápatí tabulky.

E-mail

Obrázek.png

  • „String“ s maximální délkou 250 znaků u databáze Firebird a 4000 znaků u databáze MSSQL, reprezentovaný jako databázový typ „varchar“ u databáze Firebird a „nvarchar“ u databáze MSSQL.
  • Hodnota tohoto pole v editačním formuláři je validována na zadanou maximální délku, a pomocí regulárního výrazu „\w+([-+.]\w+)*[-]?@\w+([-.]\w+)*\.\w+([-.]\w+)*” tak, aby nebylo možné vložit hodnotu, která není platnou e-mailovou adresou.
  • Všude v aplikaci kromě samotného textového pole v editačním formuláři se hodnota ovládacího prvku zobrazuje jako odkaz na e-mailovou adresu.

URL

Obrázek.png

  • „String“ s maximální délkou 250 znaků u databáze Firebird a 4000 znaků u databáze MSSQL, reprezentovaný jako databázový typ „varchar“ u databáze Firebird a „nvarchar“ u databáze MSSQL.
  • Hodnota tohoto pole v editačním formuláři je validována pouze na zadanou maximální délku.
  • Všude v aplikaci kromě samotného textového pole v editačním formuláři se hodnota ovládacího prvku zobrazuje jako odkaz na webovou adresu.

Síťový odkaz

Obrázek.png

  • „String“ s maximální délkou 250 znaků u databáze Firebird a 4000 znaků u databáze MSSQL, reprezentovaný jako databázový typ „varchar“ u databáze Firebird a „nvarchar“ u databáze MSSQL.
  • Hodnota tohoto pole v editačním formuláři je validována pouze na zadanou maximální délku.
  • Všude v aplikaci kromě samotného textového pole v editačním formuláři se hodnota ovládacího prvku zobrazuje jako odkaz na síťové umístění.

Telefonní číslo

Obrázek.png

  • „String“ s maximální délkou 250 znaků u databáze Firebird a 4000 znaků u databáze MSSQL, reprezentovaný jako databázový typ „varchar“ u databáze Firebird a „nvarchar“ u databáze MSSQL.
  • Hodnota tohoto pole v editačním formuláři je validována pouze na zadanou maximální délku.
  • Všude v aplikaci kromě samotného textového pole v editačním formuláři se hodnota ovládacího prvku zobrazuje jako odkaz na telefonní číslo, rozdělený mezerami do skupin po třech číslicích.

IP adresa

Obrázek.png

  • „String“ s maximální délkou 250 znaků u databáze Firebird a 4000 znaků u databáze MSSQL, reprezentovaný jako databázový typ „varchar“ u databáze Firebird a „nvarchar“ u databáze MSSQL.
  • Hodnota tohoto pole v editačním formuláři je automaticky validována tak, aby nebylo možné vložit hodnotu, která není platnou IP adresou.
  • Všude v aplikaci kromě samotného textového pole v editačním formuláři se hodnota ovládacího prvku zobrazuje jako odkaz do databáze RIPE.

2.1.5. Jednotka

  • Pro datové typy: Desetinné číslo, Měna
  • Jednotka určuje symbol (například „%“), který se všude v aplikaci zobrazuje spolu s hodnotou ovládacího prvku. Symbol je vždy umístěn napravo vedle samotné hodnoty, oddělený mezerou.
  • Součástí jednotky může být i formát desetinného čísla, kterým je možné vynutit automatické zaokrouhlování hodnoty (například „{0.00}“ nebo „{0.00}%“).
  • Spolu s jednotkou je možné definovat šířku místa určeného pro jednotku v editačním formuláři tak, aby byl udržován prostor mezi jednotkou umístěnou napravo vedle textového pole, a mezi nápovědou ovládacího prvku umístěnou napravo vedle jednotky.

2.1.6. Šířka

  • Pro všechny datové typy
  • Šířka ovládacího prvku uvedená v pixelech.
  • Šířka se skládá ze dvou částí, z šířky samotného ovládacího prvku v editačním formuláři, a volitelně z šířky sloupce v nahlížecí tabulce, pokud je ovládací prvek zvolen jako ze sloupců nahlížecí tabulky.
  • Při nastavení šířky na 0 pixelů se u textového pole nezobrazuje typické orámování, a také chybí možnost editace textu – hodnota textového pole se zobrazuje jako běžný odstavec s prostým textem.

2.1.7. Maximální délka

  • Pro všechny datové typy
  • Maximální délka určuje maximální počet znaků, které lze vložit do textového pole v editačním formuláři a následně do databáze.
  • U databáze Firebird je maximální délka limitována na 250 znaků, u databáze MSSQL na 4000 znaků. Maximální délka má u datového typu „Textový řetězec“ vliv na databázový typ sloupce, který je přidružen k aktuálnímu ovládacímu prvku v databázi – „varchar(maxlength)“ u databáze Firebird a „nvarchar(maxlength)“ u databáze MSSQL. U ostatních datových typů má maximální délka vliv pouze na počet znaků, které lze vložit do textového pole v editačním formuláři.

2.1.8. Počet řádků

  • Pro datový typ: Textový řetězec
  • Počet řádků určuje volitelnou výšku textového pole v editačním formuláři.
  • Výchozí počet řádků je 1. U textového řetězce lze zadat hodnotu od 1 do 250, u ostatních datových typů se možnost zadání počtu řádků nezobrazuje.

2.1.9. Zarovnání

  • Pro datový typ: Celé číslo, Velké celé číslo, Desetinné číslo, Měna
  • Zarovnání určuje polohu textu uvnitř samotného textového pole v editačním formuláři, a polohu hodnot ovládacího prvku v nahlížecí tabulce, pokud je ovládací prvek zvolen jako jeden ze sloupců nahlížecí tabulky.
  • Rozbalovací seznam obsahuje následující typy zarovnání:
    • Vlevo (výchozí)
    • Na střed
    • Vpravo

2.1.10. Možnosti

  • Vyžadované pole
  • Pro všechny datové typy
    • Zaškrtnutí vyžadovaného pole určuje, zda má být v editačním formuláři vyžadováno vyplnění platné hodnoty před jejím uložením do databáze.
    • Nastavení vyžadovaného pole nemá vliv na databázový typ sloupce, který je přidružen k aktuálnímu ovládacímu prvku v databázi. Všechny databázové sloupce jsou nastaveny tak, že akceptují i databázovou hodnotu „null“.
    • „String“ může být v databázi uložen jako textový řetězec nenulové délky, textový řetězec nulové délky (prázdný string), nebo jako databázová hodnota „null“. Při sestavování podmínek databázového dotazu je tedy důležité počítat i s alternativou, že je ve sloupci v databázové tabulce uložena kromě textového řetězce nulové délky také databázová hodnota „null“. Taková podmínka může vypadat v řeči NG následovně: tb rovná se „“ nebo tb není definováno. A nyní v jazyce SQL: ng_tb = '' OR ng_tb IS NULL.
    • Ostatní datové typy mohou být uloženy buď jako platná hodnota daného datového typu, nebo jako databázová hodnota „null“.
  • Jen ke čtení
  • Pro všechny datové typy
    • Nastavení ovládacího prvku jen ke čtení určuje, zda má být v editačním formuláři textové pole disablované.
    • Do disablovaného pole není možné ručně zapisovat hodnoty, samotné textové pole má zašedlé pozadí, a text hodnoty v tomto poli se zobrazuje odlišným fontem než u zbytku ovládacích prvků.
    • Do disablovaného pole je možné vyplňovat hodnoty pomocí javascriptu:
      • Textový řetězec
        • control_SetValue(#ng_#, 'abc');
      • Celé číslo nebo velké celé číslo
        • control_SetValue(#ng_#, 123);
      • Desetinné číslo nebo měna:
        • control_SetValue(#ng_#, jsFN(1.23));
      • Datum:
        • control_SetValue(#ng_#, '1.1.2000');
        • control_SetValue(#ng_#, '1.1.2000', '12:34');
        • control_SetValue(#ng_#, new Date());
    • Ovládací prvky obecně je možné disablovat pomocí javascriptu: control_Disable(#ng_#);
    • Stejně tak je možné ovládací prvky pomocí javascriptu enablovat: control_Enable(#ng_#);
    • Ve výchozím nastavení není možné enablovat ovládací prvek, který je nastaven pouze ke čtení, javascriptové funkci control_Enable musí být předán druhý volitelný parametr „ignorereadonly“: control_Enable(#ng_#, true);
  • Zakázat změnu hodnoty pomocí JavaScriptu
  • Pro všechny datové typy ve spojení s možností „Jen ke čtení“
    • Zaškrtnutí zákazu změny hodnoty pomocí javascriptu zajistí, aby u ovládacích prvků nastavených jen ke čtení nedošlo k podvržení hodnoty v internetovém prohlížeči ze strany potencionálních útočníků na editační formulář.
    • Před uložením záznamu do databáze je vždy zkontrolováno, zda byla hodnota změněna pouze na straně serveru, a případně nastaví hodnotu na původní platnou.
  • Skryté pole
  • Pro všechny datové typy
    • Nastavení skrytého pole určuje, zda má být ovládací prvek součástí editačního formuláře, avšak v uživatelském režimu nemá být viditelný.
    • Skrytý ovládací prvek včetně vyplněné hodnoty je možné dohledat ve zdrojovém kódu webové stránky. Nelze ho tedy používat jako součást bezpečnostních opatření, k tomu se používají práva na ovládací prvek.
  • Zobrazit návrhář barev v editačním formuláři
  • Pro datový typ: Textový řetězec
    • Návrhář barev slouží jako picker pro sestavení hodnoty barvy ve formátu „R,G,B“. V editačním formuláři je pak u textového pole nastavena barva pozadí podle aktuálně zadané hodnoty, a pomocí pickeru je možné vybrat barvu ze seznamu barev definovaných v nastavení portálu. Není-li v nastavení portálu definována žádná barva, zobrazuje se v pickeru seznam často používaných barev běžný ve webových aplikacích.
    • Barva se používá v nahlížecích tabulkách, kde je možné u každého řádku tabulky zobrazit malý barevný obdélníček, který opticky usnadňuje orientaci v datech. Nastavení zobrazení barevného obdélníčku se provádí v grafickém návrháři databázových dotazů (QueryBuilder), který definuje zdroj dat nahlížecí tabulky. V tomto návrháři je nutné z rozbalovacího seznamu „Barva podle“ vybrat jeden z ovládacích prvků, který má zaškrtnuto „Zobrazit návrhář barev v editačním formuláři“.
    • Nahlížecí tabulka umožňuje i obarvit text každé řádky podle hodnoty barvy. Nastavení se provádí v grafickém návrháři databázových dotazů (QueryBuilder), který definuje zdroj dat nahlížecí tabulky. V tomto návrháři je nutné vybrat jeden z ovládacích prvků do rozbalovacího seznamu „Barva podle“, a následně zaškrtnout „Obarvit text“. Obarvení textu podporuje následující formáty barev:
      • „255,0,0“ – červený text
      • „B“ – tučný text bez barvy
      • „B255,0,0“ – tučný červený text
      • „N“ – normální text bez barvy
      • „N255,0,0“ – normální červený text
      • „255,0,0@01/03/2019@B255,0,0“ – červený text, od 1.3.2019 tučný červený text
      • „N@01/03/2019@B“ – normální text bez barvy, od 1.3.2019 tučný text bez barvy
  • Zobrazit ikonu „Pořadí…“ v nahlížecí tabulce
  • Pro datový typ: Celé číslo
    • Zaškrtnutí tohoto pole určuje, zda má být význam ovládacího prvku chápán jako pořadí, podle kterého jsou tříděny záznamy v nahlížecích tabulkách nebo stromových strukturách. Hodnota tohoto pole pak bývá hromadně měněna přímo přes nahlížecí tabulku nebo stromovou strukturu, ze které je možné změnit pořadí zobrazovaných záznamů pomocí návrháře pořadí, a hodnotu tohoto ovládacího prvku hromadně „přečíslovat“.
    • Aby se v hlavičce nahlížecí tabulky zobrazovala ikona s odkazem na návrháře pořadí („A..Z“), musí mít nahlížecí tabulka povolené hromadné změny dat. U stromové struktury se ikona s odkazem na návrháře pořadí zobrazuje v případě, že je v grafickém návrháři databázového dotazu, který definuje zdroj dat stromové struktury, nastaven tento sloupec jako „Setřídit podle“.
  • Zobrazovat jako odkaz v nahlížecí tabulce k otevření záznamu na nové záložce
  • Pro datový typ: Textový řetězec, Celé číslo, Velké celé číslo
    • Zaškrtnutí tohoto pole určuje, zda mají být hodnoty ovládacího prvku všude v aplikaci zobrazovány jako odkaz, který slouží k otevření záznamu na nové záložce.
  • Zobrazovat čas
  • Pro datový typ: Datum
    • Zaškrtnutí pole Zobrazovat čas určuje, zda má být v editačním formuláři spolu s datumem zadáván také čas. Čas se zobrazuje v samostatném textovém poli napravo vedle textového pole pro datum. Do databáze se ukládá hodinová a minutová složka, případně i vteřiny, pokud je zaškrtnuto pole Včetně vteřin. Je-li v databázi uložen datum včetně času, všude v aplikaci se zobrazuje ve formátu „dd/mm/yyyy HH:mm“, případně „dd/mm/yyyy HH:mm:ss“.
  • Zobrazovat zkrácený název dne
  • Pro datový typ: Datum
    • Zaškrtnutí tohoto pole určuje, zda se má všude v aplikaci kromě samotného textového pole v editačním formuláři zobrazovat spolu s hodnotou ovládacího prvku také zkrácený název dne.
    • Zkrácený název dne je umístěn na začátku, a od datumu je oddělován mezerou, například „pá 01.03.2019”.
  • Zobrazovat číslo týdne
  • Pro datový typ: Datum
    • Zaškrtnutí tohoto pole určuje, zda se má všude v aplikaci kromě samotného textového pole v editačním formuláři zobrazovat spolu s hodnotou ovládacího prvku také číslo týdne.
    • Číslo týdne je umístěno v závorce na konci, a od datumu je oddělováno mezerou, například „01.03.2019 (9. týden)”.
  • Zobrazovat zkrácenou verzi URL
  • Pro datový typ: URL
    • Zaškrtnutí tohoto pole určuje, zda se má všude v aplikaci kromě samotného textového pole v editačním formuláři zobrazovat hodnota ovládacího prvku pouze ve tvaru „doména/…“, se třemi tečkami umístěnými za lomítkem. Hodnota URL je vždy zobrazována jako odkaz na webovou adresu, proto je možné celý tvar webové adresy zjistit po kliknutí na odkaz, nebo případně přečíst přímo v editačním formuláři.
  • Povolit hromadné změny
  • Pro všechny datové typy
    • Povolení hromadných změn určuje, zda má být v nahlížecí tabulce nebo plánovacím vícezdrojovém kalendáři namísto samotné hodnoty ovládacího prvku zobrazeno textové pole s touto hodnotou, s možností změny hodnoty bez nutnosti otevření a editace záznamu v editačním formuláři. Toto textové pole se zobrazuje pouze v nahlížecích tabulkách nebo kalendářích, které mají povolené hromadné změny dat.
    • Hromadné změny je možné provádět pouze přihlášeným uživatelem, anonymnímu uživateli se zobrazuje textové pole s hodnotou pouze ke čtení.
  • Spustit OnBeforeSave/OnAfterSave před uložením záznamu do databáze
  • Pro všechny datové typy ve spojení s možností „Povolit hromadné změny“
    • Zaškrtnutí tohoto pole určuje, zda se při uložení hodnoty ovládacího prvku do databáze přímo z nahlížecí tabulky má spustit skript „OnBeforeSave“ a následně „OnAfterSave“, který
      • může zamezit uložení hodnoty pomocí vyvolání přerušení,
      • nebo může spustit dodatečné databázové operace, odeslání emailů apod.
    • Dojde-li ve skriptu „OnBeforeSave“ k přerušení, zobrazí se uživateli text chybového hlášení, hodnota textového pole v nahlížecí tabulce se vrátí do původního stavu, a k uložení hodnoty do databáze nedojde.
    • Dojde-li ve skriptu „OnAfterSave“ k přerušení, zobrazí se sice uživateli příslušné chybové hlášení, na úspěšné uložení hodnoty do databáze to však již nemá vliv.
  • Skrýt součet sloupce v nahlížecí tabulce
  • Pro datové typy: Celé číslo, Velké celé číslo, Desetinné číslo, Měna, Čas
    • Zaškrtnutí tohoto pole určuje, zda má být v zápatí nahlížecí tabulky zobrazen součet hodnot ovládacího prvku ze všech vyfiltrovaných záznamů nahlížecí tabulky.
    • Aby se v nahlížecí tabulce zobrazovaly součty sloupců, musí mít nahlížecí tabulka povolené zobrazování součtů sloupců. Výchozí nastavení zobrazování sloupců se přebírá přímo z vlastností nahlížecí tabulky, nicméně každý uživatel si může sám toto nastavení změnit ve svém personalizovaném nastavení nahlížecí tabulky.
  • Přichytit k předchozímu ovládacímu prvku
  • Pro všechny datové typy
    • Zaškrtnutí tohoto pole určuje, zda má být samotný ovládací prvek v editačním formuláři zobrazen napravo vedle předchozího, nebo bude zobrazen běžným způsobem pod předchozím ovládacím prvkem.
    • Je-li ovládací prvek přichytáván k předchozímu, lze definovat šířku odsazení od předchozího ovládacího prvku
      • Odsazení se definuje v pixelech v samostatném textovém poli, které je umístěno nalevo vedle textového pole „Šířka“.
      • V rámci celého editačního formuláře se obvykle odsazují ovládací prvky tak, aby byly opticky umístěny ideálně do dvou sloupců, případně třech. Obecně se doporučuje mít ve formuláři co nejméně svislých linií – aby jednotlivé ovládací prvky lícovaly – a tím pádem používat jednotnou šířku ovládacích prvků, které jsou opticky umístěny pod sebou v jednom sloupci.
      • To samé platí pro odsazení, které je vhodné používat se stejnou hodnotou pro všechny ovládací prvky, které jsou přichycené, a opticky tvoří samostatný sloupec editačního formuláře.
      • Při návrhu sloupců editačního formuláře je doporučenou praxí nejdříve rozmyslet šířku ovládacích prvků v prvním sloupci, a následně celkovou šířku druhého sloupce. U prvního sloupce se záměrně používá šířka ovládacích prvků namísto šířky celého sloupce, protože ovládací prvky v prvním sloupci začínají na stejné svislé linii v celém editačním formuláři, a názvy ovládacích prvků nalevo od samotného ovládacího prvku si automaticky alokují takovou šířku, která je potřebná pro ten nejdelší z nich. Druhý sloupec editačního formuláře, který je tvořen přichycenými ovládacími prvky, musí mít pevně dané odsazení, ve kterém se zobrazují názvy přichycených ovládacích prvků. Může se stát, že je název přichyceného ovládacího prvku delší než samotné odsazení, čímž dojde k porušení designu editačního formuláře, a uskočení samotného ovládacího prvku více doprava. Vpravo za odsazením tedy následuje přichycený ovládací prvek.
      • Pokud si budeme pamatovat celkovou šířku druhého sloupce, která se skládá z šířky odsazení a z šířky přichyceného ovládacího prvku, a máme již nastavenou šířku ovládacího prvku, je možné do textového pole odsazení napsat hodnotu ve formátu „500-“, která zajistí, že se hodnota odsazení vypočte automaticky podle vzorce „Odsazení = Celková šířka sloupce – Šířka ovládacího prvku“.

2.2. Záložka „Výchozí hodnota“

Obrázek.png

2.2.1. Výchozí hodnota

  • Výchozí hodnota se používá u nově vytvářených záznamů v editačním formuláři. Jde o hodnotu, která se automaticky předvyplní do ovládacího prvku v situaci, kdy je otevřen editační formulář za účelem vytvoření nového záznamu, který dosud v databázi neexistuje.
  • Výchozí hodnotu lze naplánovat pomocí skriptové funkce „SCHEDULEDEFAULTVALUE(ng_, abc)“ ze skriptu, který je součástí tlačítka pro otevření nového editačního formuláře.
  • Rozbalovací seznam obsahuje následující typy výchozích hodnot:
    • Vlastní – výchozí hodnotu definuje textová konstanta, proměnná, nebo kombinace obojího, zapsaná v textovém poli pod rozbalovacím seznamem. Mezi obvyklé proměnné patří „#lastvalue#“, „#lastvalue2#“ apod.
    • Aktuální uživatel – přihlašovací jméno aktuálně přihlášeného uživatele
    • Aktuální datum
    • Aktuální čas
    • Aktuální datum a čas
    • Aktuální hodnota v databázi – aktuální hodnota v databázi má význam pouze ve spojení se zaškrtávacím polem „Vyplnit výchozí hodnotu před každým uložením záznamu do databáze“
      • Sloupce některých databázových záznamů jsou měněny i na pozadí operačního systému například externími aplikacemi. Typicky jde o statusy, datumy zpracování databázového záznamu apod. Během doby, kdy má databázový záznam otevřený některý uživatel v editačním formuláři, může být hodnota takového sloupce změněna na pozadí externí aplikací. V takovém případě nesmí být pro uložení záznamu použita hodnota aktuálně přítomná v editačním formuláři (tato hodnota byla platná v době otevření záznamu), ale musí být použita hodnota aktuálně zapsaná v databázi.
    • Z dotazu – výchozí hodnotu definuje výsledek databázového dotazu, který je vyhodnocen při otevření editačního formuláře
    • JavaScript – výchozí hodnotu definuje javascriptová funkce spuštěná při otevření editačního formuláře, zapsaná v textovém poli pod rozbalovacím seznamem bez středníku na konci. Javascriptová funkce musí vracet textovou hodnotu.
    • Max – výchozí hodnotu definuje u textových řetězců hodnota naposledy vytvořeného záznamu aktuálně přihlášeným uživatelem, a u celých čísel nejvyšší hodnota přítomná v databázi v tomto sloupci
    • Max + 1 – výchozí hodnotu definuje nejvyšší hodnota přítomná v databázi v tomto sloupci plus 1, generovaná při uložení záznamu kvůli zamezení vytváření duplicitních hodnot
      • U nových záznamů zůstává textové pole skryté až do doby, než dojde k vygenerování max plus jedničky.
      • Typickou aplikací tohoto typu výchozí hodnoty je sestavení vlastního ID záznamu, případně pořadí záznamu za účelem řazení, často ve spojení s funkcí „Zobrazit ikonu Pořadí… v nahlížecí tabulce“.
      • Tento typ výchozí hodnoty
        • rozlišuje vnořené záznamy, které mají standardně vlastní číselnou řadu pro každý rodičovský záznam.
        • řeší unikátnost hodnoty ve všech synchronizovaných instalacích NET Genia. Do doby, než dojde k synchronizaci záznamu i do ostatních synchronizovaných instalací NET Genia, je hodnota vygenerovaná v samostatné číselné řadě začínající číslem 1000000.
        • umožňuje vytvářet vlastní číselné řady pro databázové záznamy, které mají identické hodnoty v jednom, nebo ve dvou dalších sloupcích. Tyto sloupce je možné vybrat po zaškrtnutí pole „Kategorie dle sloupce“.
        • umožňuje nastavit počáteční hodnotu číselné řady, např. 240100000. V takovém případě bude mít první záznam hodnotu 240100001, druhý 240100002 atd.
    • Max + 1 (lokální) – výchozí hodnotu definuje nejvyšší hodnota přítomná v databázi v tomto sloupci plus 1, generovaná při uložení záznamu kvůli zamezení vytváření duplicitních hodnot
      • U nových záznamů zůstává textové pole skryté až do doby, než dojde k vygenerování max plus jedničky.
      • Typickou aplikací tohoto typu výchozí hodnoty je sestavení vlastního ID záznamu, případně pořadí záznamu za účelem řazení, často ve spojení s funkcí „Zobrazit ikonu Pořadí… v nahlížecí tabulce“.
      • Tento typ výchozí hodnoty
        • rozlišuje vnořené záznamy, které mají standardně vlastní číselnou řadu pro každý rodičovský záznam.
        • neřeší unikátnost hodnoty ve všech synchronizovaných instalacích NET Genia.
        • umožňuje vytvářet vlastní číselné řady pro databázové záznamy, které mají identické hodnoty v jednom, nebo ve dvou dalších sloupcích. Tyto sloupce je možné vybrat po zaškrtnutí pole „Kategorie dle sloupce“.
        • umožňuje nastavit počáteční hodnotu číselné řady, např. 240100000. V takovém případě bude mít první záznam hodnotu 240100001, druhý 240100002 atd.
    • Max + 1: jednotná řada – výchozí hodnotu definuje nejvyšší hodnota přítomná v databázi v tomto sloupci plus 1, generovaná při uložení záznamu kvůli zamezení vytváření duplicitních hodnot
      • U nových záznamů zůstává textové pole skryté až do doby, než dojde k vygenerování max plus jedničky.
      • Typickou aplikací tohoto typu výchozí hodnoty je sestavení vlastního ID záznamu, případně pořadí záznamu za účelem řazení, často ve spojení s funkcí „Zobrazit ikonu Pořadí… v nahlížecí tabulce“.
      • Tento typ výchozí hodnoty
        • nerozlišuje vnořené záznamy, které mají standardně vlastní číselnou řadu pro každý rodičovský záznam.
        • řeší unikátnost hodnoty ve všech synchronizovaných instalacích NET Genia. Do doby, než dojde k synchronizaci záznamu i do ostatních synchronizovaných instalací NET Genia, je hodnota vygenerovaná v samostatné číselné řadě začínající číslem 1000000.
        • umožňuje vytvářet vlastní číselné řady pro databázové záznamy, které mají identické hodnoty v jednom, nebo ve dvou dalších sloupcích. Tyto sloupce je možné vybrat po zaškrtnutí pole „Kategorie dle sloupce“.
        • umožňuje nastavit počáteční hodnotu číselné řady, např. 240100000. V takovém případě bude mít první záznam hodnotu 240100001, druhý 240100002 atd.
    • Max + 1: jednotná řada (lokální) – výchozí hodnotu definuje nejvyšší hodnota přítomná v databázi v tomto sloupci plus 1, generovaná při uložení záznamu kvůli zamezení vytváření duplicitních hodnot
      • U nových záznamů zůstává textové pole skryté až do doby, než dojde k vygenerování max plus jedničky.
      • Typickou aplikací tohoto typu výchozí hodnoty je sestavení vlastního ID záznamu, případně pořadí záznamu za účelem řazení, často ve spojení s funkcí „Zobrazit ikonu Pořadí… v nahlížecí tabulce“.
      • Tento typ výchozí hodnoty
        • nerozlišuje vnořené záznamy, které mají standardně vlastní číselnou řadu pro každý rodičovský záznam.
        • neřeší unikátnost hodnoty ve všech synchronizovaných instalacích NET Genia.
        • umožňuje vytvářet vlastní číselné řady pro databázové záznamy, které mají identické hodnoty v jednom, nebo ve dvou dalších sloupcích. Tyto sloupce je možné vybrat po zaškrtnutí pole „Kategorie dle sloupce“.
        • umožňuje nastavit počáteční hodnotu číselné řady, např. 240100000. V takovém případě bude mít první záznam hodnotu 240100001, druhý 240100002 atd.
    • Max + 1: pevné – výchozí hodnotu definuje nejvyšší hodnota přítomná v databázi v tomto sloupci plus 1, generovaná při otevření editačního formuláře
      • Typickou aplikací tohoto typu výchozí hodnoty je sestavení pořadí záznamu za účelem řazení, často ve spojení s funkcí „Zobrazit ikonu Pořadí… v nahlížecí tabulce“.
      • Tento typ výchozí hodnoty
        • rozlišuje vnořené záznamy, které mají standardně vlastní číselnou řadu pro každý rodičovský záznam.
        • neřeší unikátnost hodnoty. Při souběžné práci více uživatelů umožňuje, aby vznikly záznamy s duplicitní hodnotou.

2.2.2. Možnosti

  • Vyplnit výchozí hodnotu při každém otevření editačního formuláře
    • Zaškrtnutí tohoto pole určuje, zda dojde po otevření již existujícího záznamu k přepsání aktuální hodnoty v editačním formuláři na výchozí hodnotu.
    • Ovládací prvky, které mají jako výchozí hodnotu nastavené volání externí funkce, například „ngef2(test)“, a zároveň mají zaškrtnuté vyplnění výchozí hodnoty při každém otevření editačního formuláře, mohou mít v databázi prázdnou nebo nevyplněnou hodnotu, a přesto se při pokusu o zobrazení této hodnoty všude v aplikaci kromě editačního formuláře vyhodnotí externí funkce nastavená jako výchozí hodnota.
  • Vyplnit výchozí hodnotu před každým uložením záznamu do databáze
    • Zaškrtnutí tohoto pole určuje, zda dojde před každým uložením záznamu k přepsání aktuální hodnoty v editačním formuláři na výchozí hodnotu.
    • Ovládací prvky, které mají jako výchozí hodnotu nastavené volání externí funkce, například „ngef2(test)“, a zároveň mají zaškrtnuté vyplnění výchozí hodnoty před každým uložením záznamu do databáze, mohou mít v databázi prázdnou nebo nevyplněnou hodnotu, a přesto se při pokusu o zobrazení této hodnoty všude v aplikaci kromě editačního formuláře vyhodnotí externí funkce nastavená jako výchozí hodnota.

2.3. Záložka „Události“

Obrázek.png

2.3.1. OnChange

  • Událost „onchange“ určuje seznam javascriptových příkazů oddělených středníkem, které se vykonají po změně hodnoty a následném opuštění ovládacího prvku.
    • Odstranit nadbytečné mezery
      • Zaškrtnutí tohoto pole určuje, zda má být součástí události „onchange“ odstranění nadbytečných mezer, mezi které patří
        • nahrazení bílých znaků za mezery,
        • odstranění mezer na začátku a na konci textového řetězce,
        • nahrazení zdvojených mezer za jednoduché.
      • K odstranění nadbytečných mezer dojde ještě před spuštěním seznamu javascriptových příkazů definovaných v poli „onchange“.
    • Odstranit všechny mezery
      • Zaškrtnutí tohoto pole určuje, zda má být součástí události „onchange“ odstranění všech mezer a bílých znaků z textového řetězce.
      • K odstranění všech mezer dojde ještě před spuštěním seznamu javascriptových příkazů definovaných v poli „onchange“.
    • První písmeno velké
      • Zaškrtnutí tohoto pole určuje, zda má být součástí události „onchange“ nahrazení prvního písmene textového řetězce za velké.
      • K nahrazení prvního písmene za velké dojde ještě před spuštěním seznamu javascriptových příkazů definovaných v poli „onchange“.

2.3.2. OnClick

  • Událost „onclick“ určuje seznam javascriptových příkazů oddělených středníkem, které se vykonají po kliknutí myši na ovládací prvek.

2.3.3. OnFocus

  • Událost „onfocus“ určuje seznam javascriptových příkazů oddělených středníkem, které se vykonají po vstupu do ovládacího prvku (ve chvíli, kdy ovládací prvek obdrží focus).

2.3.4. OnBlur

  • Událost „onblur“ určuje seznam javascriptových příkazů oddělených středníkem, které se vykonají po opuštění ovládacího prvku tabelátorem či kliknutím myši mimo ovládací prvek.

2.4. Záložka „Tlačítko“

Obrázek.png

2.4.1. Nadpis

  • Nadpis určuje název tlačítka, které se volitelně zobrazuje napravo vedle samotného ovládacího prvku v editačním formuláři.
  • Nevyplněný název značí, že tlačítko nebude zobrazeno.

2.4.2. Šířka

  • Šířka tlačítka uvedená v pixelech.

2.4.3. Klient

  • Pole „Klient“ určuje seznam javascriptových příkazů, které se vykonají po stisknutí tlačítka. Rozbalovací seznam nabízí následující často používané javascriptové funkce:
    • Opravdu chcete… ? – return confirm('Opravdu chcete... ?');
    • AJAX… – return bt_Eval(this, ' ngef.aspx?test','evalFunction');
    • control_SetValue – control_SetValue(#ng_tb#, '');

2.4.4. Server

  • Dojde-li k úspěšnému vyhodnocení javascriptových příkazů, nebo pokud nejsou žádné javascriptové příkazy definované, bude následně spuštěn skript na straně serveru. Odkaz „Upravit skript“ slouží k otevření integrovaného grafického návrháře skriptů, ve kterém se definuje skript, resp. serverová část tlačítka.
  • Vykonávání javascriptových příkazů lze přerušit příkazem „return false;“, který zamezí i následnému spuštění skriptu na straně serveru.

2.5. Záložka „Nápověda“

Obrázek.png

2.5.1. Nápověda

  • Nápověda je text zobrazovaný napravo vedle samotného ovládacího prvku v editačním formuláři. Nápovědy všech ovládacích prvků začínají na stejné svislé linii v celém editačním formuláři – opticky jsou umístěny do samostatného sloupce nápovědy.
  • Zobrazování textu nápovědy se liší v případě přichytávání ovládacích prvků.
    • Je-li v nastavení editačního formuláře zaškrtnuto „Automatické seskupování nápovědy přichycených ovládacích prvků“, bude ve sloupci s nápovědou automaticky vygenerován odrážkový seznam všech ovládacích prvků s nápovědou umístěných ve stejné řádce, s možností rozkliknout položku odrážkového seznamu a zobrazit text nápovědy.
    • Není-li v nastavení editačního formuláře zaškrtnuto „Automatické seskupování nápovědy přichycených ovládacích prvků“, nápovědy ovládacích prvků umístěných nalevo od přichycených ovládacích prvků se nezobrazují.
  • Text nápovědy podporuje jednoduché formátování textu pomocí wiki syntaxe:
    • '''Tučný text'''
    • ''Kurzíva''
    • '''''Tučná kurzíva'''''
    • ""Text umístěný ve dvojitých uvozovkách""
    • Seznamy:
      • * Nadpis 1
      • ** Podnadpis 1.1
      • ** Podnadpis 1.2
      • * Nadpis 2
      • * Nadpis 3
      • # Číslovaný nadpis 1
      • ## Číslovaný podnadpis 1.1
      • ## Číslovaný podnadpis 1.2
      • # Číslovaný nadpis 2
      • # Číslovaný nadpis 3
  • Text nápovědy se může zobrazovat až po kliknutí na ikonu s otazníčkem, která je umístěná na běžném místě jako nápověda, jen opticky zaujímá menší prostor. Případně může být před touto ikonou zobrazen zkrácený text nápovědy. Ikona otazníku se definuje tak, že se na konec první řádky nápovědy umístí tři tečky a následně přechod na novou řádku (enter). Před třemi tečkami se může nacházet zkrácený text nápovědy. Následuje pak již libovolně dlouhý text nápovědy včetně přechodů na nové řádky.

    • Text nápovědy zobrazovaný po kliknutí na ikonu otazníčku
    • Zkrácený text nápovědy…
      Text nápovědy zobrazovaný po kliknutí na ikonu otazníčku
  • Ve spojení s ikonou otazníčku lze použít variantu, kdy se po kliknutí na ikonu nezobrazuje text nápovědy následovaný za třemi tečkami, ale naopak se zobrazuje/skrývá obsah například divu umístěného kdekoliv v editačním formuláři. Na nové řádce za třemi tečkami je nutné uvést ID tohoto divu pomocí javascriptové funkce „el“.

    • el('D1')
    • Zkrácený text nápovědy…
      el('D1')
  • Radio button nápovědy obsahuje následující dva typy definice nápovědy:
    • Text – text nápovědy definuje ručně zadaný textový řetězec umístěný ve víceřádkovém textovém poli pod radio buttonem
    • Z dotazu – text nápovědy definuje výsledek databázového dotazu, který je vyhodnocen při otevření editačního formuláře

2.5.2. Poznámky

  • Poznámky slouží pro zadání libovolného textu určeného pro správce aplikace.

2.6. Záložka „Filtr“

Obrázek.png

2.6.1. Možnosti

  • Zobrazit filtr v nahlížecí tabulce
    • Zaškrtnutí tohoto pole určuje, zda má být v nahlížecí tabulce umožněno filtrování záznamů podle hodnot přítomných v databázi ve sloupci spojeném s tímto ovládacím prvkem. Rozbalovací seznam filtru je umístěný v záhlaví nahlížecí tabulky pod názvem ovládacího prvku.
  • Povolit hromadné změny
    • Zaškrtnutí tohoto pole určuje, zda má být v rozbalovacím seznamu filtru k dispozici položka „Přiřadit hodnotu…“, která slouží k přiřazení hodnoty všem vyfiltrovaným záznamům v nahlížecí tabulce.
    • Po zvolení této položky dojde k otevření nového okna, ve kterém se zobrazuje ovládací prvek spojený s filtrovaným sloupcem. Pomocí tlačítka „Uložit“ pak lze změnit hodnotu sloupce u všech vyfiltrovaných záznamů v nahlížecí tabulce na zvolenou hodnotu. Aby se v rozbalovacím seznamu filtru zobrazovala položka „Přiřadit hodnotu…“, musí mít nahlížecí tabulka povolené hromadné změny dat.
    • Hromadné změny není možné používat u ovládacích prvků, které jsou jen ke čtení nebo skryté.

2.6.2. Počet záznamů na stránce

  • Počet záznamů na stránce určuje maximální počet unikátních hodnot, které se ve filtru zobrazí na základě analýzy načtených dat v nahlížecí tabulce ve sloupci spojeném s filtrem. Je-li v datech přítomno více výskytů unikátních hodnot, než je definovaný počet záznamů na stránce, dojde k přerušení analýzy unikátních hodnot v daném sloupci, a ve filtru se zobrazí položka „Načíst hodnoty…“, která pomocí ajaxu vyhodnotí a následně ve filtru zobrazí všechny unikátní hodnoty v daném sloupci a načtených datech v nahlížecí tabulce.
  • Samotná nahlížecí tabulka může načítat velké množství dat, anebo filtrovaný sloupec může obsahovat velké množství unikátních hodnot, což má vliv na rychlost sestavení seznamu těchto hodnot. V případech, kdy není důležité hodnoty při generování nahlížecí tabulky analyzovat vůbec, a je dostačující použití funkce „Načíst hodnoty…“, je vhodné nastavit počet záznamů na stránce na hodnotu „0“.

2.7. Záložka „Práva“

Obrázek.png

2.7.1. Práva

  • Práva definují seznam uživatelských skupin a uživatelů, kteří mají oprávnění na zobrazení ovládacího prvku v editačním formuláři, a na zobrazování hodnot tohoto ovládacího prvku všude jinde v aplikaci.
  • Uživatelé, kteří nemají práva na ovládací prvek,
    • nevidí ovládací prvek ani jeho hodnotu v editačním formuláři, a ani ho nemohou dohledat ve zdrojovém kódu stránky v internetovém prohlížeči,
    • nemohou zobrazit sloupec spojený s tímto ovládacím prvkem v nahlížecí tabulce nebo jiném vizuálním ovládacím prvku určeném pro prohlížení dat,
    • mohou vytvořit záznam v editačním formuláři, ve kterém existuje ovládací prvek, na který nemají práva, hodnota těchto ovládacích prvků je pak nastavena na databázovou hodnotu „null“,
    • nemohou smazat žádný záznam v editačním formuláři, ve kterém existuje ovládací prvek, na který nemají práva.
  • Správce aplikace může způsobit logickou chybu, kdy se pomocí javascriptové funkce odkazuje na ovládací prvek, který pro některé uživatele nemusí být přístupný z pohledu práv. Proměnná „ng_“ se pak nahradí za hodnotu uloženou v databázi v tomto ovládacím prvku namísto odkazu na objekt samotného ovládacího prvku. Tato chyba ve většině případů zastaví načítání editačního formuláře, ten se celý disabluje, a uživateli je zobrazeno hlášení, že má kontaktovat administrátora aplikace. Tento druh chyby je možný z části eliminovat pomocí reportu „Ovládací prvky (JavaScript + nedostatečná práva)“.

2.7.2. Zobrazit hodnotu

  • Zobrazení hodnoty ovládacího prvku může být omezeno pouze na uživatele, kteří daný databázový záznam vytvořili, anebo jsou nastaveni jako spoluvlastníci všech záznamů v nastavení editačního formuláře.
  • Radio button obsahuje následující typy zobrazení hodnoty:
    • Všem uživatelům – ovládací prvek včetně jeho hodnoty bude zobrazen všem uživatelům, kteří mají právo na daný ovládací prvek
    • Pouze vlastníkovi nebo spoluvlastníkovi záznamu – ovládací prvek včetně jeho hodnoty bude zobrazen pouze uživatelům, kteří mají právo na daný ovládací prvek, a zároveň jsou vlastníci aktuálně otevřeného databázového záznamu v editačním formuláři (záznam vytvořili), nebo jsou nastaveni jako spoluvlastníci všech záznamů v nastavení editačního formuláře.

2.7.3. Nahradit práva ostatním ovládacím prvkům

  • Funkce „Nahradit práva ostatním ovládacím prvkům“ slouží pro sjednocení práv v rámci celého editačního formuláře u ovládacích prvků, které spolu z pohledu práv souvisí.
  • Díky odkazu „Zobrazit…“ je možné zobrazit seznam všech ovládacích prvků v editačním formuláři včetně nastavení práv těchto ovládacích prvků. U každého ovládacího prvku je zobrazeno zaškrtávací tlačítko, kterým je možné ovládací prvek vybrat. Při uložení ovládacího prvku se následně nastaví stejná práva i těmto vybraným ovládacím prvkům.
  • Alternativou pro sjednocení práv v rámci celého editačního formuláře je zobrazení reportu dostupného ze záložky „Práva podřízených objektů“ v nastavení editačního formuláře.

2.8. Záložka „Administrace“

Obrázek.png

  • Záložka „Administrace“ se zobrazuje pouze u existujících ovládacích prvků.

2.8.1. Identifikátor

  • Identifikátor určuje název databázového sloupce, do kterého se v databázi ukládají hodnoty zadané prostřednictvím ovládacího prvku v editačním formuláři.
  • Identifikátor je odvozen od názvu ovládacího prvku. Začíná prefixem „ng_“, a dále obsahuje alfanumerické znaky použité v názvu ovládacího prvku (systémové ovládací prvky prefix „ng_“ neobsahují). Při změně názvu ovládacího prvku je k dispozici tlačítko „Opravit“, které slouží k opravě identifikátoru, a tedy i přejmenování databázového sloupce v databázi. Pro přehlednost a eliminaci případných nedorozumění se doporučuje udržovat identifikátor v souladu s názvem ovládacího prvku. Pokud do databáze přistupují i externí aplikace a například čtou nebo zapisují data do tohoto sloupce, je nutné změnu identifikátoru naplánovat až na vhodnou dobu.

2.8.2. Plný identifikátor

  • Plný identifikátor ovládacího prvku obsahuje i identifikátor editačního formuláře, a používá se v tiskových šablonách.

2.8.3. Index

  • Zaškrtnutí tohoto pole určuje, zda má být sloupec spojený s tímto ovládacím prvkem v databázi indexovaný. Do textového pole umístěného pod zaškrtávacím tlačítkem je možné definovat i názvy (identifikátory) dalších sloupců, které mají být ve sdruženém indexu s tímto databázovým sloupcem – mají být součástí klíče indexu.
  • U databáze MSSQL je možné definovat také sloupce „INCLUDE“, které se připojí k indexu. Nejsou ale součástí klíče indexu, ale hodnoty daného klíče. Databáze Firebird tuto funkcionalitu neumožňuje.

2.8.4. Hledání v nahlížecí tabulce

  • Hledání určuje způsob, jakým budou záznamy v nahlížecí tabulce po zadání hledaného výrazu či slovního spojení vyhledávané v databázi. Způsob hledání se liší pro datové typy textového pole.
  • Textové řetězce podporují následující typy hledání:
    • LIKE (obsahuje) – běžné „case-insensitive“ hledání pomocí klausule „LIKE“
    • CONTAINS (MSSQL Full-Text) – fulltextové „case-insensitive“ hledání pomocí klauzule „CONTAINS“, které podporuje databáze MSSQL. Zaškrtnutí této volby automaticky zajistí vytvoření fulltextového indexu v databázi.
    • = (rovná se) – „case-insensitive“ vyhledávání pomocí operátoru „=“, které je velmi rychlé především ve spojení se zapnutým indexem na databázovém sloupci. Tímto způsobem není možné vyhledávat podřetězce v databázovém sloupci, vždy pouze celou hodnotu.
    • Zakázat – hledání v tomto sloupci je zakázáno, a v nahlížecí tabulce se neobjevuje zaškrtávací tlačítko, kterým by bylo možné sloupec tabulky zahrnout do seznamu prohledávaných sloupců.
    • Hledat bez diakritiky – zaškrtnutí tohoto pole zajistí, aby se z hledaného výrazu či slovního spojení zadaného v nahlížecí tabulce nejdříve odstranila diakritika. Aby takové hledání mohlo fungovat, je důležité zajistit, aby se i hodnoty do databáze v tomto sloupci ukládaly bez diakritiky, typicky ve skriptu „OnBeforeSave“ s použitím funkce „REMOVEDIACRITICS()“.
  • Čísla a datumy podporují následující typy hledání:
    • Zakázat – hledání v tomto sloupci je zakázáno, a v nahlížecí tabulce se neobjevuje zaškrtávací tlačítko, kterým by bylo možné sloupec tabulky zahrnout do seznamu prohledávaných sloupců. Tento typ je výchozím nastavením.
    • Povolit – hledání v tomto sloupci je povoleno, a v nahlížecí tabulce se objevuje zaškrtávací tlačítko, kterým je možné sloupec tabulky zahrnout do seznamu prohledávaných sloupců.
  • Barva podle
    • Všude v aplikaci kromě samotného textového pole v editačním formuláři se hodnota ovládacího prvku může zobrazovat včetně barevného obdélníčku nebo obrázkové ikony.
    • Rozbalovací seznam dává na výběr ze seznamu ovládacích prvků „TextBox“ se zaškrtnutým návrhářem barev nebo z ovládacích prvků „Image“, které se nachází ve stejném editačním formuláři, a které budou použity jako zdroj barevné nebo obrázkové informace pro optické zvýraznění hodnoty ovládacího prvku.

2.8.5. Ostatní

  • Aktuální hodnota v databázi
    • Textové pole zobrazuje aktuální hodnotu právě otevřeného záznamu v editačním formuláři v daném ovládacím prvku, s možností změny této hodnoty.
  • Změnit typ na
    • Rozbalovací seznam nabízí typy ovládacích prvků, na které je podporována konverze ovládacího prvku včetně automatické konverze dat přítomných v databázové tabulce.
  • Změnit datový typ na
    • Rozbalovací seznam nabízí datové typy, na které je podporována konverze ovládacího prvku včetně automatické konverze dat přítomných v databázové tabulce.

2.8.6. Statistika

  • Statistika zobrazuje agregovanou informaci o využívání ovládacího prvku napříč celou aplikací.
  • Pomocí tlačítka „Statistika“ se zobrazí detailní report všech míst, kde je ovládací prvek použitý nebo referencovaný, včetně možnosti otevření nastavení takového místa či ovládacího prvku.
  • Před každou změnou typu ovládacího prvku nebo datového typu, případně před každým smazáním ovládacího prvku z editačního formuláře, se doporučuje důkladně projít statistku ovládacího prvku, a eliminovat případná nedorozumění.
  • Před každým smazáním ovládacího prvku z editačního formuláře se automaticky spustí vyhodnocení statistiky. Pokud je ovládací prvek někde v aplikaci používán nebo referencován, je nutné smazání ovládacího prvku znovu potvrdit.

3. Picker

3.1. Základní informace

Obrázek.png

  • Picker je dialogové okno, které zobrazuje nahlížecí tabulku s databázovými záznamy, jejichž hodnoty je možné převzít či zkopírovat do právě otevřeného editačního formuláře. Picker se typicky používá pro kopírování celých databázových záznamů nebo pro převzetí hodnoty cizího klíče (ForeignKey).
  • Odkaz na dialogové okno pickeru s nahlížecí tabulkou a databázovými záznamy má podobu ikony lupy, a zobrazuje se v editačním formuláři napravo vedle ovládacího prvku, ke kterému je picker přidružen.
  • Picker má i podobu ajaxového našeptávače, který začne nabízet databázové záznamy už při zadávání hodnoty do textového pole v editačním formuláři. Aby fungovalo ajaxové našeptávání, je nutné povolit vyhledávání hodnot zadaných v editačním formuláři.
  • Nastavení pickeru se provádí v samostatném dialogu. Odkaz na tento dialog má podobu ikony lupy, a nachází se v levém dolním rohu dialogu nastavení ovládacího prvku, ke kterému je picker přidružen.

3.2. Záložka „Obecné“

Obrázek.png

3.2.1. Tooltip

  • Tooltip určuje text nápovědy, který se zobrazí po najetí myši nad ikonu pickeru v editačním formuláři.

3.2.2. Zdroj dat

  • Zdroj dat definuje data zobrazovaná v nahlížecí tabulce pickeru. Tato data jsou výsledkem databázového dotazu, který je vyhodnocen při otevření okna pickeru, nebo při zahájení našeptávání hodnot přímo do editačního formuláře.
  • Nastavení zdroje dat se provádí v grafickém návrháři databázových dotazů.

3.2.3. Počet záznamů na stránce

  • Pro přehlednost používá nahlížecí tabulka stránkování zobrazovaných záznamů. To je užitečné v situacích kdy nahlížecí tabulka načítá velké množství dat.
  • Počet záznamů na stránce určuje maximální počet záznamů, které se zobrazí na jedné stránce. Mezi jednotlivými stránkami lze snadno přecházet pomocí nástrojů, které obsahuje každá nahlížecí tabulka ve svém zápatí.

3.2.4. Možnosti

  • Vyhledat hodnotu zadanou v editačním formuláři
    • Zaškrtnutí tohoto pole určuje, zda má být hodnota zadaná v editačním formuláři vyhledána v nahlížecí tabulce pickeru, a zda má editační formulář nabízet ajaxový picker.
    • Ajaxový picker není funkční, pokud je jedno z pickovaných polí ovládací prvek „File“ nebo „Image“.
  • Optimalizované hledání
    • Optimalizované hledání znamená, že každý sloupec nahlížecí tabulky pickeru používá svoje textové pole určené pro zadání hledaného výrazu nebo slovního spojení.
    • Běžné (neoptimalizované) hledání znamená, že se pro zadání hledaného výrazu používá jedno společné textové pole, do kterého je možné vypsat všechny hledané výrazy, a ty jsou následně vyhledávány ve všech sloupcích nahlížecí tabulky najednou.
  • Zobrazit pouze výsledky hledání
    • Zaškrtnutí tohoto pole určuje, zda má nahlížecí tabulka pickeru zobrazovat záznamy, pouze když je zadán hledaný výraz nebo slovní spojení.
  • Přepsat hodnotu zadanou v editačním formuláři
    • Zaškrtnutí tohoto pole určuje, zda má převzetí hodnoty pole z nahlížecí tabulky pickeru do editačního formuláře hodnotu přepsat, nebo jí přidat na konec.
  • Povolit vytváření nových záznamů
    • Zaškrtnutí tohoto pole určuje, zda se pod nahlížecí tabulkou pickeru bude zobrazovat tlačítko pro zadání nového záznamu stejné agendy, která je použitá jako zdroj dat v nahlížecí tabulce.
  • Povolit otevírání záznamů
    • Zaškrtnutí tohoto pole určuje, zda má být možné otevírat jednotlivé záznamy z nahlížecí tabulky pickeru, a v dialogovém okně pickeru zobrazit detail konkrétního databázového záznamu přímo v jeho editačním formuláři.
  • Povolit více záznamů najednou
    • Zaškrtnutí tohoto pole umožňuje výběr více záznamů v pickeru najednou. Jednotlivé záznamy se v pickeru vybírají zaškrtnutím checkboxu umístěného na každé řádce nahlížecí tabulky pickeru v prvním sloupci. Tímto způsobem je však možné pickovat pouze sloupec „(ID)“ tj. primární klíč. Do editačního formuláře se vybrané záznamy převezmou jako jednotlivé hodnoty primárního klíče oddělené středníkem.

3.2.5. Přiřazovací tabulka

  • Sloupce
    • Nastavení sloupců určuje, jaký sloupec nahlížecí tabulky v pickeru bude zkopírován, do jakého ovládacího prvku v editačním formuláři.
    • Pickované sloupce – ty co mají nastavený zdroj a cíl – se automaticky zobrazují v nahlížecí tabulce pickeru v pořadí, v jakém jsou uvedeny v přiřazovací tabulce.
    • Sloupce v nahlížecí tabulce pickeru je možné skrýt výběrem příkazu „Skrýt“ z rozbalovacího seznamu umístěného napravo vedle rozbalovacího seznamu „Cíl“.
    • U sloupců v nahlížecí tabulce pickeru je možné aktivovat hledání výběrem příkazu „Aktivovat hledání“ z rozbalovacího seznamu umístěného napravo vedle rozbalovacího seznamu „Cíl“.
    • Není-li zvolen žádný sloupec pro hledání, automaticky se aktivuje hledání u všech sloupců nahlížecí tabulky pickeru, kde je to povolené z pohledu obecného nastavení vyhledávání v nahlížecích tabulkách, které se definuje ve vlastnostech ovládacího prvku.

3.3. Záložka „Nápověda“

Obrázek.png

  • Na záložce „Nápověda“ je možné nastavit seznam všech dalších sloupců, které mají být zobrazeny v nahlížecí tabulce pickeru, přestože se žádný z těchto sloupců nepickuje.

3.4. Záložka „Aktivovat hledání“

Obrázek.png

  • Na záložce „Aktivovat hledání“ je možné nastavit seznam všech dalších sloupců, ve kterých má být aktivováno hledání.

3.5. Záložka „Ostatní“

Obrázek.png

  • Název šablony
    • Nastavení pickeru je možné uložit do šablony, aby se dalo snadno zkopírovat při nastavování pickeru dalšího ovládacího pole, které načítá data ze stejného zdroje dat.

4. Příklady

4.1. Javascriptové funkce

4.1.1. Obecné funkce

  • var s = control_GetValue(#ng_#);
  • control_Disable(#ng_#); // Obecná javascriptová funkce pro všechny databázové ovládací prvky
  • tb_Disable(#ng_#);
  • control_Enable(#ng_#); // Obecná javascriptová funkce pro všechny databázové ovládací prvky
  • tb_Enable(#ng_#);
  • picker_Open(#ng_#);

4.1.2. Textové řetězce

  • var s = control_GetValue(#ng_#);
  • var s = #ng_#.value;
  • control_SetValue(#ng_#, s);
  • #ng_#.value = s;
  • control_SetValue(#ng_#, 'abc');
  • #ng_#.value = 'abc';

4.1.3. Celá čísla

  • var n = jsN(control_GetValue(#ng_#));
  • var n = jsN(#ng_#.value);
  • control_SetValue(#ng_#, n);
  • #ng_#.value = n;
  • control_SetValue(#ng_#, 123);
  • #ng_#.value = 123;
  • var ok = jsIsNumber(#ng_#.value);
  • var s = jsNumberInWords(12345678, 'cs');

4.1.4. Desetinná čísla

  • var n = jsN(control_GetValue(#ng_#));
  • var n = jsN(#ng_#.value);
  • control_SetValue(#ng_#, jsFN(n));
  • #ng_#.value = jsFN(n);
  • control_SetValue(#ng_#, jsFN(1.23));
  • #ng_#.value = jsFN(1.23);
  • var ok = jsIsNumber(#ng_#.value);
  • var s = jsNumberInWords(12345.678, 'cs');
  • var s = jsFormatDouble(1100.5412, 'kg');

4.1.5. Měny

  • var n = jsN(control_GetValue(#ng_#));
  • var n = jsN(#ng_#.value);
  • control_SetValue(#ng_#, jsFN(n));
  • #ng_#.value = jsFN(n);
  • control_SetValue(#ng_#, jsFN(1.23));
  • #ng_#.value = jsFN(1.23);
  • var ok = jsIsNumber(#ng_#.value);
  • var s = jsNumberInWords(12345.678, 'cs');
  • var s = jsFormatCurrency(1100.5412, 'Kč');

4.1.6. Datumy

  • var date = Str2Date(control_GetValue(#ng_#));
  • var date = Str2Date(#ng_#.value); // Pozor, nefunguje u datumu včetně času – čas je umístěn v jiném textovém poli než samotné datum
  • control_SetValue(#ng_#, date);
  • #ng_#.value = Date2Str(date); // Pozor, nefunguje u datumu včetně času – čas je umístěn v jiném textovém poli než samotné datum
  • control_SetValue(#ng_#, '1.1.2000');
  • control_SetValue(#ng_#, '1.1.2000', '12:34');
  • control_SetValue(#ng_#, new Date());

4.1.7. Časy

  • var n = Time2Int(control_GetValue(#ng_#));
  • var n = Time2Int(#ng_#.value);
  • control_SetValue(#ng_#, Int2Time(n));
  • #ng_#.value = Int2Time(n);
  • control_SetValue(#ng_#, '12:23');
  • #ng_#.value = '12:23';
  • var s = jsFormatTime(new Date());
  • InsertTime(#ng_#);

4.1.8. E-maily

  • var s = control_GetValue(#ng_#);
  • var s = #ng_#.value;
  • control_SetValue(#ng_#, s);
  • #ng_#.value = s;
  • control_SetValue(#ng_#, 'info@netgenium.com');
  • #ng_#.value = 'info@netgenium.com';
  • var ok = jsValidateEmails('i@netgenium.com, n@netgenium.com; f@netgenium.com');
  • var ok = jsValidateEmails('info@netgenium.com');

4.2. Serverové funkce

4.2.1. Obecné funkce

  • SCHEDULEDEFAULTVALUE(ng_, #ng_#)
  • FORMATSTRING({0} – {1}, A, B)
  • REQUESTQUERYSTRING(abc)
  • SUBSTRING(abc, 0, 1)

4.2.2. Celá čísla

  • SUBSTRACTINTEGERS(10, 1)

4.2.3. Desetinná čísla

  • COMPAREDOUBLE(1, <, 2, Ano, Ne)
  • FORMATDOUBLE(1000)
  • FORMATDOUBLE(1000, EUR)

4.2.4. Měny

  • FORMATCURRENCY(1000)
  • FORMATCURRENCY(1000, EUR)

4.2.5. Datumy

  • ADDTIMESPANINWORDS(#today#, 1 month)
  • ADDTIMESPANINWORDS(#today#, 1 month, 2 days)
  • COMPAREDATE(#today#, <, #now#, Ano, Ne)
  • FORMATDATE(#today#)
  • FORMATDATE(#today#, dd.MM.yyyy)
  • FORMATDATES(abc #today# def, true, true)
  • SUBSTRACTDATES(#today# + 14, #today#)

4.2.6. Časy

  • FORMATTIME(1000)
  • INT2TIME(480)
  • TIME2INT(08:00)

4.2.7. E-maily

  • EMAIL(#loginname#)
  • EMAIL(#userid#)
  • EMAILS(1, 2, 3)
  • EMAILS(loginname1, loginname2, loginname3)
  • VALIDEMAIL(info@netgenium.com)