Definiční soubor tiskových sestav: Porovnání verzí

Z K.A.P.
Skočit na navigaciSkočit na vyhledávání
(Nová stránka: Systém Sklad6 používá při vytváření některých sestav definiční soubor tiskových sestav. Soubor má obvykle jméno SKLAD-??.DEF, kde místo znaků ?? je zkratka firmy, kt...)
 
 
(Není zobrazeno 55 mezilehlých verzí od 2 dalších uživatelů.)
Řádek 1: Řádek 1:
Systém Sklad6 používá při vytváření některých sestav definiční soubor tiskových sestav. Soubor má obvykle jméno SKLAD-??.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.
+
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 buď 01 nebo zkratka firmy, která aplikaci používá. V dokumentaci je obvykle označován jako definiční soubor nebo zkráceně DEF soubor.
 +
 
 +
Definiční soubor tiskových sestav (např. SKLAD-01.DEF) může být nově uložen i ve formátu UTF-8 nebo UTF-16 (soubor v tomto formátu musí mít prefix označující kódovou stránku, tzv. BOM).
 +
Pro konverzi DEF souboru z původní kódové stránky použijte vždy interní textový editor a soubor uložte pomocí '''Shift+F2''' s výběrem kódové stránky (doporučujeme UTF-8). Při této konverzi jsou správně převedeny i některé speciální znaky, které by za pomocí jiných konverzních nástrojů mohly být převedeny nesprávně. DEF soubor je načtení do programu převeden na interní kódovou stránku, proto není možné používat všechny Unicode znaky.
  
 
V souboru jsou např. uloženy definice těchto sestav :
 
V souboru jsou např. uloženy definice těchto sestav :
* 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);
+
# 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)
* definice soupisu daňových dokladů, definice nakládacího listu
+
# Definice soupisu daňových dokladů, definice nakládacího listu
* definice tisku na obálky ze seznamu adres a z dokladů
+
# Definice tisku na obálky ze seznamu adres a z dokladů
* definice hromadného příkazu k úhradě
+
# Definice hromadného příkazu k úhradě
* objednávky, požadavky, seznamy a sestavy z objednávek a požadavků
+
# Objednávky, požadavky, seznamy a sestavy z objednávek a požadavků
* formulář pro tisk hlavičky karty a pohybů na kartě; formulář pro tisk štítků z karet
+
# Formulář pro tisk hlavičky karty a pohybů na kartě; formulář pro tisk štítků z karet
* definice nabídkových listů (seznamů skladových karet)
+
# Definice nabídkových listů (seznamů skladových karet)
* 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ší)
+
# 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ší)
* definice sestav z obalového konta, definice inventurních sestav
+
# Definice sestav z obalového konta, definice inventurních sestav
* seznam vratných obalů pro zrychlenou práci s vratnými obaly (není to sestava)
+
# Definice sekce pro tisk na poštovní složenky
 +
# seznam vratných obalů pro zrychlenou práci s vratnými obaly (není to sestava)
 +
#Proměnné<br/> #x , kde x je číslo proměnné definované programem nebo definované ve struktuře souborů viz. [[Systémové menu#Struktura souborů |Systémové menu]]
 +
#Výrazy<br/> #{výraz}, výraz je vyhodnocen podle aktuálních hodnot. Ve výrazu můžeme použít proměnné a [[Funkce používané při vyhodnocování výrazů|funkce ]]
  
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ů.<br/>
+
V definoč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ř. [Faktura] 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ů.<br/>
 
Řá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):
 
Řá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):
{|class="wikitable" border=0
+
{|class="wikitable" border=1 style="background:#ddddff; color:black"
 +
|-valign=top
 +
|width=150|'''.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
 +
|-valign=top
 +
|'''.HH'''||horní hlavička 1; řádek se opakuje na začátku každé stránky
 +
|-valign=top
 +
|'''.H2'''||horní hlavička 2; řádek se opakuje na začátku každé stránky počínaje druhou stranou sestavy
 +
|-valign=top
 +
|'''-HH'''||horní hlavička sloupce; nadpis sloupce u vícesloupcových ceníků (číslo strany se zadává symbolem {PAGE}
 
|-valign=top
 
|-valign=top
|'''.ZS'''||&nbsp;-&nbsp||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
+
|'''.DH'''||dolní hlavička 1; řádek se opakuje na konci každé stránky
 
|-valign=top
 
|-valign=top
|'''.HH'''||&nbsp;-&nbsp||horní hlavička 1; řádek se opakuje na začátku každé stránky
+
|'''.D2'''||dolní hlavička 2; řádek se opakuje na konci každé stránky
 
|-valign=top
 
|-valign=top
|'''.H2'''||&nbsp;-&nbsp||horní hlavička 2; řádek se opakuje na začátku každé stránky počínaje druhou stranou sestavy
+
|'''.KS'''||konec sestavy; řádek se tiskne pouze jednou a to na konci sestavy
 
|-valign=top
 
|-valign=top
|'''.DH'''||&nbsp;-&nbsp||dolní hlavička 1; řádek se opakuje na konci každé stránky
+
|'''.REM'''||poznámka; tyto řádky se netisknou a slouží pouze jako komentář
 
|-valign=top
 
|-valign=top
|'''.D2'''||&nbsp;-&nbsp||dolní hlavička 2; řádek se opakuje na konci každé stránky
+
|'''.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).
 
|-valign=top
 
|-valign=top
|'''.KS'''||&nbsp;-&nbsp||konec sestavy; řádek se tiskne pouze jednou a to na konci sestavy
+
|'''KS.GO'''||je možné definovat výraz, který určí číslo řádku, od kterého se má v sestavě pokračovat (používá se pro určení pozice patičky sestavy). Nově je možné sekci zadat ve formě .KS.GO=výraz nebo .KS.GO=výraz;opakovaný text. Hodnota výrazu musí vyjít jako celé číslo (maximum je počet řádků na stránce). Pokud je výsledkem záporné číslo, tak se chápe jako počet řádků před koncem stránky.<br/>
 +
V sekci .KS.GO je možné definovat výraz, který určí číslo řádku, od kterého se má v sestavě pokračovat (používá se pro určení pozice patičky sestavy). Nově je možné sekci zadat ve formě .KS.GO=výraz nebo .KS.GO=výraz;opakovaný text. Hodnota výrazu musí vyjít jako celé číslo (maximum je počet řádků na stránce). Pokud je výsledkem záporné číslo, tak se chápe jako počet řádků před koncem stránky.
 
|-valign=top
 
|-valign=top
|'''.REM'''||&nbsp;-&nbsp||poznámka; tyto řádky se netisknou a slouží pouze jako komentář
+
|'''.Mn'''||obsahuje definice opakovaných nebo speciálně umístěných řádků. Písmeno n smí být z rozsahu 0 až 9 nebo A až Z. 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.
 
|-valign=top
 
|-valign=top
|'''.KS.GOn'''||&nbsp;-&nbsp||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).
+
|'''.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)
 
|-valign=top
 
|-valign=top
|'''.Mn'''||&nbsp;-&nbsp||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.
+
|'''.ZB'''||ohraničuje začátek bloku, který musí být vytištěn celý na 1 stránce
 
|-valign=top
 
|-valign=top
|'''.NP'''||&nbsp;-&nbsp||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)
+
|'''.KB'''||ohraničuje konec bloku, který musí být vytištěn celý na 1 stránce
 
|-valign=top
 
|-valign=top
|'''.ZB'''||&nbsp;-&nbsp||ohraničuje začátek 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)
 
|-valign=top
 
|-valign=top
|'''.KB'''||&nbsp;-&nbsp||ohraničuje konec bloku, který musí být vytištěn celý na 1 stránce
+
|'''.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)
 
|-valign=top
 
|-valign=top
|'''.IF{výraz;řádek}'''||&nbsp;-&nbsp||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)
+
|'''.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.
 
|-valign=top
 
|-valign=top
|'''.SET#n=výraz'''||&nbsp;-&nbsp||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)
+
|'''.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é“).
 
|-valign=top
 
|-valign=top
|'''.NAME=výraz'''||&nbsp;-&nbsp||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.
+
|'''.GOx''' || pokusí se přejít na x-tý řádek na stránce (záporná čísla znamenají počet řádků před koncem 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. Sekci je možné zadat také ve formě '''.KS.GO=výraz''' nebo '''.KS.GO=výraz;opakovaný text'''. Hodnota výrazu musí vyjít jako celé číslo (maximum je početřádků na stránce). Pokud je výsledkem záporné číslo, tak se chápe jako počet řádků před koncem stránky. Text za znakem ; se opakuje na každém řádku od aktuální pozice až do řádku určeného číslem nebo výrazem.
 
|-valign=top
 
|-valign=top
|'''.CPn'''||&nbsp;-&nbsp||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é“).
+
|'''.MA až .MZ''' ||mezisoučtové řádky označené písmeny A až Z (vuyžití pouze jen u tisku dokladu)
 
|}
 
|}
  
 
V každém řádku mohou být speciální znaky začínající #, které tiskový program transformuje :
 
V každém řádku mohou být speciální znaky začínající #, které tiskový program transformuje :
{|class="wikitable" border=0
+
{|class="wikitable" border=1 style="background:#ddddff; color:black"
 +
|-valign=top
 +
|'''#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.
 +
|-
 +
|width=60|'''#'''||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
 +
|- valign=top
 +
|'''#*'''||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)
 +
|- valign=top
 +
|'''#{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.<br/>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 )).
 +
|-
 +
|'''{&#124;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}.
 +
 
 +
{|class="wikitable" border=1 style="background:#ddddff; color:black"
 +
! Syntaxe!!Příklad!!Popis
 +
|-valign=top
 +
|'''\f="název fontu"'''||\f="Arial"|| název fontu
 +
|-valign=top
 +
|'''\s="velikost"'''||\s="12"||absolutní velikost
 +
|-valign=top
 +
|rowspan=2|'''+2'''||\s+ je totéž jako||rowspan=2| relativní zvětšení
 +
|-valign=top
 +
|\s="+1"
 +
|-valign=top
 +
|rowspan=2|'''-2'''||\s- je totéž jako||rowspan=2| relativní zmenšení
 +
|-valign=top
 +
|\s="-1"
 +
|-valign=top
 +
|'''\c="barva fontu rgb"'''||\c="255"||barva (desítková hodnota RGB)
 +
|-valign=top
 +
|'''\r="znaková sada"'''||\r="238"|| středoevropská znaková sada (čeština)
 +
|-valign=top
 +
|'''\b[+/-]'''||\b+ ... ano||tučnost písma
 +
|-valign=top
 +
|'''\i[+/-]'''||\i ... ne ||kurzíva (nakloněné písmo)
 +
|-valign=top
 +
|'''\u[+/-]'''||\u ... ano||podtržené písmo
 +
|-valign=top
 +
|'''\o[+/-]'''||\o ... ne ||přeškrtnuté písmo
 +
|-valign=top
 +
|'''\n''' ... ruší \b,\i\o,\u||\n||normální písmo
 +
|-valign=top
 +
|'''\x[+/-]pozice'''||\x="1,5"||pozice v palcích ve směru X
 
|-valign=top
 
|-valign=top
|'''#n'''||&nbsp;-&nbsp||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.
+
|'''\y[+/-]pozice'''||\y="0,5"||pozice v palcích ve směru Y
 +
|-valign=top
 +
|'''\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"}
 +
|}
 +
<br/>
 +
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"}
 +
<br/>
 +
 
 +
{|class="wikitable" border=1 width=1050
 +
|-
 +
| bgcolor="#ABCDEF" | '''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.
 +
|}
 +
<br/>
 +
 
 +
----
 +
===Nová možnost vkládání formátovaného textu v sestavách vytvářených pomocí DEF souboru.===
 +
 
 +
Popis syntaxe:<br/>
 +
{?formatovaci znakyt="Text k tisku"}Popis syntaxe:<br/>
 +
 
 +
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:<br/>
 +
{?f="Times New Roman"c="255"a="left"s=+1t="Proporcionalni text"}.<br/>
 +
Nově jsou doplněny tyto formátovací znaky:<br/>
 +
 
 +
{|class="wikitable" border=1 width=1050 style="background:#ddddff; color:black"
 +
|-
 +
! Znak !! Hodnota!! Popis
 +
|-
 +
|rowspan =3 |r="cislo_znakove_sady"||1||výchozí
 +
|-
 +
|2||symbol
 +
|-
 +
|238||Východní Evropa
 +
|-
 +
|rowspan = 3|a="alignment"||R nebo P||zarovnání vpravo
 +
|-
 +
|C||centrovat
 +
|-
 +
|ostatní||vlevo
 +
|}
 +
<br/>
 +
{|border=1 class ="wikitable"  
 +
|-
 +
|bgcolor=#00FF00| '''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
 +
|-
 +
|Při tisku dokladů označených příznakem očíslování dodávek se použije režim pro tisk mezisoučtů za dodávky i v případě, že doklad má jen jednu dodávku (pro tisk hlaviček dodávek musí existovat sekce .M5 nebo .M6 v definičním souboru sestav)
 +
|}
 +
 
 +
Při tisku dokladů lze využívat ve výrazech pole s názvy položek dle struktury jednotlivých tabulek vracející hodnoty z operací, karet nebo hlavičky dokladu. Podobně lze používat pole z dalších tabulek (s odpovídajícím aliasem)
 +
 
 +
{|class="wikitable" border=1 style="background:#ddddff; color:black"
 +
|-
 +
!Struktura!!Alias!!Popis!!Příklad
 +
|-
 +
|OPERACE||&nbsp;||operace dokladu||#{Kod}
 +
|-
 +
|DOKLAD||DOK.||údaje z hlav.dokladu||#{FormatDate(DOK.DatOdeslan,"dd.mm.yyyy")}
 +
|-
 +
|INI||INI.||údaje z INI hodnot||#{Str(INI.Dan1Sazba,5,1)}
 
|-
 
|-
|'''#'''||&nbsp;-&nbsp||aktuální číslo stránky
+
|KONFIGUR||KFG.||údaje z konfigurace||#{Str(KFG.Pokladna,3,0)}
 
|-
 
|-
|'''#:'''||&nbsp;-&nbsp||aktuální číslo stránky formátované na čtyři znaky dorovnané mezerami zleva
+
|KARTA||KAR.||skladové karty||#{KAR.Vyrobce}
 
|-
 
|-
|'''#+'''||&nbsp;-&nbsp||číslo následující stránky
+
|KARTAZAS||ZAS.||zásoby na kartách||#{Str(ZAS.PrumerCena,8,2)}
 
|-
 
|-
|'''#-'''||&nbsp;-&nbsp||číslo předchozí stránky
+
|DOKLADSL||DKS.||sloučený doklad (DL)||#{DKS.Jmeno+DKS.ExtJmeno1}
 
|-
 
|-
|'''#{výraz}'''||&nbsp;-&nbsp||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.<br/>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).
+
|ADRESA||ADS.||adresa dle sl.dokladu||#{using(ADS.KJmeno,20)}
| '''☺'''||&nbsp;-&nbsp||znak s ASCII kódem 1: následující znaky se budou tisknout zvýrazněně.
 
|'''☻'''||&nbsp;-&nbsp||znak s ASCII kódem 2: ruší účinek ☺
 
|'''☼'''||&nbsp;-&nbsp||znak s ASCII kódem 15: následující znaky budou tisknuty zúženě (kondenz)
 
|'''☼'''||&nbsp;-&nbsp||znak s ASCII kódem 18:ruší účinek ☼
 
|'''♫'''||&nbsp;-&nbsp||znak s ASCII kódem 14:následující znaky se budou tisknout dvakrát široké
 
|'''¶'''||&nbsp;-&nbsp||znak s ASCII kódem 20: ruší účinek ♫
 
 
|}
 
|}
 +
 +
(DKS. a ADS. jen u dokladů s dodávkami)<br/>
 +
Vrácené hodnoty nemusí být zarovnané na pevný počet znaků dle šířky pole.
 +
Pro úpravu délky je vhodné využít funkce '''using, setright''' apod.
 +
Číselné hodnoty jsou vraceny jako čísla (a ne jako řetězec znaků).
 +
Lze také využít zkrácené vyhodnocování polí pomocí proměnných '''#jmeno_pole''', např. samostatně zapsané #DOK.DatOdeslan odpovídá číselné proměnné #6. Takto lze ale vyhodnocovat i pole, které nemají přidělenou číselnou proměnnou. Takto vyhodnocené pole nejsou zarovnané na pevný počet míst jako číselné proměnné. Čísla jsou zobrazena v obecném formátu bez mezer.
 +
 +
Je možné nastavovat také hodnoty proměnných, které lze zjišťovat pomocí funkce '''GetVar("jménoproměnné")'''. Dosud šlo tímto způsobem nastavovat hodnoty číselných proměnných, které je možné vyhodnocovat pomocí #čísloproměnné. Pokud je použit následující formát příkazu .SET"jménoproměnné"=výraz, tak program uloží hodnotu proměnné stejně jako to provádí funkce SetVar("jménoproměnné",výraz)
 +
 +
Úprava tisku dodatkových formulářů za fakturou.
 +
V předchozí verzi šlo tisk operací dokladu v rámci jednoho tiskového formuláře opakovat pouze v případě, že v číselníku typů dokladů byl v sekci pro dodatek uvedený formulář Dodací list. Obdobné nastavení se nově použije i pro všechny formuláře obsahující kdekoli v názvu sekce vykřičník. Pokud je tedy v DEF souboru definován například formulář [Form3!], tak do sekce pro dodatek se uvedete Form3! a program pak bude při tisku dokladu tisknout za běžným formulářem ještě druhý formulář Form3! a tento formulář může také používat sekci .M1 (a jiné sekce) pro výpis jednotlivého zboží.
 +
----
 +
 +
 +
===Komponenty pro zobrazování 1D čárových kódů tisknutých pomocí definičního souboru sestav===
 +
 +
Pro tisk čárových kódů lze použít tuto definici:<u>'''{|TypČárovéhoKódu;Kod;šířka_v_palcích;výška_v_palcích}'''</u>
 +
 +
{|class="wikitable" border=1 style="background:#ddddff; color:black"
 +
|-
 +
|TypČárovéhoKódu ||Popis
 +
|-
 +
|EAN8B, EAN13B, EAN128B, CODE128B||čárový kód s využitím nových komponent bez textového popisu
 +
|-
 +
|EAN8T, EAN13T, EAN128T, CODE128T||čárový kód s využitím nových komponent s textovým popisem v kódu
 +
|}
 +
 +
U čárového kódu ve formátu EAN128B, popř. EAN128T se automaticky dopočítává kontrolní číslice, což může způsobovat problémy při čtení čárových kódů (doporučujeme tedy raději použít Code128T).<br/>
 +
V čárovém kódu může být také vložen speciální znak označovaný jako "FNC1", který se používá jako prefix pro rozlišení typu údaje, který bude následovat. Jde o situace, kdy čárový kód obsahuje více různých informací (kód zboží, šarži, datum výroby, ..) viz. např. https://en.wikipedia.org/wiki/GS1-128. Pro tisk znaku FNC1 vložte do textu na odpovídající místo znak ^.
 +
----
 +
<br/>
 +
{|border=1 class ="wikitable"
 +
|-
 +
|bgcolor=#00FF00| '''Technická poznámka'''
 +
|-
 +
|Mezi funkcemi dostupnými v rámci interního vyhodnocovače používaného pro definiční soubor tiskových sestav či v generátoru sestav a také v QR2 sestavách je nová funkce '''MemoData'''. Funkce vrací hodnotu odpovídajícího řádku z tabulky MEMO.
 +
Funkce má tuto syntaxi:
 +
'''MemoData(IdObjektu, Klic, CisloRadku, Parametry)'''
 +
Poslední parametr je nepovinný (výchozí hodnota je 0). Hodnota 1 povoluje překlad vrácené hodnoty na slovní popis dle číselníku (týká se jen číselníku 21, tj. parametry skladových karet). Např. MemoData(21,"1234",10) vrátí řádek 10 pro kód zboží 1234 z evidence parametrů skladových karet.
 +
Číslo řádku musí mít kladnou hodnotu s výjimkou ID objektu 18 (obrázky ke kartám), kde záporná hodnota zajistí vrácení jména souboru výchozího obrázku ke kartě).
 +
|}
 +
 +
===Podpora pro tisk QR kódů v sestavách vytvářených za pomocí definičního souboru sestav.===
 +
 +
V DEF souboru použijte následující formát pro vložení QR2 kódu <u>'''{|QRx;Kod;šířka_v_palcích;výška_v_palcích}'''</u><br/>
 +
x je nepovinný znak vyjadřující tzv. EccLevel - 0..Lowest, 1..Medium, 2..Quality, 3..Highest<br/>
 +
V kódu můžete definovat např. kód pro QR platbu nebo odkaz na webové stránky (vč. http://).
 +
----
 +
Rozšíření interního vyhodnocovače používaného pro definiční soubor tiskových sestav či v generátoru sestav. Nově lze ve výrazech používat také funkce, které jsou dostupné v rámci QR2 sestav. Pokud má funkce stejný název jako interní funkce, tak pro preferenci QR2 varianty použijte před funkcí prefix QR. (např. QR2.Using). Za jménem funkce musí být vždy závorky - i v případě, že funkce nemá parametry.

Aktuální verze z 2. 3. 2022, 16:24

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 buď 01 nebo zkratka firmy, která aplikaci používá. V dokumentaci je obvykle označován jako definiční soubor nebo zkráceně DEF soubor.

Definiční soubor tiskových sestav (např. SKLAD-01.DEF) může být nově uložen i ve formátu UTF-8 nebo UTF-16 (soubor v tomto formátu musí mít prefix označující kódovou stránku, tzv. BOM). Pro konverzi DEF souboru z původní kódové stránky použijte vždy interní textový editor a soubor uložte pomocí Shift+F2 s výběrem kódové stránky (doporučujeme UTF-8). Při této konverzi jsou správně převedeny i některé speciální znaky, které by za pomocí jiných konverzních nástrojů mohly být převedeny nesprávně. DEF soubor je načtení do programu převeden na interní kódovou stránku, proto není možné používat všechny Unicode znaky.

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ženky
  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é programem nebo definované ve struktuře souborů viz. Systémové menu
  13. Výrazy
    #{výraz}, výraz je vyhodnocen podle aktuálních hodnot. Ve výrazu můžeme použít proměnné a funkce

V definoč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ř. [Faktura] 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).
KS.GO je možné definovat výraz, který určí číslo řádku, od kterého se má v sestavě pokračovat (používá se pro určení pozice patičky sestavy). Nově je možné sekci zadat ve formě .KS.GO=výraz nebo .KS.GO=výraz;opakovaný text. Hodnota výrazu musí vyjít jako celé číslo (maximum je počet řádků na stránce). Pokud je výsledkem záporné číslo, tak se chápe jako počet řádků před koncem stránky.

V sekci .KS.GO je možné definovat výraz, který určí číslo řádku, od kterého se má v sestavě pokračovat (používá se pro určení pozice patičky sestavy). Nově je možné sekci zadat ve formě .KS.GO=výraz nebo .KS.GO=výraz;opakovaný text. Hodnota výrazu musí vyjít jako celé číslo (maximum je počet řádků na stránce). Pokud je výsledkem záporné číslo, tak se chápe jako počet řádků před koncem stránky.

.Mn obsahuje definice opakovaných nebo speciálně umístěných řádků. Písmeno n smí být z rozsahu 0 až 9 nebo A až Z. 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é“).
.GOx pokusí se přejít na x-tý řádek na stránce (záporná čísla znamenají počet řádků před koncem 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. Sekci je možné zadat také ve formě .KS.GO=výraz nebo .KS.GO=výraz;opakovaný text. Hodnota výrazu musí vyjít jako celé číslo (maximum je početřádků na stránce). Pokud je výsledkem záporné číslo, tak se chápe jako počet řádků před koncem stránky. Text za znakem ; se opakuje na každém řádku od aktuální pozice až do řádku určeného číslem nebo výrazem.
.MA až .MZ mezisoučtové řádky označené písmeny A až Z (vuyžití pouze jen u tisku dokladu)

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.



Nová možnost vkládání formátovaného textu v sestavách vytvářených pomocí DEF souboru.

Popis syntaxe:
{?formatovaci znakyt="Text k tisku"}Popis syntaxe:

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=+1t="Proporcionalni text"}.
Nově jsou doplněny tyto formátovací znaky:

Znak Hodnota Popis
r="cislo_znakove_sady" 1 výchozí
2 symbol
238 Východní Evropa
a="alignment" R nebo P zarovnání vpravo
C centrovat
ostatní vlevo


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
Při tisku dokladů označených příznakem očíslování dodávek se použije režim pro tisk mezisoučtů za dodávky i v případě, že doklad má jen jednu dodávku (pro tisk hlaviček dodávek musí existovat sekce .M5 nebo .M6 v definičním souboru sestav)

Při tisku dokladů lze využívat ve výrazech pole s názvy položek dle struktury jednotlivých tabulek vracející hodnoty z operací, karet nebo hlavičky dokladu. Podobně lze používat pole z dalších tabulek (s odpovídajícím aliasem)

Struktura Alias Popis Příklad
OPERACE   operace dokladu #{Kod}
DOKLAD DOK. údaje z hlav.dokladu #{FormatDate(DOK.DatOdeslan,"dd.mm.yyyy")}
INI INI. údaje z INI hodnot #{Str(INI.Dan1Sazba,5,1)}
KONFIGUR KFG. údaje z konfigurace #{Str(KFG.Pokladna,3,0)}
KARTA KAR. skladové karty #{KAR.Vyrobce}
KARTAZAS ZAS. zásoby na kartách #{Str(ZAS.PrumerCena,8,2)}
DOKLADSL DKS. sloučený doklad (DL) #{DKS.Jmeno+DKS.ExtJmeno1}
ADRESA ADS. adresa dle sl.dokladu #{using(ADS.KJmeno,20)}

(DKS. a ADS. jen u dokladů s dodávkami)
Vrácené hodnoty nemusí být zarovnané na pevný počet znaků dle šířky pole. Pro úpravu délky je vhodné využít funkce using, setright apod. Číselné hodnoty jsou vraceny jako čísla (a ne jako řetězec znaků). Lze také využít zkrácené vyhodnocování polí pomocí proměnných #jmeno_pole, např. samostatně zapsané #DOK.DatOdeslan odpovídá číselné proměnné #6. Takto lze ale vyhodnocovat i pole, které nemají přidělenou číselnou proměnnou. Takto vyhodnocené pole nejsou zarovnané na pevný počet míst jako číselné proměnné. Čísla jsou zobrazena v obecném formátu bez mezer.

Je možné nastavovat také hodnoty proměnných, které lze zjišťovat pomocí funkce GetVar("jménoproměnné"). Dosud šlo tímto způsobem nastavovat hodnoty číselných proměnných, které je možné vyhodnocovat pomocí #čísloproměnné. Pokud je použit následující formát příkazu .SET"jménoproměnné"=výraz, tak program uloží hodnotu proměnné stejně jako to provádí funkce SetVar("jménoproměnné",výraz)

Úprava tisku dodatkových formulářů za fakturou. V předchozí verzi šlo tisk operací dokladu v rámci jednoho tiskového formuláře opakovat pouze v případě, že v číselníku typů dokladů byl v sekci pro dodatek uvedený formulář Dodací list. Obdobné nastavení se nově použije i pro všechny formuláře obsahující kdekoli v názvu sekce vykřičník. Pokud je tedy v DEF souboru definován například formulář [Form3!], tak do sekce pro dodatek se uvedete Form3! a program pak bude při tisku dokladu tisknout za běžným formulářem ještě druhý formulář Form3! a tento formulář může také používat sekci .M1 (a jiné sekce) pro výpis jednotlivého zboží.



Komponenty pro zobrazování 1D čárových kódů tisknutých pomocí definičního souboru sestav

Pro tisk čárových kódů lze použít tuto definici:{|TypČárovéhoKódu;Kod;šířka_v_palcích;výška_v_palcích}

TypČárovéhoKódu Popis
EAN8B, EAN13B, EAN128B, CODE128B čárový kód s využitím nových komponent bez textového popisu
EAN8T, EAN13T, EAN128T, CODE128T čárový kód s využitím nových komponent s textovým popisem v kódu

U čárového kódu ve formátu EAN128B, popř. EAN128T se automaticky dopočítává kontrolní číslice, což může způsobovat problémy při čtení čárových kódů (doporučujeme tedy raději použít Code128T).
V čárovém kódu může být také vložen speciální znak označovaný jako "FNC1", který se používá jako prefix pro rozlišení typu údaje, který bude následovat. Jde o situace, kdy čárový kód obsahuje více různých informací (kód zboží, šarži, datum výroby, ..) viz. např. https://en.wikipedia.org/wiki/GS1-128. Pro tisk znaku FNC1 vložte do textu na odpovídající místo znak ^.



Technická poznámka
Mezi funkcemi dostupnými v rámci interního vyhodnocovače používaného pro definiční soubor tiskových sestav či v generátoru sestav a také v QR2 sestavách je nová funkce MemoData. Funkce vrací hodnotu odpovídajícího řádku z tabulky MEMO.

Funkce má tuto syntaxi: MemoData(IdObjektu, Klic, CisloRadku, Parametry) Poslední parametr je nepovinný (výchozí hodnota je 0). Hodnota 1 povoluje překlad vrácené hodnoty na slovní popis dle číselníku (týká se jen číselníku 21, tj. parametry skladových karet). Např. MemoData(21,"1234",10) vrátí řádek 10 pro kód zboží 1234 z evidence parametrů skladových karet. Číslo řádku musí mít kladnou hodnotu s výjimkou ID objektu 18 (obrázky ke kartám), kde záporná hodnota zajistí vrácení jména souboru výchozího obrázku ke kartě).

Podpora pro tisk QR kódů v sestavách vytvářených za pomocí definičního souboru sestav.

V DEF souboru použijte následující formát pro vložení QR2 kódu {|QRx;Kod;šířka_v_palcích;výška_v_palcích}
x je nepovinný znak vyjadřující tzv. EccLevel - 0..Lowest, 1..Medium, 2..Quality, 3..Highest
V kódu můžete definovat např. kód pro QR platbu nebo odkaz na webové stránky (vč. http://).


Rozšíření interního vyhodnocovače používaného pro definiční soubor tiskových sestav či v generátoru sestav. Nově lze ve výrazech používat také funkce, které jsou dostupné v rámci QR2 sestav. Pokud má funkce stejný název jako interní funkce, tak pro preferenci QR2 varianty použijte před funkcí prefix QR. (např. QR2.Using). Za jménem funkce musí být vždy závorky - i v případě, že funkce nemá parametry.