1. Základní informace
1.1. Popis ovládacího prvku
File je ovládací prvek určený k vložení souborové přílohy pomocí tlačítka „Procházet…”. Maximální velikost vkládané souborové přílohy může být omezena na předem stanovenou velikost. File používá databázový typ „int”, a do databáze ukládá ID souborové přílohy, která je fyzicky uložena na disku v adresáři „Files”, a popisné údaje s názvem souboru a jeho velikostí má uložené v samostatném záznamu v databázové tabulce „sfiles”.
1.2. Vytvoření nového ovládacího prvku
- Detailní popis vytváření nových ovládacích prvků v editačním formuláři je uveden v samostatné příručce Vytváření ovládacích prvků editačního formuláře.
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í file má za následek nevratné smazání databázového sloupce spojeného s tímto file v databázi, a tudíž i ke smazání jeho hodnot ve všech záznamech databázové tabulky, a zároveň i ke smazání všech souborových příloh, které tyto záznamy reprezentují.
2. Seznam záložek v dialogu nastavení ovládacího prvku
- Obecné – Nastavení obecných vlastností
- Šablony – Nastavení šablon
- Tisk do šablony – Nastavení tisku do šablony
- 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é”

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 ovládacího prvku.
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. Maximální velikost
- Maximální velikost nahrávaného souboru v MB, který je uploadován použitím tlačítka „Procházet…”.
- Soubory větší než nastavená maximální velikost, jsou automaticky zahazovány.
2.1.5. Možnosti
- Vyžadované pole
- Zaškrtnutí vyžadovaného pole určuje, zda má být v editačním formuláři vyžadováno vložení souborové přílohy před uložením záznamu 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”.
- Hodnota může být v databázi uložena jako celé číslo 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ě nuly – celého čísla – také databázová hodnota „null”. Taková podmínka může vypadat v řeči NG následovně: file rovná se „0” nebo file není definováno. A nyní v jazyce SQL: ng_file = 0 OR ng_file IS NULL.
- Skrýt tlačítko „Odstranit”
- Zaškrtnutí tohoto pole určuje, zda má být skryté tlačítko „Odstranit”, které slouží k vymazání stávající souborové přílohy uložené v ovládacím prvku. I při skrytém tlačítku „Odstranit” je možné nahrát jinou souborovou přílohu pomocí tlačítka „Procházet…”.
- Skrýt tlačítko „Přejmenovat”
- Zaškrtnutí tohoto pole určuje, zda má být skryté tlačítko „Přejmenovat”, které slouží k přejmenování stávající souborové přílohy uložené v ovládacím prvku.
- Skryté pole
- 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.
- Aktualizovat formulář po uploadu souboru
- Zaškrtnutí tohoto pole určuje, zda má být editační formulář automaticky aktualizován po úspěšném uploadu souborové přílohy, resp. zda mají být aktualizovány všechny ostatní ovládací prvky v editačním formuláři.
2.2. Záložka „Šablony”

2.2.1. Šablony
- Šablony definují seznam tiskových šablon z adresáře „NETGenium\Templates”, ze kterých je možné vybírat při vytváření nové souborové přílohy přímo z ovládacího prvku tlačítkem „Nový”.
- Tiskové šablony musí být uloženy v adresáři „NETGenium\Templates”. Do tohoto adresáře je možné soubory nakopírovat napřímo z plochy serveru, nebo prostřednictvím dialogu pro nastavení NET Genia na záložce „Tiskové šablony”.
- V tiskových šablonách dojde k automatickému nahrazení všech proměnných v editačního formuláře stejně jako je tomu u běžného tisku pomocí tlačítka, viz „Příručka administrátora”.
2.3. Záložka „Tisk do šablony”

2.3.1. Vnořené záznamy
- Vnořené záznamy definují způsob, jakým budou do excelových tiskových šablon propisovány databázové záznamy z nahlížecích tabulek nebo jiných vizuálních ovládacích prvků.
- Vkládat nové řádky – první záznam nahlížecí tabulky bude vložen na místo, kde byly v tiskové šabloně nalezeny proměnné s identifikátory sloupců tabulky. Ostatní záznamy budou vkládány za první řádku tabulky vždy na nově vytvořenou řádku, takže se bude zbytek dokumentu posouvat směrem dolů.
- Přepisovat řádky – první záznam nahlížecí tabulky bude vložen na místo, kde byly v tiskové šabloně nalezeny proměnné s identifikátory sloupců tabulky. Ostatní záznamy budou přepisovat řádky, které se v dokumentu nacházejí za první řádkou tabulky.
- Nastavení vnořených záznamů se týká pouze tiskových šablon Excel nebo ODS (OpenOffice).
2.3.2. Možnosti
- Spustit skript
- Zaškrtnutí tohoto pole určuje, zda má být před tiskem do tiskové šablony spuštěn skript.
- Spuštění skriptu typicky nastavuje hodnoty skriptových proměnných používaných v tiskové šabloně.
- Odkaz „Upravit skript” slouží k otevření integrovaného grafického návrháře skriptů, ve kterém se samotný skript definuje.
- Střídat podbarvení řádků
- Zaškrtnutí tohoto pole určuje, zda má být při tisku záznamů uvnitř tabulek používáno střídavé podbarvování řádek bílou a šedou barvou.
- Nastavení tohoto pole se týká pouze tiskových šablon XLSX, XLSM, XLS nebo ODS.
- Dle hodnot prvního sloupce
- Jen ve spojení s možností „Střídat podbarvení řádků”
- Zaškrtnutí tohoto pole určuje, zda má být podbarvování řádek závislé na hodnotě prvního sloupce tištěné tabulky – řádky se stejnou hodnotou prvního sloupce budou mít stejné podbarvení.
- Nastavení tohoto pole se týká pouze tiskových šablon XLSX, XLSM, XLS nebo ODS.
- Zamknout dokument
- Zaškrtnutí tohoto pole určuje, zda má být vytištěný dokument uzamčen pod náhodným heslem.
- Nastavení tohoto pole se týká pouze tiskových šablon XLSX, XLSM, XLS, ODS, DOCX, DOCM, DOC, ODT nebo PDF.
2.4. Záložka „Tlačítko”

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');
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”

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”

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.
- V rozbalovacím seznamu filtru se nezobrazují konkrétní hodnoty přítomné v databázi ve sloupci spojeném s tímto ovládacím prvkem, pouze možnosti
- Hledat – vyhledávání záznamů v databázi, které mají v názvu souborové přílohy uloženou hledanou hodnotu, nebo v případě zapnutého indexování souborových příloh i v jejím obsahu.
- Prázdný – vyhledání záznamů v databázi, které mají ve sloupci spojeném s tímto ovládacím prvkem uloženou hodnotu 0 nebo databázovou hodnotu „null”
- Neprázdný – vyhledání všech ostatních záznamů v databázi
2.7. Záložka „Práva”

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”

- 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, zda mají být záznamy v nahlížecí tabulce po zadání hledaného výrazu či slovního spojení v databázi ve sloupci spojeném s tímto ovládacím prvkem vyhledávané – jak podle názvu souborové přílohy, tak podle obsahu souboru (pokud je v nastavení NET Genia zvolen fulltextový katalog).
- 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ů.
- 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ů.
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.
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.
2.9. Picker
- Pro konfiguraci pickeru na tomto ovládacím prvku slouží ikona lupy, umístěná v levém dolním rohu dialogu.
- Detailní popis pickeru je uveden v samostatné příručce Picker.
2.10. Tlačítka „Uložit“, „Uložit a pokračovat v editaci“, „Kopírovat, „Smazat“ a „Zavřít“
- Tlačítko „Uložit” – Uložení změn v nastavení ovládacího prvku.
- Tlačítko „Uložit a pokračovat v editaci“ – Uložení změn v nastavení ovládacího prvku a ponechání nastavení otevřeného pro další úpravy.
- Tlačítko „Kopírovat“ – Vytvoření nové kopie aktuálního ovládacího prvku se shodným nastavením, avšak s novým jedinečným identifikátorem.
- Tlačítko „Smazat” – Trvalé odstranění ovládacího prvku.
- Tlačítko „Zavřít” – Zavření dialogu s nastavením ovládacího prvku bez uložení změn.
3. Příklady
3.1. Javascriptové funkce
- var s = control_GetValue(#ng_#);
- var filename = #ng_#.getAttribute('title');
- var size = jsN(#ng_#.getAttribute('size'));
- control_Disable(#ng_#); // Obecná javascriptová funkce pro všechny databázové ovládací prvky
- file_Disable(#ng_#);
- control_Enable(#ng_#); // Obecná javascriptová funkce pro všechny databázové ovládací prvky
- file_Enable(#ng_#);
- picker_Open(#ng_#);
3.2. Serverové funkce
- SCHEDULEDEFAULTVALUE(ng_, #ng_#)
- ATTACHMENT2PDF(#ng_file#)
- ATTACHMENT2PDF(#rootpath#Temp\file.doc)
- ATTACHMENT2PDF(#rootpath#Temp\file.xls)
- ATTACHMENTCONTENT(#ng_file#)
- ATTACHMENTGALLERY(1;2;3, 120, 120)
- ATTACHMENTGALLERY(1;2;3, 120, 120, 5)
- ATTACHMENTNAME(#ng_file#)
- ATTACHMENTURL(#ng_file#)
- COPYATTACHMENT(#ng_file#)
- COPYATTACHMENT(#ng_file#, #rootpath#Temp)
- CREATEATTACHMENT(data:image/png;base64,...)