1. Základní informace

  • Tisk do tiskové šablony umožňují tlačítka umístěná v editačním formuláři nebo na nahlížecí stránce.
  • Mezi podporované tiskové šablony patří soubory „xls“, „xlsx“, „doc“, „docx“, „html“, „txt“, „csv“ a „pdf“.
  • NET Genium zpracuje také šablony „htm“, „xlsm“, „ods“, „docm“ a „odt“.
  • Tiskové šablony MS Excel, MS Word a „html“ podporují automatickou konverzi do „pdf“ volbou „Uložit jako PDF“ u tlačítka.
  • Chybí-li soubor šablony, vytiskne se u šablon „txt“, „csv“ a „html“ prázdný dokument; u ostatních formátů skončí tisk chybou.

2. Umístění a správa tiskových šablon

  • 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.
  • Z těchto souborů je následně možné vybírat přímo ve vlastnostech tlačítka zvolenou tiskovou šablonu.

3. Identifikátory a proměnné v tiskových šablonách

  • V tiskových šablonách se používají identifikátory databázových ovládacích prvků a skriptové proměnné. V šablonách „txt“, „csv“ a „html“ se navíc vyhodnocují serverové funkce a systémové proměnné; v šablonách MS Excel a MS Word ne. Vyhodnocují se jen funkce a proměnné zapsané v samotné šabloně – hodnoty dosazené ze záznamů a z proměnných se jako funkce ani proměnné nevyhodnotí, i když takový text obsahují. Funkce zapsaná v šabloně přitom takovou hodnotu dostane jako svůj argument; ani výsledek funkce se už jako funkce ani proměnná nevyhodnotí.
  • Skriptové proměnné je možné naplnit před samotným tiskem pomocí skriptu.
  • Na místo v šabloně, kam je potřeba dosadit hodnoty, se vkládají identifikátory databázových ovládacích prvků nebo názvy proměnných.
  • NET Genium otevře tiskovou šablonu, vyhledá výskyty všech identifikátorů, a nahradí je příslušnými hodnotami.
  • Detailní popis proměnných používaných v tiskových šablonách a možností formátování ovládacích prvků je uveden v samostatné příručce Proměnné.

3.1. Tisk z editačního formuláře

  • Dosazení hodnot databázových ovládacích prvků do tiskové šablony z aktuálně otevřeného záznamu v editačním formuláři používá identifikátory ve zkráceném tvaru ve formátu „#ng_ovládací_prvek#“.
  • Tlačítko s tiskem záznam před tiskem vždy uloží; neuloží ho jen v editačním formuláři bez ukládacích tlačítek nebo pouze pro čtení.

3.2. Tisk z nahlížecích stránek a tabulek

  • Vytisknou se všechny záznamy, které odpovídají podmínkám nahlížecí tabulky a hledání, filtrům a časovému úseku zadaným uživatelem, v jeho řazení – ne jen aktuálně zobrazená stránka. Označené záznamy se při tisku neberou v úvahu. Počet tištěných záznamů omezuje jen volba „Načíst pouze prvních“ databázového dotazu.
  • Tisk záznamů nahlížecí tabulky vyžaduje používání identifikátorů v plném tvaru v následujících možných formátech:

3.2.1. První formát (doporučený)

  • „#DG10#.#ng_ovládací_prvek#“, „#DG11#.#ng_ovládací_prvek#“, atd.
  • Určený a nejvhodnější pro datagridy, používá zapisování pomocí ID datagridu (JavaScriptový název prvku).
  • Tento způsob je stabilnější v případech, kdy se do formuláře přidávají další datagridy a mění se tak jejich pořadí, což by u druhého formátu vedlo ke změně identifikátoru.
  • Zjištění identifikátoru

3.2.2. Druhý formát

  • „#datagrid1#.#ng_ovládací_prvek#“, „#datagrid2#.#ng_ovládací_prvek#“, atd.
  • Formát plného identifikátoru s pojmenováním typu vizuálního ovládacího prvku a s číslem jeho pořadí zohledňuje situace, kdy je v editačním formuláři nebo na nahlížecí stránce umístěno více nahlížecích tabulek se stejným zdrojem dat, jen s různými omezujícími podmínkami.
  • Další příklady: ** „#calendar1#.#ng_ovládací_prvek#“, „#calendar2#.#ng_ovládací_prvek#“, atd. ** „#timetable1#.#ng_ovládací_prvek#“, „#timetable2#.#ng_ovládací_prvek#“, atd. ** „#planner1#.#ng_ovládací_prvek#“, „#planner2#.#ng_ovládací_prvek#“, atd.

3.2.3. Třetí formát

  • „#ng_formulář#.#ng_ovládací_prvek#“.
  • Šablony MS Word tento formát nerozpoznají – používají jen první a druhý formát.

3.3. Chování tisku při použití plných identifikátorů

  • NET Genium rozpoznává výskyt identifikátorů v plném tvaru, a zajistí automatické vkládání hodnot jednotlivých záznamů pod sebe.
  • Jsou-li identifikátory umístěny vedle sebe v jedné řádce, je výstupem tisku tabulka, kde má každý záznam tabulky svůj řádek v tiskové šabloně.
  • Jsou-li identifikátory umístěny vedle sebe ve dvou řádcích, je výstupem tisku tabulka, kde se každý záznam tabulky skládá ze dvou řádek v tiskové šabloně.
  • Opakovaný úsek se liší podle formátu šablony:
    • „html“ – opakuje se jen řádek tabulky („<tr>“), ve kterém identifikátory leží; identifikátory mimo řádek tabulky se neopakují,
    • „txt“ a „csv“ – opakuje se úsek po sobě jdoucích řádků s identifikátory,
    • MS Excel – opakuje se úsek po sobě jdoucích řádků listu,
    • MS Word – záznamy se pod sebe neopakují. Při tisku z editačního formuláře se hodnoty všech záznamů nahlížecí tabulky vloží do jednoho pole oddělené čárkou; při tisku z nahlížecí stránky se každý záznam vytiskne do samostatného dokumentu a dokumenty se stáhnou jako archiv ZIP.

3.4. Specifické scénáře tisku

  • Tisk z nahlížecí stránky, která obsahuje pouze jednu nahlížecí tabulku, nevyžaduje identifikátory v plném tvaru, stačí identifikátory ve zjednodušeném tvaru.
  • Tisk z nahlížecí stránky do šablon „pdf“ a MS Word vytiskne každý záznam první nahlížecí tabulky do samostatného souboru; soubory se stáhnou jako archiv ZIP.
  • Obsahuje-li nahlížecí stránka dvě a více nahlížecích tabulek nad stejným editačním formulářem a šablona MS Excel nepoužívá identifikátory prvního ani druhého formátu („#DG...#.“, „#datagrid...#.“), vytiskne se každá tabulka na samostatnou kopii listu.
  • Tisk statistické nahlížecí tabulky s agregovanými sloupci používá identifikátory sloupců „c0“, „c1“, „c2“ atd., tj. podle jejich pořadí v hlavičce tabulky, s číslováním od nuly.

3.5. Formátování hodnot v tiskových šablonách

  • Tiskové šablony vytvořené v aplikaci MS Word musí mít identifikátory umístěné v poli typu „MergeField“.
  • Hodnoty mohou být v tiskové šabloně formátovány podle šablon pomocí syntaxe „#identifikátor@formát#“.

4. Obrázky v tiskových šablonách ve formátu „html“

  • Tiskové šablony ve formátu „html“ mohou obsahovat obrázky (typicky logo) vložené značkou „<img>“, a to jedním z následujících tří způsobů:
    • Obrázek vložený přímo do šablony jako „data URI“ v kódování base64, např. <img src="data:image/png;base64,..."> — šablona je soběstačná a obrázek se vytiskne při tisku do „html“ i při konverzi do „pdf“. Doporučený způsob.
    • Odkaz na přílohu NET Genia — obrázek se nahraje do NET Genia jako příloha a do šablony se vloží relativní adresa přílohy ve tvaru <img src="Download.aspx?..."> (bez adresy serveru). Při konverzi do „pdf“ vloží NET Genium obrázek do dokumentu automaticky; při tisku do „html“ načítá obrázek prohlížeč přihlášeného uživatele.
    • Absolutní adresa veřejně dostupného obrázku, např. <img src="https://www.example.com/logo.png">.
  • Relativní odkazy na soubory v adresáři „NETGenium\Templates“, např. <img src="Templates/logo.png">, se při konverzi do „pdf“ nevyhodnocují a v NET Genium Online nefungují ani při tisku do „html“, protože adresář „Templates“ není v cloudu přístupný přes prohlížeč. Používejte proto výhradně tři výše uvedené způsoby.

5. Události po tisku

  • Po úspěšném vytvoření tiskové sestavy se automaticky spouští externí funkce „NETGenium.OnAfterPrint“, ve které je možné ovlivnit jak název výsledného souboru, tak i obsah nebo formát souboru.
  • Tiskne-li se každý záznam do samostatného souboru, volá se funkce pro každý záznam zvlášť. Chyba ve funkci tisk přeruší.

5.1. Práva a obsah vytištěného dokumentu

  • Tisková šablona vytiskne každý identifikátor, který obsahuje – i hodnotu ovládacího prvku, na který tisknoucí uživatel nemá právo, nebo jehož hodnotu by kvůli nastavení „Zobrazit hodnotu“ na „Pouze vlastníkovi nebo spoluvlastníkovi záznamu“ neviděl. Obsah vytištěného dokumentu tak určuje autor šablony, nikoli oprávnění tisknoucího uživatele.
  • Formátování hodnot (převod na zobrazovaný text, formát čísla a data) se uplatní jen u ovládacích prvků, na které má uživatel právo; ostatní identifikátory se vyplní hodnotou uloženou v databázi.

5.2. Kódování textových šablon

  • Šablony „txt“ a „csv“ uložené v kódování UTF-8 s BOM se vytisknou rovněž v UTF-8 s BOM. Šablony bez BOM se čtou i vytisknou ve znakové sadě serveru (typicky Windows-1250).

6. Řešení problémů

6.1. Tisk více prázdných stránek u šablon „xls“ a „xlsx“

  • Tiskne-li se s tiskovou šablonou ve formátu „xls“ nebo „xlsx“ více prázdných stránek, znamená to, že se obsah šablony nevejde na šířku stránky a přebývající sloupce se tisknou na samostatné stránky.
  • Řešení: v tiskové šabloně nastavte měřítko tisku na 100 % a zmenšete okraje stránky tak, aby se tisk vešel na šířku jedné stránky. V případě potřeby zmenšete také velikost písma a šířky sloupců.

7. Vztah k další dokumentaci

  • Detailní popis proměnných používaných v tiskových šablonách a možností formátování ovládacích prvků je uveden v samostatné příručce Proměnné.
  • Detailní popis programování tiskových šablon ve formátu „pdf“ je uveden v samostatné příručce Programování tiskových šablon ve formátu PDF.