Jak vytvořit export do Excelu
Připravili jsme pro vás postup na vytvoření exportu dat skladových karet do Excelu. Obdobný postup však lze uplatnit pro export téměř libovolných dat. Příklad předpokládá, že uživatel bude export spouštět ručně výběrem z definice exportů. Dále tento příklad předpokládá, že si uživatel bude tvořit exporty na vlastní disk pod konstantním názvem souboru.
1. Výběr dat, vytvoření nové definice a její vlastnosti
V prvním kroku otevřeme agendu Skladové karty a zde vytvoříme filtr záznamů, které budeme chtít exportovat. Následně stiskneme rozšířenou volbu tlačítka Tisk a zvolíme možnost Export.
Na další obrazovce zvolíme možnost Vše podle definice omezení.
V okně výběru definic stiskneme tlačítko Nový pro vytvoření nové definice.
Otevře se Editor definic exportu, kde klikneme na název Export (viz obrázek), čímž se zobrazí vpravo vlastnosti exportu.
V tomto návodu nastavíme z vlastností jen ty, které jsou pro náš export důležité:
-
Volba Globální - určuje, zda bude export dostupný pro všechny uživatele, kteří mají právo exportovat (volba ANO), nebo zda bude export jen pro nás (volba NE).
-
Název exportu - export si pojmenujeme, abychom věděli, co bude obsahem exportu. V našem případě jsme export pojmenovali Export skladových karet do Excelu.
-
Parametry spuštění - kliknutím na tři tečky otevřeme obrazovku, kde do levé části přidáme kliknutím na tlačítko Přidat parametr FILENAME, a do něj poté v pravé části navolíme cestu, kam budeme chtít soubor exportovat, a koncovku souboru, který si přejeme vytvořit. V našem případě to bude 'C:\Exporty\skladove_karty.xlsx'.
-
Typ exportu - vybereme volbu Excel.
-
Zdroj dat - ponecháme volbu Skladové karty.
Výsledné nastavení vlastností exportu bude jako na obrázku níže, kde jsou jednotlivé volby vyznačeny.
2. Vytvoření hlavičky a jednotlivých prvků
V prvním kroku přidáme tabulku, pod kterou budeme přidávat všechny položky exportu. Klikneme na Export a následně na třetí ikonu odspodu ve svislém panelu.
Do exportu se vloží Tabulka. V její pravé části pod názvem Tabulka je potřeba vybrat, z jaké tabulky datového zdroje budeme data potřebovat. Vybereme první možnost Main=Skladové karty.
Nyní vytvoříme hlavičku exportu, aby se exportovala v prvním řádku Excelu, ještě než se začnou exportovat samotná data. Hlavičku si vytvoříme pod prvkem Skupina. Pokud nechcete nebo nepotřebujete hlavičku vytvářet, můžete tento krok přeskočit.
Nejprve klikneme na druhou ikonu odspodu ve svislém sloupci s nadpisem (hintem) Skupina.
Vytvoří se prvky Hlavička a Patička skupiny. Do hlavičky budeme přidávat jednotlivé názvy sloupců, a to vždy pod sebe. Klikneme na název Hlavička a následně vlevo na svislém panelu vybereme první ikonu odshora Text. Poté v pravé části napíšeme do položky Text požadovaný text, např. v našem případě Kód skladové karty.
Pro přidání dalšího textového popisu hlavičky v dalším sloupci postupujeme stejným způsobem. Nejprve klikneme na položku Hlavička, následně v levém svislém sloupci vybereme ikonu text a vyplníme textový popis. Takto pokračujeme pro hlavičky všech sloupců, které budeme chtít exportovat.
Do položky Název je možné napsat si název pole pro lepší orientaci. V našem případě jsme tam nakopírovali hodnotu z pole Text.
Na obrázku níže již máme vyplněny všechny požadované položky hlavičky včetně vyplněných názvů pro lepší identifikaci.
Pokud potřebujeme, můžeme si udělat testovací export, abychom si ověřili, že se hlavička exportuje přesně podle našich potřeb. Klikneme na tlačítko Ukázka před exportem (první ikona ve vodorovné liště).
Z okna, které se zobrazí, ponecháme vybranou výchozí volbu Otevřít v asociovaném programu a stiskneme OK.
Soubor se otevře přímo v Excelu s vyplněnými položkami hlavičky. V Excelu nemáme zatím žádná data, ta doplníme v dalším kroku.
V dalším kroku již přidáme datové položky, a to buď jako text z databáze, nebo výrazem. Tam, kde nepotřebujeme používat funkce, nám bude stačit Text z databáze. Ten použijeme pro Kód a Název skladové karty.
Nejprve klikneme na tabulku, poté na ikonu Text z databáze ve svislém panelu (třetí ikona odshora).
V pravé části přidané položky klikneme na tři tečky u položky Data.
Otevře se okno s datovým zdrojem, kde klikneme na větev Main a vybereme položku Code (Kód).
Pro přehlednost si do položky název můžeme vyplnit, že se jedná o kód skladové karty, viz obrázek níže.
Stejným způsobem, tedy textem z databáze a výběrem z datového zdroje, připravíme i název skladové karty (položka v datovém zdroji Main.Name) a množství na všech skladech (položka v datovém zdroji Main.QuantitySum).
Nyní klikneme znova na položku Tabulka a vybereme ve svislém panelu Výraz (druhá ikona odshora), jelikož pro zjištění stavu konkrétního skladu budeme potřebovat funkci.
V nově přidané položce Výraz klikneme v pravé části na tři tečky u stejnojmenné položky.
V otevřeném okně klikneme vlevo dole na tlačítko Edituj.
V levé části otevřeného okna dohledáme funkci NxGetAvailableQuantity. Dohledáme ji např. tak, že do pole vyhledávání napíšeme "ava", tak, jak to vidíme na obrázku níže.
Na funkci dvakrát poklepeme levým tlačítkem myši, aby se funkce vložila do pole pro psaní výrazu. Funkce ve svých parametrech vyžaduje ID skladové karty a ID skladu. Protože bychom museli ID skladu složitě dohledávat z agendy Sklady, použijeme další funkci s názvem NxStoreID s parametrem Kód skladu (v našem případě 01), která nám ID skladu vrátí. Poté potvrdíme tlačítkem OK. Zápis obou funkcí bude tedy vypadat následovně.
NxGetAvailableQuantity(MAIN.ID, NxStoreID('01'))
Do pole Název si opět můžeme pro lepší orientaci napsat název výrazu, v našem případě Množství na skladě 01.
Tím máme vyplněné všechny sloupce a můžeme vyzkoušet export do Excelu.
Ověříme si, že v požadované cestě se nám uložil také vytvořený soubor.
Pokud vyexportovaná data vyhovují našim potřebám, uložíme definici exportu a máme hotovo.
3. Formátování čísel a nahrazení znaků
Nad rámec nutného základu výše můžeme dále podobu exportu ještě upravovat. V tomto příkladu si ukážeme nejprve formátování posledního sloupce na dvě desetinná místa, a poté ještě nahrazení oddělovače.
Budeme-li chtít formátovat sloupec s množstvím na skladě 01 na dvě desetinná místa, použijeme funkci FormatNumeric. V této funkci zadáme nejprve v prvním parametru masku, tedy jak budeme chtít formátovat (maska se zadává jako řetězec, tedy do apostrofů) a druhý parametr bude formátované číslo. Celý výraz bude vypadat následovně:
FormatNumeric('0.00', NxGetAvailableQuantity(MAIN.ID, NxStoreID('01')))
Výsledek v Excelu bude vypadat jako na obrázku níže.
Po formátování přes funkci prezentuje Excel čísla jako text (data jsou zarovnána k levému okraji sloupce). Pokud potřebujeme zachovat formát čísla (např. pro nějaké aritmetické operace), musíme použít místo funkce volbu Maska, která formátování provede také, a formát čísla zůstane v Excelu zachován.
V exportu je nyní jako oddělovač desetinného místa použitá čárka. V případě potřeby ji ale můžeme snadno nahradit za tečku a to funkcí NxSearchReplace. Výraz pak bude vypadat následovně:
NxSearchReplace(FormatNumeric('0.00', NxGetAvailableQuantity(MAIN.ID, NxStoreID('01'))), ',', '.', 2)
V Excelu vidíme nahrazení čárky za tečku.
4. Podmínka exportu
Další nepovinnou částí jsou podmínky pro export. V tomto příkladu si ukážeme, jak napsat podmínku, která nám omezí export jen za záznamy, které mají ve sloupci Suma na všech skladech hodnotu vyšší než 100.
Podmínku musíme nastavit (zkopírovat) do všech datových sloupců, aby se neexportovala žádná položka ze záznamu, který podmínku nesplňuje. Podmínku nejprve nastavíme např. na položku Kód skladové karty. Podmínku budeme zadávat do pole Podmínka pro export kliknutím na tři tečky.
V otevřeném okně klikneme na tlačítko Edituj a v otevřeném okně v pravé části z datového setu ze sekce Main vybereme volbu QunatitySum a dvakrát klikneme myší. Ve výrazu tedy budeme mít MAIN.QuantitySum. K tomu musíme přidat podmínku, že chceme jen záznamy vyšší než s množstvím 100. Celý výraz bude vypadat následovně:
MAIN.QuantitySum>100
Aby došlo k odstranění kompletního řádku záznamu, kde není podmínka splněna, musíme tento výraz nakopírovat do všech zbývajících datových položek. Po nakopírování bude definice vypadat jako na obrázku níže.
Výsledek v Excelu bude bez skladových karet s množstvím menším než 100.