Parametry spuštění (dříve Pojmenované skripty)
Parametry spuštění (dříve tzv. Pojmenované skripty) jsou definice běžných ABRA výrazů (expressions), které mají přiřazeno určité jméno. Jsou definované v rámci definic tisk. sestav či exportů. Jedná se v zásadě o nějaký výraz, který se v rámci zpracování výstupu vyhodnotí a vrátí nějaký výsledek. Výsledkem může být např. jméno souboru, název tiskové sestavy, ale i např. adresa firmy použité v hlavičce tištěného dokladu, e-mailová adresa, na kterou má být výstup zaslán apod. Příslušný výsledek se použije při zpracování konkrétního tiskového výstupu.
Existují 2:
- S defaultní hodnotou - tyto jsou nadefinované přímo v programu a platí pro všechny tisk. sestavy/exporty, přičemž není nutné je přímo v definici tisk.sestavy/exportu definovat. Např. FILENAME, BASENAME.
Pokud ale v definici sestavy resp. definovatelného exportu je definován parametr spuštění téhož jména, pak tato definice "přebije" definici defaultní.
-
Bez defaultní hodnoty - ostatní, které nejsou výrobcem určené pro nějaké konkrétní použití a tudíž nemají dodávanou defaultní hodnotu. Tyto musí být nadefinované v definici konkrétní tisk. sestavy/exportu a platí jen pro daný tiskový výstup. Např. EMAIL, EMAIL_SUBJECT aj.
Tyto lze definovat:
- Pro tiskové sestavy v rámci definice Vlastností sestavy - Parametry spuštění
- Pro definovatelné exporty v rámci definice Vlastností def. exportu - Parametry spuštění
Např.:
- Při odesílání výstupu e-mailem
Při odesílání výstupu e-mailem se výsledky parametrů spuštění (pojm. skriptů) pro daný výstup mohou předávat jako parametr e-mailovému klientovi (např. e-mailová adresa, na kterou je výsledek tisku zasílán, jméno souboru přílohy apod.)
- V příkazové řádce
- v rámci použití příkazů u tisk. sestav
- v rámci použití příkazů v def. exportů
V příkazové řádce je možné použít tzv. "divoké proměnné". Pro každou takovou proměnnou musí existovat parametr spuštění (pojmenovaný skript) téhož jména, jako je jméno divoké proměnné (buď to může být parametr spuštění (pojm. skript) s defaultní hodnotou nebo to musí být parametr spuštění (pojm. skript) definovaný v sestavě resp. exportu). Hodnota vzniklá po vyhodnocení daného parametru spuštění (pojm. skriptu) pak bude dosazena za příslušnou divokou proměnnou:
c:\Program Files\Adobe\Reader 11.0\Reader\AcroRd32.exe %FileName%
Příklad příkazové řádky s příkazem zadaným před exportem s divokou proměnnou FILENAME. Způsobí otevření aplikace Notepad z definované cesty a v ní pak soubor s daty, která budou výsledkem zvoleného def. exportu
V příkazové řádce lze jako divoké proměnné použít i parametry spuštění defaultně dodávané pro odesílání na e-mail (jako např. EMAIL).
Jedná se o parametr spuštění (pojmenovaný skript) s defaultní hodnotou.
Pokud se chcete v rámci zadávaného příkazu odvolat na vytvořený soubor, musíte se odvolat na toto jméno.Každý tvořený soubor (např. uložením tiskového výstupu či zpracováním def. exportu) musí mít definováno jméno. Jméno takového souboru je defaultně generováno systémem do dočasného adresáře tak, aby bylo jednoznačné. Pro akci odvolání se na jméno takového dočasného souboru v příkazu je určen právě parametr spuštění FILENAME, který jako hodnotu vrací právě defaultně přidělené jméno souboru, které přiděluje ABRA Gen (pro generování defaultního jména ABRA Gen používá interní identifikátor GUID).
Objasníme na příkladu:
U dokladů Faktura vydaná si nastavíme, že po uložení chceme Tisknout rovnou do souboru (např. formátu pdf). Po uložení do souboru ale ještě budeme chtít zavolat prohlížeč *.pdf souborů Acrobat Reader pro vizuální kontrolu výstupu. Pak může příkaz vypadat např. následovně:
c:\Program Files\Adobe\Reader 11.0\Reader\AcroRd32.exe %FileName%
Pak se po uložení dokladu tento uloží do dočasného adresáře Windows (např. c:\users\jan.novak\appdata\local\temp\)) a vyvolá se prohlížeč pdf souborů, kde je zobrazen vytištěný doklad.
Pokud chcete soubor mít uložen pod jiným názvem, můžete to provést např. tak, že si v příkazu zavoláte nějakou dávku (*.bat), které jako parametr přidáte defaultně generovaný název souboru a ve kterém si nadefinujete přejmenování daného souboru, např. na soubor jiného typu, uložení do zadané cesty apod.
U faktur vydaných si nastavíme, že po uložení chceme Tisknout rovnou do souboru (např. formátu pdf). Po uložení do souboru ale ještě budeme chtít, aby se přejmenoval a uložil jinam. Pak může příkaz vypadat např. následovně:
c:\rename.bat %FileName%
Přičemž *.bat dávka může definovat
@echo off
set JmenoSouboru=%1
echo Toto je vytvorene jmeno souboru: %JmenoSouboru%
pause
copy %JmenoSouboru% c:\report\faktura.pdx
Pak se po uložení dokladu tento uloží do dočasného adresáře Windows (např. c:\users\jan.novak\appdata\local\temp\) a soubor s fakturou se uloží do adresáře c:\report pod názvem "faktura.pdx".
Pokud byste chtěli, aby systém ABRA Gen ukládal rovnou soubor do jiného formátu a cesty, pak si do dané tisk. sestavy můžete jednoduše nadefinovat svůj vlastní parametr spuštění FILENAME tak, aby se generovalo jméno souboru dle vašich potřeb. Tato definice pak pro danou sestavu resp. export "přebije" parametr spuštění FILENAME defaultně dodávaný. (Viz výše Parametry spuštění sdefaultní hodnotou.)
Objasníme na příkladu:
Do sestavy si nadefinujeme parametr spuštění (pojm. skript) jména FILENAME s jednoduchou definicí:
'c:\report\zaloha.pdf'
Do příkazové řádky v rámci Nastavení tisku do souboru po uložení příkaz:
c:\Program Files\Adobe\Reader 11.0\Reader\AcroRd32.exe %FileName%
Pak se po uložení dokladu vyvolá tisk dané tisk. sestavy do souboru, tisk se uloží do souboru C:\report\zaloha.pdf a vyvolá se prohlížeč pdf souborů, kde je k dispozici vytištěný doklad.
Jedná se o parametr spuštění (pojmenovaný skript) s defaultní hodnotou.
Je určen pro odesílání výstupu e-mailem. Slouží pro získání názvu přiloženého souboru, ke kterému se připojí přípona odpovídající zvolenému formátu. Tisk se v tomto případě provádí do souboru náhodného jména, který se následně přejmenovává na jméno dané definicí parametru spuštění BASENAME.
Pokud tisk. sestava odesílá opakovaně (např. pro různé doklady), pak vzniká opakovaně soubor téhož jména. V takovém případě je původní soubor (z předchozího tisku) nahrazen novým. Tj. pokud soubor s daným jménem už existuje (tedy přejmenování se nepovedlo), provede se překopírování a pak odstranění kopírovaného souboru. Jistá nevýhoda tohoto řešení je v tom, že pokud se soubor nepodaří překopírovat (např. pokud je otevřen nějakou aplikací), pak systém nahlásí chybu a nelze v tisku pokračovat.
Pokud není parametr spuštění BASENAME v rámci dané tisk. sestavy/exportu definován, použije se defaultně vrácená hodnota.
Defaultní hodnota záleží na výběru možnosti z dialogu Zvolte co tisknout:
- Aktuální záznam - DisplayName tohoto záznamu, tj. například "FV-1_2018.pdf" (lomítko je nahrazené podtržítkem, protože lomítko není možné používat v názvech souborů)
- jiná možnost - název tiskové sestavy doplněný zprava o řetězec s datem a časem vzniku souboru ve formátu "-yyyy_mm_dd hh-nn". Např. výtisk faktur vydaných posílaných e-mailem se bude jmenovat "Formulář faktury vydané-2017_12_20 18-05.pdf".
Jistá nevýhoda tohoto řešení je v tom, že se v dočasném adresáři "množí" odesílané soubory.
Jedná se o parametr spuštění (pojmenovaný skript) bez defaultní hodnoty, tudíž musí být definován v rámci definice tisk. sestavy/exportu.
Je určen pro odesílání výstupu e-mailem. Slouží pro získání adresy příjemce, kterému má být zaslán e-mail.
V rámci některých defaultně dodávaných tiskových sestav (např. tisk dokladu Faktura vydaná) je již předdefinován od výrobce.
Vystavené faktury budeme chtít tisknout do souboru a odesílat klientům e-mailem, e-mailovou adresu chceme zjišťovat z údajů provozovny firmy uvedené na dokladu. Pro maximální automatizaci celého procesu si v agendě faktur vydaných ve funkci Nastavení tisku po uložení definujeme, že po uložení faktury se má Odeslat výstup mailem, zvolíme formát, např. pdf a zvolíme příslušnou tiskovou sestavu. V rámci vlastností tisk. sestavy, kterou pro tisk dokladu budeme používat, musí být definován skript se jménem EMAIL, který bude danou adresu zjišťovat:
Příklad nadefinovaného skriptu pro vrácení e-mailové adresy.
Jako náhrada za funkci "NxGetDefaultEmail" by se do pojmenovaného skriptu EMAIL mohla využít rovnou QuickReports funkce "NxEmailAddressesDialog", která zobrazuje dialog Kontakty dle omezení pro výběr e-mailové adresy interaktivně (což je to samé chování, jako když má parametr Pořadí pro určení e-mailu při odeslání dokladů hodnotu Interaktivně). To byste využili tehdy, pokud byste nechtěli mít obecně v daném parametru hodnotu Interaktivně (aby se dialog nenabízel vždy), ale přitom aby se nabídl např. jen při odesílání vybraných tisk. sestav.
Tentýž skript ale může být samozřejmě využit i v rámci použití příkazů pro náhradu divokých proměnných (viz výše Použití pojmenovaných skriptů). Příkladem může být rovněž odeslání výstupu e-mailem, které ale budeme realizovat zadaným příkazem při uložení Tisku do souboru v rámci funkce Nastavení tisku po uložení. Pokud tedy máte k dispozici nástroj, který umí odeslat mail na definovanou adresu s vytvořeným souborem jakožto přílohou, můžete si do příkazu nadefinovat spuštění takového nástroje s divokou proměnnou %EMAIL%.
Skript nadefinovaný výše můžeme využít i pro nahrazení divoké proměnné téhož jména v příkazové řádce. Můžeme tak zajistit jiný způsob odeslání e-mailu. Pak musíme k dispozici nějaký program, který umí odeslat mail na definovanou adresu s vytvořeným souborem jakožto přílohou. Využít můžete např. aplikaci BLAT.exe nebo aplikaci MAPISend.exe, které jsou zdarma dodávány jako součást instalace, ale můžete využít i libovolný jiný svůj vlastní. Pokud použijeme Blat.exe a máme jej již správně nakonfigurován, pak může příkaz vypadat např. následovně:
blat c:\email.txt -to %Email% -attach %FileName%
Další příklady viz popis aplikace Blat.exe a popis aplikace MAPISend.exe.
Jedná se o parametr spuštění (pojmenovaný skript) bez defaultní hodnoty, tudíž musí být definován v rámci definice tisk. sestavy/exportu.
Je určen pro odesílání výstupu e-mailem. Slouží pro získání adresy příjemce, kterému má být zaslána kopie e-mailu.
Jedná se o parametr spuštění (pojmenovaný skript) bez defaultní hodnoty, tudíž musí být definován v rámci definice tisk. sestavy/exportu.
Je určen pro odesílání výstupu e-mailem. Slouží pro získání adresy skrytého příjemce, kterému má být zaslána kopie e-mailu.
Jedná se o parametr spuštění (pojmenovaný skript) s defaultní hodnotou.
Defaultně vrací název tiskové sestavy/exportu.
Je určen pro odesílání výstupu e-mailem. Slouží pro získání textu do položky "Předmět" nového vytvářeného e-mailu.
Jedná se o parametr spuštění (pojmenovaný skript) bez defaultní hodnoty, tudíž musí být definován v rámci definice tisk. sestavy/exportu.
Je určen pro odesílání výstupu e-mailem. Slouží pro získání "těla" nového vytvářeného e-mailu, typicky nějakého textu.
Není-li parametr použit, tělo mailu se získává z položky Výchozí text v nastavení e-mailového účtu (je-li vyplněna).
V systému se mohou vyskytnout dle potřeby ještě další parametry spuštění (pojmenované skripty). Např.:
- CommDocDescription - Musí být definován v rámci definice tisk. sestavy resp. def. exportu. Je určen pro předvyplnění položky Popis v rámci tvorby Dokumentu z definovatelného exportu.
- CommDriver - Určen pro specifikaci ovladače, který má být použit pro zpracování daného exportu. Musí být tedy definován přímo v rámci daného exportu.
Využíval se do v. 9.02 včetně, kdy se z definovatelného exportu tvořil tzv. Doklad komunikace a kdy bylo nutné podle typu exportu zvolit příslušný ovladač. Aby uživatel snadněji vybral správný ovladač pro daný typ exportu (např. při exportu RELDP ovladač pro RELDP), byl v definicích exportů nastaven ovladač, který se má pro daný export použít (předvyplnit) pomocí parametru spuštění (pojm. skriptu) "CommDriver". (Ovladače jsou vnitřně identifikovány pomocí CLSID třídy driveru, jméno driveru zobrazované uživateli se pak odvozuje z jeho registrace v repozitoři.)
Od v. 9.03 byla agenda Doklady komunikace zrušena a nahrazena agendou Dokumenty. Z daného exportu lze tedy vytvořit dokument do agendy "Dokumenty" a to dokument zvolené kategorie. Další zpracování dokumentu s daným exportem opět zajišťuje příslušný ovladač (driver), viz Zpracování dokumentů, ale ten je určen už v rámci definice zvolené kategorie dokumentu. Uživatel tedy před tvorbou dokumentu nevolí přímo ovladač, ale volí kategorii dokumentu, přičemž kategorie dokumentu se předvyplňuje podle toho, jak je zadána v položce Kategorie dokumentu v definici exportu.