1. Základní informace
Export dat z DataGridu umožňuje uživatelům stáhnout zobrazovaná data nahlížecí tabulky do souboru ve zvoleném formátu. Export je dostupný prostřednictvím ikony v záhlaví nahlížecí tabulky a lze jej zakázat pomocí nastavení ovládacího prvku DataGrid (viz Nahlížecí stránka - DataGrid).
Export je dostupný pouze v těchto případech:
- Je nastaven platný databázový dotaz (zdroj dat datagridu).
- Nebo se jedná o historický pohled na záznamy.
2. Formáty exportu
V dialogu exportu jsou uživateli nabídnuty tyto formáty:
2.1. XLSX (MS Excel)
- Výchozí formát při otevření dialogu exportu.
- Generuje soubor formátu Office Open XML (.xlsx).
- Podporuje volbu zápatí se součty sloupců.
- Po úspěšném exportu spouští externí funkci „NETGenium.DataGrid2Excel" s parametry: cesta k souboru, identifikátor dotazu, ID formuláře, datum od, datum do.
- Pokud počet sloupců nebo řádků překročí limity definované v konfiguračních souborech „MaxExcelColumns.txt“ a „MaxExcelRows.txt“ umístěných v adresáři „Config“, export se automaticky přepne na formát CSV.
2.2. XLS (MS Excel 97-2003)
- Generuje soubor formátu BIFF8 (.xls).
- Podporuje volbu zápatí se součty sloupců.
- Podléhá stejnému automatickému přepnutí na CSV jako formát XLSX v případě překročení limitů.
2.3. CSV
- Hodnoty jsou odděleny středníkem (;).
- Kódování souboru je UTF-8.
- Hlavička souboru obsahuje názvy sloupců.
- Textové hodnoty jsou uzavřeny do uvozovek dle standardu CSV.
- Formát CSV je také cílový formát při automatickém přepnutí z XLSX nebo XLS.
2.4. DOCX (MS Word)
- Generuje soubor formátu Office Open XML (.docx).
- Data jsou vložena jako tabulka.
2.5. DOC (MS Word 97-2003)
- Generuje soubor formátu DOC (.doc).
- Data jsou vložena jako tabulka.
2.6. HTML
- Generuje soubor HTML obsahující data nahlížecí tabulky jako HTML tabulku.
- Hodnoty jsou před zápisem převedeny dle nastavení voleb exportu (cizí klíče, přílohy, tagy).
2.7. TXT
- Generuje textový soubor s daty nahlížecí tabulky.
- Hodnoty jsou před zápisem převedeny dle nastavení voleb exportu.
- Kódování souboru je UTF-8.
2.8. SQL
- Generuje textový soubor se SQL příkazy.
- Pokud databázový dotaz nepoužívá joiny (JOIN), generují se INSERT příkazy pro každý řádek dat.
- Pro každý sloupec s neprázdným databázovým názvem je vygenerován výpis ve formátu: „sloupec = (hodnota1, hodnota2, …)" — jeden řádek na sloupec, hodnoty odděleny čárkou.
- Podporované datové typy hodnot: String (uvozovky), Integer, Long (celá čísla), Double (desetinná čísla), Date (formát databáze).
- Hodnota NULL je zapsána jako literál „NULL".
- Kódování souboru je UTF-8.
2.9. C#
- Generuje textový soubor s C# kódem reprezentujícím data jako kolekci List<object[]>.
- Každý řádek dat je převeden na array.Add(new object[] { … });.
- Podporované datové typy hodnot: String (escapované uvozovky), Integer, Long, Double, DateTime.
- Hodnota NULL je zapsána jako DBNull.Value.
- Výsledný soubor je uložen s příponou .txt.
- Kódování souboru je UTF-8.
2.10. Přílohy (ZIP)
- Exportuje fyzické soubory příloh ze všech sloupců typu Příloha (File).
- Soubory jsou zabaleny do ZIP archivu.
- Název každého souboru v archivu je ve formátu: ID-{id záznamu}-{název sloupce}-{název souboru}.
- Z názvů souborů v archivu je automaticky odstraněna diakritika.
- Pokud žádný sloupec neobsahuje přílohy nebo všechny přílohy chybí na disku, export skončí chybou.
2.11. XML
- Generuje soubor XML se schématem (XmlWriteMode.WriteSchema).
- Pro sloupce typu RichTextBox jsou obrázky ve výchozím stavu exportovány (převedeny přes Attachment.ExportImages).
- Pro sloupce typu Příloha je do datasetu přidán pomocný sloupec „{název sloupce} (Path + FileName)" obsahující cestu k souboru a název souboru oddělené tabulátorem.
- Názvy sloupců v XML jsou upraveny tak, aby byly unikátní.
2.12. XML + Base64 přílohy (XML2)
- Dostupné pouze pro uživatele s administrátorskými právy.
- Funguje stejně jako formát XML, ale pro sloupce typu Příloha přidává pomocný sloupec „{název sloupce} (Path + FileName + Base64)" obsahující cestu k souboru, název souboru a Base64 obsah souboru, vše oddělené tabulátorem.
- Pokud soubor přílohy nelze přečíst, je Base64 část vynechána a sloupec obsahuje jen cestu a název.
- Výsledný soubor je uložen s příponou .xml.
3. Možnosti exportu
V dialogu exportu jsou k dispozici tyto volby:
3.1. Všechny sloupce
- Pokud je zaškrtnuto, exportují se všechny sloupce databázové tabulky, nejen sloupce aktuálně zobrazené v nahlížecí tabulce.
- Pro historické pohledy je tato volba vždy automaticky zapnutá a nelze ji měnit.
- Pokud má nahlížecí tabulka zakázané přizpůsobení (DenyCustomization), tato volba je automaticky vypnutá bez ohledu na zadání uživatele.
3.2. Zakázat ngef
- Pokud je zaškrtnuto, hodnoty sloupců nejsou při exportu transformovány přes ngef funkce.
3.3. Odstranit HTML tagy
- Pokud je zaškrtnuto, jsou z hodnot odstraněny HTML tagy před zápisem do výstupního souboru.
- Platí pro formáty: XLSX, XLS, CSV, HTML, TXT.
3.4. Cizí klíče jako celá čísla
- Pokud je zaškrtnuto, jsou hodnoty sloupců s cizím klíčem (ForeignKey) exportovány jako číselné identifikátory místo zobrazovaného textu.
3.5. Přílohy jako celá čísla
- Pokud je zaškrtnuto, jsou hodnoty sloupců s přílohami (File) exportovány jako číselné identifikátory místo názvů souborů.
3.6. Zobrazit zápatí
- Dostupné pro formáty XLSX a XLS.
- Pokud je zaškrtnuto, je do exportovaného souboru přidán řádek zápatí s agregovanými hodnotami (součty apod.) pro každý sloupec, u kterého zápatí není skryté.
4. Automatické přepnutí formátu
- Pokud je zvolen formát XLSX nebo XLS a zároveň platí alespoň jedna z podmínek:
- Počet exportovaných sloupců překračuje limit definovaný v konfiguračním souboru „MaxExcelColumns.txt“ v adresáři „Config“.
- Počet exportovaných řádků překračuje limit definovaný v konfiguračním souboru „MaxExcelRows.txt“ v adresáři „Config“.
- Dojde k automatickému přepnutí exportu na formát CSV.
- K přepnutí dochází před vygenerováním souboru.
5. Logování exportů
- Každý provedený export je automaticky zaznamenán do protokolu aplikace.
- Jsou zaznamenány dva záznamy: jeden po provedení databázového dotazu (s počtem řádků a textem dotazu), druhý po vygenerování souboru (s počtem řádků a názvem souboru).
- Zaznamenávají se: jméno uživatele, doba trvání operace, počet dotčených řádků, text dotazu nebo název vygenerovaného souboru.
6. Bezpečnost
- Přístup k exportu je zabezpečen šifrovaným parametrem v URL.
- Kontrola přihlášení a ochrany před Session Fixation probíhá při každém požadavku.
- Export lze zakázat na úrovni nahlížecí tabulky zaškrtnutím pole „Zakázat export dat" v nastavení ovládacího prvku DataGrid.
- Formát XML2 (s Base64 obsahem příloh) je dostupný výhradně uživatelům s administrátorskými právy.