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.