Definiční soubor tiskových sestav

Z K.A.P.
Skočit na navigaciSkočit na vyhledávání

Systém Sklad6 i Účto používá při vytváření některých sestav definiční soubor tiskových sestav. Soubor má obvykle jméno SKLAD-??.DEF (popř. UCTO-??.DEF), kde místo znaků ?? je zkratka firmy, která systém Sklad6 používá. V dokumentaci je obvykle označován jako definiční soubor nebo zkráceně DEF soubor.

V souboru jsou např. uloženy definice těchto sestav :

  1. Definice všech formulářů pro tisk zaevidovaných dokladů (např. definice tiskové podoby faktur, převodek, dodacích listů, příjemek, doklady na obaly a chystačky apod.); jedna definice může být společná pro více typů dokladů (např. faktury a dobropisy mohou mít společnou definici);
  2. Definice soupisu daňových dokladů, definice nakládacího listu
  3. Definice tisku na obálky ze seznamu adres a z dokladů
  4. Definice hromadného příkazu k úhradě
  5. Objednávky, požadavky, seznamy a sestavy z objednávek a požadavků
  6. Formulář pro tisk hlavičky karty a pohybů na kartě; formulář pro tisk štítků z karet
  7. Definice nabídkových listů (seznamů skladových karet)
  8. Definice některých výpočtových sestav (prodej za období, kontrola záruční doby, zisk za faktury, nákupy a prodeje, součty dokladů a další)
  9. Definice sestav z obalového konta, definice inventurních sestav
  10. Definice sekce pro tisk na poštovní složenku typu A (optimalizováno pro jehličkové tiskárny) - sekce DobírkaF
  11. seznam vratných obalů pro zrychlenou práci s vratnými obaly (není to sestava)
  12. Proměnné
    #x , kde x je číslo proměnné definované ve struktuře souborů viz. Systémové menu
  13. Výrazu
    #{výraz}, výraz je vyhodnocen podle aktuálních hodnot. Ve výrazu můžeme použít proměnné a funkce

V definčním souboru sestav můžeme nadefinovat nebo opravit formulář pro tisk na tiskárnu. Formulář je vytištěn přesně tak, jak je zde nadefinován - proměnné a výrazy jsou nahrazeny skutečnými hodnotami.

Definiční soubor je rozdělen na sekce. Každá sekce má svůj název, který je ohraničený v hranatých závorkách. Např. [FakturaA] je název sekce obvykle používaný při tisku faktur. Název sekce lze měnit jen u definice faktur (popř. definice nabídkových listů), ale je pak nutné změnu promítnout také v nastavení typů dokladů.
Řádky dané sekce se do sestavy tisknou v tom pořadí, v jakém jsou uvedeny v definičním souboru. Výjimečné postavení mají řádky začínající jedním z následujících výrazů (u těchto řádků řídí pořadí a počet opakování program):

.ZS začátek sestavy; takto začínající řádky se chovají jako řádky bez tohoto výrazu, tzn. že se tisknou pouze jednou a to na začátku sestavy
.HH horní hlavička 1; řádek se opakuje na začátku každé stránky
.H2 horní hlavička 2; řádek se opakuje na začátku každé stránky počínaje druhou stranou sestavy
-HH horní hlavička sloupce; nadpis sloupce u vícesloupcových ceníků (číslo strany se zadává symbolem {PAGE}
.DH dolní hlavička 1; řádek se opakuje na konci každé stránky
.D2 dolní hlavička 2; řádek se opakuje na konci každé stránky
.KS konec sestavy; řádek se tiskne pouze jednou a to na konci sestavy
.REM poznámka; tyto řádky se netisknou a slouží pouze jako komentář
.KS.GOn tiskne se na konci sestavy, tak aby daný řádek byl vytištěn na řádku n; pokud již sestava obsahuje více než n řádků, pak se tiskne přímo za poslední řádek. Pokud za celým výrazem .KS.GOn následuje středník, pak se text za středníkem opakuje až do řádku n. Pokud je číslo n záporné, pak se počítá jako n řádků od standardního počtu řádků na stránce (dle definované tiskárny).
.Mn obsahuje definice opakovaných nebo speciálně umístěných řádků. Číslo n smí být z rozsahu 0 až 9. Místo tisku a význam těchto řádků je vždy řízen příslušným obslužným programem sestavy; platí však, že program nikdy netiskne doprostřed jednotlivých bloků (.ZS, .HH, .DH, .KS); pomocí těchto řádků jsou definovány např. položky faktury, seznamy faktur v soupisu daňových dokladů apod.
.NP zruší režim stránkování sestavy (není kontrolován přechod na novou stránku a .HH a .DH se tisknou pouze na začátku a na konci sestavy)
.ZB ohraničuje začátek bloku, který musí být vytištěn celý na 1 stránce
.KB ohraničuje konec bloku, který musí být vytištěn celý na 1 stránce
.IF{výraz;řádek} tiskne řádek, pokud je splněna podmínka zadaná pomocí výraz. .IF může být kombinováno s jinými příkazy (např. .HH, .DH, .KS)
.SET#n=výraz nastaví hodnotu proměnné s číslem a na novou hodnotu danou výrazem. Výsledek výrazu se vždy ukládá jako text. Doporučujeme měnit hodnoty pouze pro proměnné s číslem 210 až 240. Příkaz .SET může být použit také současně s příkazy .HH, .DH, .KS, .Mn apod. Např. .M1.SET#211=Str(val(#211)+1,10,0)
.NAME=výraz zapíše do sestavy dolní hlavičku a uloží soubor s rozpracovanou sestavou a veškeré další výstupy do sestavy bude směrovat do nového souboru se jménem určeným dle vyhodnocovaného výrazu výraz. Nový soubor je zahájen horní hlavičkou. Příkaz .NAME nesmí být použit v horní a dolní hlavičce sestavy.
.CPn mění kódovou stránku vytvářené sestavy (0=ASCII, 1=Kamenický, 2=ASCII s rámečky, 3=LATIN2, 4=Windows). Pokud změníte kódování na LATIN2 nebo Windows, pak výslednou sestavu nepůjde správně zobrazit ve skladovém programu (znaky s diakritikou budou „nesmyslné“).
.IF{Výraz,text1,text2} podmínka
.GOx pokusí se přejít na x-tý řádek na stránce (-x je číslo řádku od konce stránky). Pokud je x kladné a aktuální číslo řádku je větší než x (tisk je již za řádkem x), pak se provede odstránkování. Zpravidla používáme v sekci .KS.

V každém řádku mohou být speciální znaky začínající #, které tiskový program transformuje :

#n obsah proměnné s číslem n; proměnné tvoří jádro celého tiskového systému; program před každým tiskem (popř. před každým opakovaným řádkem) nastaví proměnné odpovídající dané sestavě (např. před tiskem faktury nastaví proměnné odpovídající jednotlivým údajům z hlavičky faktury a před každou položkou/operací nastaví proměnné odpovídající jednotlivým údajům z operace a skladové karty). Seznam čísel proměnných a jejich významů pro různé sestavy je obvykle umístěn na konci definičního souboru. Programově je obvykle vazba mezi proměnnými a údaji realizována pomocí souboru "struktur databází", který lze nalézt v menu Další služby/Nastavení programu/Systémové menu/Struktura souborů. Zde můžete nalézt údaj "Proměnná", který obsahuje číslo proměnné v definičním souboru.
# aktuální číslo stránky
#: aktuální číslo stránky formátované na čtyři znaky dorovnané mezerami zleva
#+ číslo následující stránky
#- číslo předchozí stránky
#* celkový počet stran sestavy; doporučujeme za znak * ještě přidat jednu nebo více mezer. To pak umožní tisk celkového počtu stran i u sestav, které mají více než 9999 stran (jinak se celkový počet stran tiskne vždy na 4 znaky se zarovnáním vlevo)
#{výraz} program zpracuje výraz, který je ve složených závorkách a dosadí jeho hodnotu; je možné používat stejné funkce a operátory, jako u vyhledávání pomocí výběrové podmínky nebo jako u generátoru sestav; v rámci výrazu se mohou používat proměnné #n, je však potřeba mít na paměti, že tyto proměnné se vždy chovají jako textové položky (čísla jsou převedena na odpovídající řetězec znaků). Výsledkem výrazu musí být také textový údaj. Příkladem může být výraz #{SETRIGHT(#25,16)} použitý při tisku faktur, který vrací formu úhrady zarovnanou mezerami zleva na 16 míst.
Ve výrazech je možné použít funkci #LINE, která vrací aktuální číslo řádku (možno např. použít pro otestování, zda už se tisk neblíží ke konci stránky) a také funkci #MAX_LINE, která vrácí celkový počet řádků na stránce dle aktuálně nastavené tiskárny.
{$jmeno_souboru_s_obrazkem;w;h} program zobrazí soubor ve formátu bmp nebo jpg na aktuální pozici s šířkou w palců a výškou h palců (1 palec = 25,4 milimetru). Jako oddělovač desetinných míst lze použít tečku nebo čárku. Tisk obrázků lze použít pouze při tisku s použitím grafického ovladače (nastavení tiskárny WIN, v textových režimech např. LPT1 je tisk potlačen - vyjímku tvoří tisk pomocí ovladače DOSEXEC ).
{$jmeno_souboru_s_obrazkem;x;y;w;h} program zobrazí soubor ve formátu bmp nebo jpg na pozici x,y (v palcích) s šířkou w palců a výškou h palců (1 palec = 25,4 milimetru). Jako oddělovač desetinných míst lze použít tečku nebo čárku. Tisk obrázků lze použít pouze při tisku s použitím grafického ovladače (nastavení tiskárny WIN , v textových režimech např. LPT1 je tisk potlačen - vyjímku tvoří tisk pomocí ovladače DOSEXEC )).
{|TypČárovéhoKódu;Kod;w;h} Umožní tisk čárového kódu. Typ čárového kódu může být tento: CODE39, CODE39WCHECK, EAN13, EAN8, ITF, ITFWCHECK, POSTNET, UPCA, CODE128. Pokud není typ uveden, tak se předpokládá EAN13 (resp. EAN8). Pokud není určena šířka nebo výška, tak se použijí automatické hodnoty (1.468" x 1.034" dle normy EAN13 resp. 1.034x0.852 pro EAN8). Tisk čárových kódů lze použít pouze při tisku s použitím grafického ovladače (nastavení tiskárny WIN). w je šířka_v_palcích, h je výška_v_palcích (1 palec = 25,4 milimetru).
znak s ASCII kódem 1: následující znaky se budou tisknout zvýrazněně.
znak s ASCII kódem 2: ruší účinek ☺
znak s ASCII kódem 15: následující znaky budou tisknuty zúženě (kondenz)
znak s ASCII kódem 18:ruší účinek ☼
znak s ASCII kódem 14:následující znaky se budou tisknout dvakrát široké
znak s ASCII kódem 20: ruší účinek ♫
znak s ASCII kódem 4:následující znaky se budou tisknout kurzívou
znak s ASCII kódem 3: ruší účinek ♦
znak s ASCII kódem 5:následující znaky se budou tisknout středním písmem (není podporováno všemi tiskárnami)
znak s ASCII kódem 6: ruší účinek ♣
znak s ASCII kódem 24:horní index
§ znak s ASCII kódem 21: ruší účinek ↑
znak s ASCII kódem 22:dolní index
znak s ASCII kódem 23: ruší účinek ▬
znak s ASCII kódem 29:následující znaky se budou tisknout velkým písmem (dvakrát široké, dvakrát vysoké)
znak s ASCII kódem 30: ruší účinek ↔

Ve Windows verzi je zavedena podpora nových formátovacích značek pro formátování tiskových sestav pomocí definičního souboru. Formátování lze využít pro formuláře, které se netisknou v textovém režimu (ale pouze v grafice). Popis syntaxe: {!formátovací znaky}.

Syntaxe Příklad Popis
\f="název fontu" \f="Arial" název fontu
\s="velikost" \s="12" absolutní velikost
+2 \s+ je totéž jako relativní zvětšení
\s="+1"
-2 \s- je totéž jako relativní zmenšení
\s="-1"
\c="barva fontu rgb" \c="255" barva (desítková hodnota RGB)
\r="znaková sada" \r="238" středoevropská znaková sada (čeština)
\b[+/-] \b+ ... ano tučnost písma
\i[+/-] \i ... ne kurzíva (nakloněné písmo)
\u[+/-] \u ... ano podtržené písmo
\o[+/-] \o ... ne přeškrtnuté písmo
\n ... ruší \b,\i\o,\u \n normální písmo
\x[+/-]pozice \x="1,5" pozice v palcích ve směru X
\y[+/-]pozice \y="0,5" pozice v palcích ve směru Y
\a="zarovnání" \a="c" ... centrovat zarovnání textu C..centrovat, R nebo P zprava, ostatní zleva; zarovnání funguje pouze pro typ vloženého objektu {? ...\t="text"}


Lze také použít jinou variantu pro formátované texty: {?formatovaci znaky\t="Text k tisku"} Pro formátování lze použít stejné formátovací znaky jako pro funkci {!formatovaciznaky}. Hlavní rozdíl je v tom, že program vytiskne text dle parametru \t jako jeden text s využitím formátování fontů dle předchozích parametrů a po skončení tisku zůstává pozice k tisku dalších znaků beze změny (na stejné pozici jako by text nebyl vytisknut). Také font je nastaven na předchozí stav. Hlavní využití je pro tisk nápisů, které je nutné vytisknout proporcionálním písmem (např. Arial nebo Times New Roman) Příklad: {?\f="Times New Roman"\c="255"\a="left"\s=+1\t="Proporcionalni text"}

Upozornění
Pro úpravu formulářů je potřeba mít znalosti o používání funkcí a programování a při úpravě stávajících formulářů je třeba být maximálně opatrný. Autoři programu nenesou zodpovědnost za chybné úpravy formulářů provedené uživateli.


Technická poznámka
Ve standardních sestavách tisknutých pomocí DEF souboru je možné ve výrazech použít proměnnou MAX_LINE, která vrací aktuální počet řádků na stránce (dle nastavení tiskárny z konfigurace programu).
Nastavení do menu programu kód menu 7,11