Definiční soubor tiskových sestav: Porovnání verzí
m |
m |
||
Řádek 54: | Řádek 54: | ||
|-valign=top | |-valign=top | ||
|'''.IF{Výraz,text1,text2}''' || podmínka | |'''.IF{Výraz,text1,text2}''' || podmínka | ||
+ | |-valign=top | ||
+ | |'''.GOx''' || určuje počet řádků na stránce (=x) | ||
|} | |} | ||
Verze z 16. 6. 2010, 13:29
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 :
- 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 tisku na obálky ze seznamu adres a z dokladů
- Definice hromadného příkazu k úhradě
- 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
- 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 sestav z obalového konta, definice inventurních sestav
- seznam vratných obalů pro zrychlenou práci s vratnými obaly (není to sestava)
- Proměnné
#x , kde x je číslo proměnné definované ve struktuře souborů viz. Systémové menu - 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 |
.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 | určuje počet řádků na stránce (=x) |
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 |
#{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. |
☺ | 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 ♫ |
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 |