Tisky a tvorba tiskových sestav

v  systému Signys®

 

 

 

27.10.2022

 

Copyright © Tresoft s.r.o.


 

Obsah:

Tisky v systému Signys®. 3

Obvyklé názvosloví tiskových sestav. 3

Volby tisku. 4

Přednastavené sestavy. 4

Tisk dokladu. 5

Tisk seznamu, výběru, analýzy. 5

Režimy tisku. 5

Dávkový tisk. 6

Nastavení tiskových sestav. 6

Sdružené tiskové sestavy. 7

Synchronizace tiskových sestav. 8

Kontrola tisku. 8

Manažer tiskových sestav FastReport 10

Nastavení kvality exportu do PDF. 10

Vytvoření tiskové sestavy. 11

Uspořádání tiskové sestavy. 11

Oddíly. 11

Datové pruhy. 12

Popis pracovního prostředí 12

Rozdíly mezi verzí 3, 4 a 5. 13

Nastavení vlastností sestavy. 14

Vkládání oddílů a datových pruhů do sestavy. 15

Vkládání datových objektů do sestavy. 17

Datový strom.. 18

Používání dalších typů objektů. 18

Text 18

Obrázek. 19

Podsestava. 19

Kresba. 19

Systémový text 19

Čárový kód. 19

2D kód. 20

Formátování hodnot objektů. 20

Podmíněné formátování textů. 21

Vlastnosti objektů. 22

Použití složených, výpočtových a systémových textů. 22

Složený text 22

Výpočtový text 23

Systémový text 23

Používání skupin. 24

Křížové tabulky. 25

Dotazy do databáze. 27

Kód sestavy. 27

Více stránek sestavy. 31

Dotaz před tiskem.. 31

 

 

Tisky v systému Signys®

 

V celém systému platí pravidlo, že data, která jsou vybrána – zobrazena, je možné ihned tisknout. To znamená, že ze seznamu se tiskne seznam vybraných záznamů a z otevřeného formuláře jednotlivý doklad. Doklad musí být v režimu prohlížení!

 

Systém Signys umožňuje tisk dokladů, seznamů a uživatelem vytvořených seznamů formou tiskových sestav, vytvořených výrobcem. Jestliže však tyto sestavy nevyhovují nebo je potřeba nějaký údaj upravit, systém obsahuje Manažer sestav, který slouží k editaci a návrhu tiskových sestav.

 

 Tisk v systému je realizován formou tiskových předloh s vytvořenými tiskovými sestavami. Tyto sestavy jsou šablony, pomocí kterých se údaje dokladu či seznamu tisknou. Tisk může být prováděn v grafickém (výhodnější pro laserové a inkoustové tiskárny) nebo znakovém režimu (jehličkové tiskárny, rychlý tisk). Detailnější rozlišení těchto režimů je popsáno v oddíle „Režimy tisku“.

 

Systém umožňuje pro každý modul a v modulu pro seznamy a každý doklad nadefinovat 13 nejčastěji používaných tiskových sestav. Tyto tiskové sestavy je možno kdykoliv předefinovat jinými, aniž by došlo ke zrušení definice sestav. První tři tiskové sestavy jsou určeny pro rychlý tisk bez nutnosti volby v menu – tisk přes tzv. horké klávesy:

 

Dalších 10 sestav je označeno vždy písmenem abecedy, počínaje A. Těchto 10 sestav je nutno volit již výběrem v menu Tisk.

 

Ke každé tiskové sestavě je také možno přiřadit jinou místní nebo síťovou tiskárnu, která je nadefinována ve Windows, tzn. že každý tisk je možno realizovat v jiné podobě a na jiné tiskárně. Lze tak nastavit např. na doklad tisk ve znakovém i grafickém režimu na odpovídající tiskárnu.

 

Každá pracovní stanice má své vlastní nastavení tiskových sestav dokladů a seznamů.

 

 

Obvyklé názvosloví tiskových sestav

 

Soubor s tiskovou sestavou se skládá z 8 znaků, např.

FVTZ0101

 

znak

Význam

detailní popis

příklad

1-3

zkratka modulu

viz Zkratky modulů

FVT

4

typ tisku

Z- znakový

G- grafický

X - znakový pro Win XP

S - do souboru

Z

5,6

číslo sestavy

01-30 doklady

31-60 seznamy

61-99 analýzy a ostatní

01

7,8

číslo zákazníka

01-20 standardní tisky

01

Volby tisku

 

Práce s tiskem v systému je shodná s tiskem z jakékoliv jiné aplikace ve Windows. Po žádosti na tisk se zobrazí dialogové okno (viz následující obrázek). Před tiskem je možnost změnit a nastavit:

 

 

Přednastavené sestavy

 

Předdefinované sestavy jsou jak u dokladu, tak u seznamů umístěny v menu Tisk. Dále jsou přiřazeny na ikonách v tiskovém panelu nástrojů s navázáním na horké klávesy: Ctrl+P, Ctrl+T, Ctrl+Alt+T

 

Volba sestavy jako přednastavené se provede v menu Tisk – Nastavení tiskových sestav. Zobrazí se dialogové okno.

 

První tři řádky v dialogovém okně jsou určeny pro nastavení sestav na horké klávesy (sestavy v menu označované jako 0 až 2), dalších 10 řádků je pro sestavy v menu umístěné pod označením A až J. Tlačítko „Opravit“ umožňuje opravu či úpravu dané tiskové sestavy v manažeru sestav. Po této volbě dojde ke spuštění manažeru sestav s načtením konkrétní sestavy.

 

Tisk dokladu

 

Tisk v systému probíhá pouze v režimu prohlížení. Nový doklad bude tedy vytisknut teprve tehdy, jestliže budou potvrzeny údaje do databáze.

Existující doklad musí být zobrazen ve formuláři.

 

Postup provedení:

1.      vstup do modulu

2.      zadání nebo vyhledání dokladu pro tisk

3.      zobrazení dokladu do formuláře

4.      volba tisku

 

Tisk seznamu, výběru, analýzy

 

Tisk seznamu, vytvořeného dotazem systému nebo podle vlastního výběru nebo analýzy probíhá opět z režimu prohlížení.

Jestliže není použita v sestavě položka pro třídění (položka je označena v kulatých závorkách v názvu sestavy) a sestavu je nutno mít setříděnu podle určité položky, pak je nutné provést třídění před tiskem (způsobem popsaným výše). Na setříděná data se použije buď jedna z předdefinovaných sestav pro seznam v daném modulu, nebo si uživatel může sestavu nastavit v menu Tisk – Nastavení tiskových sestav.

 

Přednastavené sestavy platí pouze pro daný modul a doklad, seznam. Každý modul má svá vlastní nastavení pro doklady a seznam, nikoliv společné celému systému. Taktéž jsou všechna nastavení tisku platná pouze pro konkrétní pracovní stanici.

 

 

Režimy tisku

 

Systému Signys může tisknout data ve dvou režimech:

·         Grafický

·         Znakový

 

Grafický tisk je standardní tisk Windows a je vhodný pro laserové a inkoustové tiskárny, které tisknou tiše a graficky rychle. Jehličková tiskárna pro grafický tisk je obecně nevhodná, jelikož není docíleno potřebné kvality a rychlost tisku je velice nízká.

 

Znakový tisk je určen zejména pro jehličkové tiskárny. Většina uživatelů zná znakový tisk z aplikací pod operačním systémem DOS. Při tomto tisku šlo manipulovat s nastavením tiskárny a tisk byl rychlý. Použití znakového tisku na laserové a inkoustové tiskárny je podmíněno možnostmi tiskárny. Ve většině případů již tyto tiskárny nebudou schopny ve znakovém režimu tisknout.

 

Proto se znakový tisk v současné době nejčastěji používá u tiskových sestav určených pro export do souborů – ať již je výstupem formát TXT nebo častěji XML či CSV.

Při tvorbě sestavy, jejíž výstupem má být tento znakový soubor, je nutné použít znakový formát tiskové sestavy.

 

Grafický tisk je vhodné použít tam, kde je potřeba kvalitní tisk a tisk kopií jako dalšího originálu není omezením. Znakový tisk je na místě použít tam, kde je třeba rychlých výstupů s kopiemi (např. silně zatěžovaná fakturační pracoviště).

 

Rozlišení sestavy, která je určena pro znakový nebo grafický tisk, je provedeno v názvu sestavy (jestliže se jedná o sestavu navrženu výrobcem) – 4. pozice.

 

 

Dávkový tisk

 

Tento tisk je výjimkou v tom, že je možné tisknou ze seznamu /výběru/ více detailních dokladů najednou. Pro tisk je použita první tisková sestava, která je nastavena pro tisk dokladu. Toto je výhodné například u faktur apod.

 

Postup provedení

 

1.        vstup do příslušného modulu

2.        provést výběr dat k tisku pomocí F5  nebo ikona

3.        v menu Tisk vybrat Dávkový tisk nebo Alt+T / D

4.        v okně pro dávkový tisk vybrat výstupní zařízení /tiskárnu, obrazovku/

5.        zadat počet kopií

6.        potvrdit F2 nebo „OK“

 

 

Při použití dávkového tisku je vhodné před jeho spuštěním zkontrolovat u jednoho dokladu, zda výchozí sestava a přidělená tiskárna pro tisk dokladu je skutečně ta správná!

 

 

Nastavení tiskových sestav

 

Nastavení je možné pouze v režimu Prohlížení.

 

Postup provedení

 

1.        vstup do příslušného modulu, ze kterého se bude tisknout

2.        v případě nastavení tisku seznamu pokračovat dle bodu 4

3.        v případě tisku dokladu mezerníkem otevřít doklad do formuláře

4.        volba menu Tisk / Nastavení tiskových sestav

5.        vybrat volný řádek, případně ten, který bude použit

6.        zvolit Nastavit nebo mezerník nebo F3

7.        pomocí klávesy Alt+¯ nebo myší  aktivovat Manažer tiskových sestav

8.        na položce Sestava vybrat příslušný adresář tisků /odpovídá názvu modulu/ – šipkou nebo myší

9.        otevřít adresář pomocí „®“ (šipka vpravo) nebo myší na „+“ u adresáře

10.    vybrat příslušnou tiskovou sestavu

11.    přenést do okna Tisková sestava klávesou F2 nebo „OK“

12.    na položce Tiskárna vybrat příslušnou tiskárnu pomocí Alt+¯ nebo myší  a přenést klávesou F2 nebo „OK“

13.    uložit F2 nebo „OK“

14.    zavřít nastavení tiskových sestav F2 nebo „OK“

 

 

Sdružené tiskové sestavy

 

Pro potřebu tisku více samostatných sestav najednou je možné vytvořit tzv. sdruženou tiskovou sestavu. Jde o sloučení více již existujících sestav do jedné položky v nabídce Tisk. Příkladem může být např. tisk dodacího listu společně se záručním listem. Podmínkou je, aby byly všechny sestavy vytvořeny v manažeru tiskových sestav FastReport.

 

Postup vytvoření sdružené tiskové sestavy

 

1.      vstup do příslušného modulu, ze kterého se bude tisknout

2.      v případě nastavení tisku seznamu pokračovat dle bodu 4

3.      v případě tisku dokladu mezerníkem otevřít doklad do formuláře

4.      volba menu Tisk / Nastavení tiskových sestav

5.      vybrat volný řádek, případně ten, který bude použit

6.      zvolit Nastavit nebo mezerník nebo F3

7.      pomocí klávesy Alt+¯ nebo myší  aktivovat Manažer tiskových sestav

8.      na položce Sestava vybrat příslušný adresář tisků /odpovídá názvu modulu/ – šipkou nebo myší

9.      otevřít adresář pomocí „®“ (šipka vpravo) nebo myší na „+“ u adresáře

10.  stisk tlačítka „Přidat“

11.  zvolit Sdružená tisková sestava FAST REPORT, napsat název souboru a potvrdit OK

12.  v novém okně napsat název sestavy a pomocí tlačítka „Přidat“ vybrat postupně všechny sestavy (standardním způsobem jako při běžném přidělení sestavy na doklad či seznam – viz kapitola výše)

13.  vytvořenou sdruženou sestavu standardním způsobem nastavit na doklad či seznam

 

 

 

Na obrázku je uveden příklad, kdy se tiskne dvakrát dodací list a následně jednou záruční list (sestava pro dodací list byla přidělena 2x).

 

Sdružená sestava má ikonu  a přípona souboru je STS. Sdruženou tiskovou sestav je možné poslat na tiskárnu nebo na obrazovku (zde se zobrazí první sestav a po stisku Esc či tlačítka „Zavřít“ následující).

 

 

Synchronizace tiskových sestav

 

Synchronizace tiskových sestav je funkce, která zkontroluje nastavené tiskové sestavy dokladů a seznamů v systému a jejich odkazy na soubory tiskových sestav. V případě, že se soubor tiskové sestavy přesune do jiného podadresáře v uvedeném adresáři, dohledá funkce dle nastaveného názvu soubor a vlastní odkaz opraví. Neplatné odkazy (tj. odkazy bez vazby na soubor) se odstraní.

 

Postup provedení

1.      hlavní okno systému – menu Nástroje / Možnosti systému / Parametry firmy a výchozí hodnoty… / Synchronizace tiskových sestav

2.      spustit synchronizaci stisknutím tlačítka „Kontrola nastavení tisku“

3.      proběhne kontrola odkazů dle konfiguračních souborů

4.      po ukončení se vypíše informace o výsledku synchronizace

 

 

 

Kontrola tisku

 

Pro každou dokladovou agendu je možné nastavit kontrolu, zda již byl doklad v minulosti vytištěn. Tato kontrola probíhá v okamžiku výběru jakékoliv sestavy dokladu v menu Tisk nebo ikony na panelu Tisk. Výjimkou je volba náhledu hlavní sestavy.

 

Postup nastavení kontroly tisku: hlavní okno systému – menu Nástroje / Možnosti systému / Globální parametry a výchozí hodnoty – zde na oddílu „Nastavení tisku“ volba Příznak na Označovat tisk a volbu Kontrola na Kontrolovat.

 

Na základě nastavení v bodě 1 bude při tisku dokladu (s výjimkou tisku na obrazovku, a to včetně volby Náhled) k označení dokladu, že byl vytištěn. Na seznamu dokladů se v příslušném sloupci objeví ikona . Po zapnutí kontroly se objeví při výběru sestavy (ať už zvolené z menu Tisk nebo kliknutím na ikonu panelu Tisk) informace o již provedeném tisku

 

 

Potvrzením myší či stiskem mezerníku, Esc či Enter se pokračuje v tisku standardním způsobem.

 

Nastavení příznaku tisku probíhá i u dávkového tisku (platí i pro tisk z hromadného výdeje). Pokud je minimálně jeden z dokladů zahrnutých do dávkového tisku opatřen příznakem tisku, objeví se totožná informace (systém neupozorňuje na každý doklad zvlášť).

 

Doklady označené příznakem tisku lze filtrovat. Týká se prioritně dokladů, které jsou zasílány partnerům (faktury vydané, dodací listy, nabídky, objednávky vydané, objednávky přijaté a odeslané zásilky). Postupně bude toto filtrování přidáno i na další dokladové agendy. Možnosti filtrování se nachází na záložce „Příznaky dokladu“.

 

 

Manažer tiskových sestav FastReport

 

Návrhář tiskových sestav FastReport umožňuje tvorbu jednoduchých i složitějších tiskových sestav. Hlavními přednostmi FastReportu je možnost vkládání grafů a tabulek do sestavy, tvorba složitých funkcí a práce s SQL dotazy, zadání parametrů před tiskem do dialogového okna, zadání počtu kopií přímo sestavou nezávisle na uživateli a tisk do souboru pdf - v Signysu je zavedena podpora elektronického podpisu.

Pro tvorbu opravdu složitých sestav a funkcí je možné použít jeden z následujících programovacích jazyků: Pascal, C++, Basic, Java. Programování probíhá na záložce Kód.

V současné době je v IS Signys zakomponována verze 5, a to od 10.12.2015 (build 1360). Na první pohled je rozdíl mezi verzí 3 a vyššími vidět v jiném obarvení datových pruhů. V níže uvedeném textu jsou základní rozdíly mezi verzí 3, 4 a 5 popsány. Zásadní rozdíl mezi 3 a 4 spočívá v tom, že ve verzi 4 přibyla nová záložka Data, se kterou neumí verze 3 pracovat! Pokud je tedy sestava uložena ve verzi 4, není možné ji používat v Signysu, jehož verze je starší než 1051 a tudíž je v něm zakomponována verze 3 návrháře tiskových sestav FastReport. Podobný problém v je kompatibilitě mezi verzemi 4 (Signys 5.0 – do buildu 1345) a 5 (Signys 6.0 – od buildu 1360). Pokud je sestava upravena v Signysu verze 6.0, není možné ji použít v Signysu verze 5.0. Pokud se nejedná o použití údajů, které v předchozí verzi nebyly v tisku (toto je obecně samozřejmě problém pro starší verze Signysu), lze sestavu editovanou Signysem 6.0 předělat tak, aby se zase dala v Signysu 5.0 použít. Sestavu je potřeba v 5.0 editovat – objeví se chyba (stejná jako při tisku takovéto sestavy), na ní se stiskne OK a když se návrhář otevře, tak se použije menu Report / Data, kde je potřeba zaškrtnout datasety, které se na sestavě používají (na sestavě pro seznam stačí MASTER, pro doklad určitě taky DETAIL (je lepší všechny). Sestava se uloží.  

 

 

Nastavení kvality exportu do PDF

 

Od verze 1414 je možné na stanici ovlivnit kvalitu tisku do PDF. Většina uživatelů níže popsané nastavení nemusí použít. Význam má např. při vložení obrázku razítka, kdy je potřeba kvalitněji zobrazit texty tohoto obrázku a dále při potřebě vkládat do souboru fonty, aby bylo možné PDF bez problémů číst na zařízeních Apple či Android - ovšem pozor, písma několikanásobně zvětší velikost souboru.

Nastavení kvality exportu se provádí pro danou stanici v hlavním okně Signysu v menu Nástroje / Možnosti systému / Lokální parametry a výchozí hodnoty – kategorie parametrů PDF export.

 

Konfigurace kvality se provede v části „Nastavení exportu PDF“. Pokud se nezaškrtne volba „Použít lokální nastavení PDF exportu platné pro aktuální pracovní stanici“, je použito výchozí nastavení. V opačném případě se zpřístupní možnosti nastavení. Zde mají význam dvě volby:

1.       Optimalizovaný tisk – použije se pro zvýšení kvality vložených obrázků - lze současně upřesnit zadáním číselné hodnoty do pole "JPEG kvalita" (údaj je v %, pro dobré zobrazení stačí cca 50 %)

2.       Vestavěná písma – do dokumentu se vloží i fonty, aby bylo možné PDF bez problémů číst na zařízeních Apple či Android - ovšem pozor, písma několikanásobně zvětší velikost souboru.

 

Vytvoření tiskové sestavy

 

Vytvořením nové tiskové sestavy vznikne soubor typu „fr3“. Jméno souboru zadává uživatel. Umístění souboru je v adresáři Reporty, event. v dalším podadresáři, který uživatel zvolí.

 

Postup provedení:

 

1.      vstup do modulu na seznam dat nebo na doklad, kde je potřeba tiskovou sestavu vytvořit

2.      volba menu Tisk – Manažer tiskových sestav

3.      vstup na záložku (adresář), ve kterém má být tisková sestava umístěna. Ve spodním řádku okna se v poli „Jméno souboru“ objeví název adresáře, do kterého bude sestava umístěna.

4.      volba tlačítka „Přidat“

5.      vybrat tisková sestava FastReport a zadat název souboru pro tiskovou sestavu (název souboru již nesmí být použit)

6.      práce v tiskové sestavě – prvním hlavním krokem v nové sestavě je založení stránky, což se provede pomocí menu Soubor / Nová stránka a dále přiřazením datových pruhů pomocí menu Report / Data, kde je potřeba zaškrtat tzv. datasety, ze kterých se budou používat datové prvky. Na seznamech se zaškrtává nejčastěji dataset MASTER, na dokladech MASTER a DETAIL. Můžou být dle potřeby použity i další datasety. Na dokladu znamená dataset MASTER hlavičku dokladu, DETAIL jeho položky, DETAIL02 vazby mezi doklady a DETAIL03 účtování. Nemusí to tak však být vždy.

7.      před uložením sestavy je dobré ji pojmenovat pomocí menu Report / Nastavení. Na záložce Popis se vyplní pole Název. Zde uvedený text je zobrazován při hledání sestavy pro přiřazení na stanici a pod ním ho pak uživatel vidí v menu Tisk.

 

Doporučení – ve většině případů chce uživatel vytvořit novou sestavu, která se lehce odlišuje od již existující, proto je vhodné novou sestavu vytvořit tak, že se otevře do oprav sestava již existující, přejmenuje se a uloží pod novým názvem. Pak se již provádí jen drobné úpravy místo tvorby celé sestavy a není nutné provést kroky uvedené výše v bodě 6.

 

Více stránek – ve FastReportu je možné připravit sestavu s více stránkami, pak je zde Page1, Page2,… Příkladem může být například dodací list, který se vytvoří na Page1, kterému se vždy tiskne např. záruční list (ať už nějaký obecný nebo i Page2 může tisknout záruční list pro každou dodávanou položku.

 

Uspořádání tiskové sestavy

           

Oddíly

 

Oddíly slouží k logickému uspořádání sestavy. Například když vložíme prvek do pruhu záhlaví stránky, říkáme FastReportu, že vložený prvek musí být nahoře na každé stránce reportu.

 

Oddíly jsou:

·      Název reportu        tiskne se jednou na začátku sestavy

·      Záhlaví stránky       tiskne se na začátku každé stránky

·      Zápatí stránky        tiskne se na konci každé stránky (oddíl je ukotven k patě stránky)

 

Speciálním typem oddílu je záhlaví  a zápatí skupiny. Pomocí těchto pruhů je možné provádět v sestavě skupinování podle zadaných kritérií. Vytvoření skupiny je popsáno níže.

Datové pruhy

 

Datové pruhy jsou nejdůležitější částí každé sestavy ve FastReportu. V seznamu jsou označeny ikonou . Každému pruhu je možné přiřadit skupinu dat, která se v něm má zobrazovat. Skupinu dat je ale nutné nejdříve aktivovat v menu Report / Data. Je možné vybrat hlavní data (master) nebo detailní data (detail). Na dokladu představuje hlavička hlavní data a položky na dokladu detailní data. Datovému pruhu je možné přiřadit i výsledek vlastního SQL dotazu.

K dispozici jsou následující typy datových pruhů, které se opakují pro každý záznam:

 

·      Hlavní data       

·      Podrobná data

·      Podřazená data

·      Data 4. – 6. úrovně

 

Oddíly i datové pruhy je možné umístit i svisle.

 

 

Popis pracovního prostředí

 

1 – pracovní plocha návrháře

2 – hlavní menu

3 – nástrojová lišta

4 – lišta objektů

5 – mód práce se sestavou

6 – záložky sestavy (kód, data, stránka)

7 – strom sestavy – zde je seznam objektů umístěných v sestavě

8 – „Object Inspector“ – nastavení vlastností objektů sestavy a událostí

9 – datový strom – položky, se kterými lze v sestavě pracovat či programové funkce

10 – pravítka

11 – stavový řádek

 

 

 

Rozdíly mezi verzí 3, 4 a 5

 

-          4: nová záložka Data – ta je z pohledu kompatibility největší změnou, jak už bylo výše uvedeno

-          4: nová nástrojová lišta zarovnání   Obecně práce se zarovnáváním spočívá v označení hlavního prvku a následně k označení ostatních prvků, které se podle prvního mají zarovnat (proběhne kliknutím na první a pak s podržením Shift na ostatní).

-          4: změna vzhledu, jako je například změna barvy datasetu ze světle modré na oranžovou či změna ikon či jejich uspořádání (objekt Čára již není samostatně ale součástí objektu Kresba)

-          5: nově možnost tisku QR kódu

-          5: nově možnost podmíněného formátování textu či skrývání polí (bez nutnosti toto složitě vytvářet v programovém kódu sestavy)

 

Nastavení vlastností sestavy

 

Název sestavy (zobrazuje se v seznamu tiskových sestav):

Menu Report / Nastavení / Záložka Popis – pole Název

 

Zde je potřeba sestavu pojmenovat. Tento údaj je zobrazován při vyhledávání sestavy na disku při jejím přiřazení do menu Tisk.

 

Vzhled stránky (velikost papíru, okraje):

            Menu Soubor / Nastavení stránky

 

Okno slouží pro nastavení velikosti a orientace stránky a okrajů.

 

Vybraná nastavení na záložce „Další nastavení“:

- zaškrtnutím volby „Velká výška v módu úprav“ se zvětší výška pracovní plochy, aby bylo možné upravovat objekty, které by byly jinak schované (pokud je při tvorbě nutné mít oddíly či pruhy vysoké).  Nemá vliv na chování sestavy během tisku.

- zaškrtnutím volby „Endless page height“ se stránka nastaví jako nekonečná. Toto nastavení má oproti předchozímu význam na vzhled tisku. Nebude probíhat stránková sestavy dle nastavení její výšky, ale vše vytiskne na jednu stránku. Její výška bude závislá na počtu řádků. Typickým příkladem je tisk účtenky ze supermarketu.

- poli „Duplex“ je potřeba nastavit „po délce“, pokud se tiskne na tiskárnu s výchozím oboustranným tiskem. Zajistí se to, že když je doklad vícestránkový, tak se tiskne z obou stran, ale pokud se tiskne více kopí, nová kopie začíná vždy na novém listu.

 

 

 

Tyto hodnoty lze též nastavit v panelu Vlastnosti při kliknuté na stránku mimo jakýkoliv pruh. Mezi hlavní vlastnosti patří:

BackPicture – vložení obrázku jako pozadí na stránku. Velikost vloženého obrázku může mít vliv na rychlost načtení sestavy

BottomMargin – velikost okraje dole

LargeDesignHeight – zaškrtnutí hodnoty (přepnutí na True) zapne velkou výšku v módu úprav

LeftMargin – velikost okraje vlevo

PageHeight – výška stránky

PageWidth – šířka stránky

RightMargin – velikost okraje vpravo

TopMargin – velikost okraje nahoře

 

 

Vkládání oddílů a datových pruhů do sestavy

 

Objekty je potřeba umisťovat do oddílů či do datových pruhů, aby bylo zajištěno jejich správné zobrazování (pokud bude vytvářena sestava pro doklad, pak je potřeba hodnoty z položek dokladu vkládat do datového pruhu Hlavní data).

Výběr požadovaného datového pruhu (datasetu) se provede kliknutím na tlačítko  a následně na jednu z možností. Při výběru některého z datových pruhů se před vložením na stránku systém zeptá na výběr skupiny dat (datový set). Při tvorbě sestavy nad seznamem dokladů se vybírá MASTER, při tvorbě dokladu pro tisk položek DETAIL (výjimečně může být DETAIL02 či DETAIL03). Některé pruhy lze přemisťovat, a to pomocí myší (stiskne se levé tlačítko myši, podrží se a pruh se přetáhne nad či pod jiný pruh). To se použije např. při dodatečném vkládání skupin, kdy je potřeba vložit Záhlaví skupiny, které se umístí pod pruh s hlavními daty a je potřeba ho mít umístěný nad ním.

 

Popis hlavních vlastností oddílů a pruhů

upravitelných pomocí "object inspectoru":

 

ColumnGap – pokud je v následujícím řádku uvedeno nenulové číslo a data jsou tak umístěna do více sloupců, je potřeba zde určit mezi sloupci

Columns – počet sloupců. Standardně jsou na jednom řádku sestavy zobrazeny údaje jen jednoho záznamu (na seznamu jednoho dokladu, na dokladu jedné položky). Pokud chceme např. tisknout štítky, kdy  jich je víc vedle sebe, zadá se zde počet sloupců

Column width – šířka sloupce

DataSet – vybraná skupina dat při vložení pruhu

 

Jsou zde umístěny též údaje o umístění a velikost oddílu či pruhu.

 

Záložka Události, která je též součástí vlastností objektů, je popsána níže.

 

 

 

 

Popis jednotlivých typů oddílů a datových pruhů

 

Jsou zde popsány nejčastěji používané oddíly a datové pruhy. Jejich výběr se zobrazí po stisku tlačítka . V závorce je uveden anglický název, kterým je označen pruh vložený na stránku sestavy.

 

Název Reportu (ReportTitle) – vždy je na sestavě umístěn na prvním místě. Nejčastěji je používán pro prvky hlavičky dokladu, která se nemá na dalších stránkách opakovat (např. údaje zákazníka na faktuře vydané se mají v případě vícestránkového dokladu tisknout jen na první stránce).

Souhrn Reportu (ReportSummary) – vždy je na sestavě umístěn na konci stránky (pod ním je jen zápatí stránky – viz níže) a prvky v něm umístěné se tisknou na konci sestavy.

Záhlaví stránky (PageHeader) – je vždy na začátku stránky (před ním je pouze název reportu), ale na rozdíl od názvu stránky se opakuje na dalších stránkách. Nejčastěji se používá na sestavách seznamů = na každé stránce musí být uvedena hlavička (název sestavy, datum a čas tisku,…).

Zápatí stránky (PageFooter) – umístěn zcela na konci sestavy a tiskne se na každé stránce (jako záhlaví).

Záhlaví (Header) – nepoužívá se samostatně – umísťuje se před hlavní data. Vkládají se sem popisky prvků uvedených v hlavních datech.

Zápatí (Footer) – stejně jako záhlaví se nepoužívá samostatně, ale vkládá se za hlavní data. Někdy se tento pruh použije místo souhrnu reportu.

Hlavní data (MasterData) – datový pruh pro tisk prvků s opakováním řádků, tedy na dokladech pro jejich položky a na seznamech pro jednotlivé záznamy.

Podrobná data (DetailData) – jedná se funkčně o stejný datový pruh jako hlavní data, ale pro tisk údajů o jednu úroveň níže. Běžným využitím je tisk výrobních čísel na položkách skladových dokladů (položky dokladů jsou v hlavních datech a jejich výrobní čísla v podrobných datech). Další pruhy až po 6. úroveň nejsou v Signysu používána.

Záhlaví skupiny (GroupHeader) – hlavní datový pruh po zajištění skupinování dat. Této oblasti se níže věnuje samostatná kapitola Používání skupin.

Zápatí skupiny (GroupFooter) – využití pro zobrazení nejčastěji součtů definované skupiny.

Podřazená (Child) – datový pruh, který je podřízený jinému datovému pruhu. Proto se běžně nevkládá přes tlačítko , ale tak, že se nad vybraným (nadřazeným) datovým pruhem stiskne levé tlačítko myši a následně se vybere volba „Add child band“. Tím se navíc zajistí provázání pruhů. Tento pruh se tiskne v případě, kdy se tiskne i nadřazený. Navíc je v něm možné umístit prvky, které nejsou ovlivňovány napřímo prvky v nadřazeném pruhu (myšlen je např. posun prvků, čímž se např. řeší problémy u prodejek, kdy se názvy karet nemusí vejít na jeden řádek a jsou víceřádkové, což může negativně ovlivňovat posun prvků pod nimi) a taky je lze „spravovat“ společně, ale nezávisle na prvcích nadřazeného pruhu. Použito je např. na pokladních dokladech či fakturách vydaných, kdy jsou údaje EET umístěny zde a pokud doklad nepatří do EET, celý pruh se netiskne = nezhasínají se jednotlivé prvky, což by mj. navíc znamenalo, že by zde zůstalo na sestavě prázdné místo. To se při zhasnutí celého pruhu nestane. Možnost zhasínání pruhů či prvků je popsáno níže v kapitole Kód sestavy.

 

První čtyři popsané datové pruhy mohou být na jedné stránce umístěny pouze jednou, proto po jejich vložení dojde k znepřístupnění možnosti vložit pruh znovu.

 

Důležité

Věnujte pozornost dalším možnostem datových pruhů, které se zobrazí po stisku pravého tlačítka myši na podbarvenou část umístěného pruhu (šedý nebo oranžový pruh). Pokud je v datovém pruhu umístěn prvek, který má nastaveno „Přizpůsobit velikost“, je toto nutné nastavit i zde.

 

 

 

Vkládání datových objektů do sestavy

 

Vložit nový objekt do sestavy je možné pouhým přetažením myši ze „stromu sestavy“.

Úpravu pozice a velikosti objektu provedeme opět myší. Pozici změníme kliknutím do oblasti objektu s přetažením na nové místo. Uvolněním se objekt na dané místo vloží. Po kliknutí na objekt se v rozích a středech všech stran zobrazí černé čtverce, pomocí kterých je možné změnit velikost objekt. Velikost a pozici lze měnit též klávesnicí. Pomocí kláves Ctrl+kurzorová šipka dochází k posunu objektu příslušným směrem. Pomocí kláves Shift+kurzorová šipka dochází ke změně velikosti (šipky doprava a dolů objekt zvětšují, šipky doleva a nahoru ho zmenšují). Úpravy lze provádět též hromadně, pokud je současně označeno více objektů. To lze provést buď kliknutím na první objekt a dále za současného držení klávesy Shift klikat na další objekty nebo celkovým označením pomocí přetažení myší nad všemi objekty. Je nutné kliknout na místo mimo pruhy a při stálém držení levého tlačítka myši vybrat celou oblast. Všechny objekty, které oblast zasáhne, budou označeny.

Písmo a styl písma upravíme pomocí nástrojové lišty. Na výběr jsou veškerá písma dostupná ve Windows. Objektům lze dále nastavit orámování (styl, barvu a tloušťku čáry), barvu písma a pozadí.

Veškerá nastavení objektů jsou dostupná také z „object inspectoru“ na záložce vlastnosti.

Všechny textové objekty jsou typu memo a tak jsou i standardně pojmenovány. K jejich rozlišení se používá pořadové číslo. Pokud by uživateli nevyhovovalo automatické pojmenování, má možnost ho pomocí vlastnosti „Name“ v „object inspectoru“ změnit.

 

Popis hlavních vlastností objektů upravitelných pomocí "object inspectoru":

 

Align – způsob zarovnání v rámci oddílu nebo datového pruhu

AllowExpression – povolení výrazů (zda se má text vyhodnotit jako výraz nebo pouze zobrazit)

Color – barva pozadí objektu

DataField – datová položka z DataSetu

DataSet – oblast dat (master / detail)

Font – definice písma

HAlign – horizontální zarovnání v rámci oblasti objektu

Height – výška objektu

Left – odsazení objektu od levého okraje oddílu

Name – název objektu

Printable – true znamená, že je objekt tisknutelný

Rotations – definice natočení textu uvnitř objektu ve stupních

Top - odsazení objektu od horního okraje oddílu

Underlines – linky řádků

VAlign - vertikální zarovnání v rámci oblasti objektu

WordWrap – zalamování textu

Width – šířka objektu

Datový strom

Jak už bylo uvedeno výše, jde o oblast, ze které je možné vybírat objekty a umisťovat na pracovní plochu (do vybraných oddílů či datových pruhů). Strom je rozdělen na jednotlivé záložky.

 

Data – výběr z polí datových tabulek jejich zobrazení závisí na výběru datových skupin při tvorbě nové sestavy (viz výše kapitola Datové pruhy).

 

Proměnné – výběr z hodnot parametrů tiskových sestav a parametrů firmy. V návrháři Sinea se tato oblast jmenuje Parametry. Nacházejí se zde též hodnoty jako datum a čas tisku, strana (Page#) či celkový počet stran sestavy (TotalPages#).

 

Funkce – matematické, datumové, řetězcové a další funkce

 

Classes – třídy objektů. Pro vkládání do sestav se nepoužívají.

 

 

 

 

 

 

Používání dalších typů objektů

 

Na sestavu lze vkládat i jiné objekty než ty, které jsou součástí datového stromu. Ikony pro jejich výběr se nacházejí na liště objektů.

 

Text

*                 Objekt, do kterého je možné napsat libovolný text. Klikne se na uvedenou ikonu a následně na pracovní plochu sestavu, kde má být objekt umístěn. Otevře se okno, kde se napíše text.

 

V horní části okna se nachází na záložce „Text“ ikony pro další možnosti práce.

 - možnost vložení hodnot z datového stromu

 - možnost vložení agregované proměnné (součty, násobení hodnot,…)

* - možnost nastavení zalamování slov

Na záložce „Formát“ je možné nastavit formátování číselných či datumových polí – viz níže.

Na záložce „Hightlight“ je možné nastavit podmíněné formátování či skrývání textu – viz níže.

 

Po dokončení zadávání a úprav se potvrdí kliknutím na ikonu zeleného zaškrtávátka.

 

V textovém poli je tedy možné vytvářet kombinace textových řetězců a hodnot datového stromu.

 

 

 

Obrázek

        Na sestavu je možné vložit obrázek typu BMP, JPG, ICO, WMF nebo EMF. Po vložení objektu na pracovní plochu sestavy se otevře okno s lištou nástrojů. Kliknutím na ikonu  se otevře okno pro vyhledání obrázku. Na rozdíl od návrháře Sinea je obrázek vložen do sestavy a není tedy nutné, aby byl poté k dispozici v dané složce či k ní měli přístup ostatní uživatelé. Soubor představující sestavu je ovšem větší než podobný v Sinee. Po uložení okna s načteným obrázkem je potřeba upravit velikost objektu na sestavě, aby byl obrázek korektně zobrazen. Velké obrázky můžou zpomalovat načítání tiskové sestavy.

 

Podsestava

        Podsestava (subreport) nalezne využití v komplikovanějších sestavách, kde není možné využít oddíly či datové pruhy. 

 

Kresba

*       Výběr z dalších grafických objektů jako je např. čára (do verze 3 byla v liště jako samostatný objekt), šikmá čára, elipsa či zaoblený čtyřúhelník.

Vytvoření čáry: Po výběru kresby „Objekt čáry“ se na pracovní ploše klikne na začátek čáry a při stálém držení levého tlačítka myši se pokračuje až na konec čáry. Změna velikosti (délky) je shodná jako u ostatních objektů. Pomocí nástrojové lišty lze měnit tloušťku a typ čáry. 

 

Systémový text

         Systémový text sloužící pro vkládání systémových a agregátních proměnných. Vhodnější je použít systémovou funkci v okně textového pole, a to z důvodu následných lepších oprav.

 

Čárový kód

        Po výběru se otevře okno, kde se nastaví, jaká hodnota má být zobrazena ve formě čárového kódu, jaký typ má být použit a další vlastnosti.

 

 

2D kód

*                Prvek je umístěn pod stejným objektem, tedy mezi čárovými kódy. Po výběru typu (nejčastěji asi QRCode) je potřeba kliknout do místa, kde bude umístěn. Na rozdíl od čárového kódu se neotevře okno pro nastavení údajů či vlastností. Velikost kódu se určuje ve vlastnostech prvku (oblast výše popsaná jako „Object Inspector“). Zde je potřeba rozbalit „BarProperties“ – změna se provede na řádku PixelSize (výchozí je 4).

Údaje, které mají být ve 2D kódu obsaženy, lze nastavit dvěma způsoby:

-          ve vlastnostech do řádku Expression je potřeba zadat požadovaný údaj. Pokud zde má být údaj napevno (což je málo pravděpodobné), tak text musí být umístěn v apostrofech. Pokud zde má být datový prvek, tak musí být v ostrých závorkách – název firmy zákazníka by zde byl zapsán <MASTER.“F$Firma“> (fakturační adresa na faktuře), název vystavitele faktury <FIRMA>. Bohužel prvky není možné přetahovat z datového stromu, ale musí být napsány ručně

-          v kódu sestavy (záložka Kód). Sestavování kódů sestavy se věnuje samostatná kapitola níže.

 

Křížová tabulka

        Do tiskové sestavy je možné vložit tabulku, ve které lze nadefinovat obě její osy. Sloupce tedy nejsou stanoveny napevno jako u běžné sestavy, ale určuje je vybraný datový údaj (či údaje). Tvorbě těchto tabulek se věnuje níže samostatná kapitola. 

 

 

Formátování hodnot objektů

 

Formát hodnoty objektu lze nastavit jednak pomocí nástrojů nástrojové lišty (velikost či řez písma) a jednak pomocí funkce formát. Ten je možné nastavit buď otevřením objektu (dvojklikem) a výběrem záložky Formát nebo kliknutím na objekt pravým tlačítkem myši a výběrem Formát zobrazení.

 

 

U číselných hodnot se nejčastěji využívá formát uvedený na obrázku, který zajistí zobrazení s oddělením tisíců a počtem desetinných míst uvedeným před písmenem n (3 desetinná místa = %2.3n).

 

 

Podmíněné formátování textů

 

Každý textový objekt (prvek Memo) lze formátovat nejen standardním způsobem jako změna fontu, řez písma, jeho velikost, či barva, ale tyto úpravy lze provést s nastavením podmínek. Nastavení se provádí na záložce „Highlight“ nebo pouhým kliknutím na prvek (bez editace) nebo v panelu nástrojů na .

 

Na obrázku je uveden příklad, kdy v případě, že prodejní cena s DPH bude nulová, bude text tohoto pole (může to být jiné pole, než ta cena) tučný červený na zeleném pozadí. Toto nastavení se provede tak, že se stiskne tlačítko „Add“ pro přidání podmínky. Otevře se seznam prvků, kde se zadá požadovaná podmínka. Tlačítko Frame se použije v případě orámování pole, Fill pro výplň pole a Font pro nastavení textu. Dále je zde možnost zrušit zaškrtnutí pole „Visible“, čímž by se pole při splnění dané podmínky zneviditelnilo.

 

Vlastnosti objektů

Velice často je nutné provést další nastavení vlastností objektů. Vyvolání nabídky se provede kliknutím pravého tlačítka myši na objektu. Zde jsou popsány nejpoužívanější změny nastavení.

 

Upravit – otevře obsah objektu (stejné jako dvojklik na objekt) 

Formát zobrazení – popsáno v předchozí kapitole

Zalamování – zapnutí zalamování obsahu, pokud se nevejde na jeden řádek v celé šířce objektu (význam pouze, když je objekt dostatečně vysoký)

Skrýt nuly – využívá se u datumových polí. Pokud se tiskne datumové pole, které není vyplněno, pak při nezaškrtnutí vlastnosti sestava zobrazí 30.12.1899. Funkci je možné využít i u čísel (0 se pak nezobrazí)

Přizpůsobit velikost – používá se např. u úvodních či závěrečných textů dokladu, kdy na sestavu se umístí objekt o výšce jednoho řádku a pokud je text dokladu příliš dlouhý, objekt se přizpůsobuje tak, aby se na sestavě zobrazil celý. V tomto případě je nutné stejným způsobem vyvolat menu nastavení oddílu či datového pruhu, kde se uvedený objekt nachází a též zaškrtnout volbu Přizpůsobit velikost.

Přenést dopředu/ Odeslat dozadu – pokud se některé objekty překrývají, je někdy potřeba určit, jak mají být umístěna. Když bude na sestavě několik objektů s daty a pak se sem přidá objekt jako rámeček (přes všechny předchozí objekty), bude coby poslední z nich umístěn nad ostatními objekty. Pokud se na něm nenastaví „Přenést dozadu“, nebude možné s objekty u místěnými pod ním pracovat.

 

 

Použití složených, výpočtových a systémových textů

 

Složený text

 

Často nastane případ, kdy je potřeba mít v jednom objektu text i hodnotu z datového stromu.

 

Postup:

-          vložení objektu Text

-          zapsat text

-          stisknout tlačítko  pro možnost výběru z hodnot datového stromu – vybranou hodnotu přenést do dolní části (pole Výraz) dvojklikem a potvrdit stiskem OK

-          dle potřeby pokračovat třeba dalším textem či opětovným vložením jiné hodnoty a vše uložit

 

Příklad, kdy chci mít objekt se zněním: Uplatněná sleva je „hodnota z datového stromu“ Kč

 

 

Hranaté závorky mají v návrháři FastReport velký význam. Pokud je jimi text označen, systém obsah nevnímá jako text, ale jako hodnotu.

 

Výpočtový text

 

Použije se v případě, že chceme zobrazit vypočtenou hodnotu, která k dispozici v datovém stromu není, ale lze ji vytvořit z jiných hodnot. Příkladem je celková hmotnost položky dodacího listu vydaného, kdy k dispozici máme jednotkovou hmotnost a počet.

 

Postup:

-          vložení objektu Text

-          stisknout tlačítko  pro možnost výběru z hodnot datového stromu – vybranou hodnotu pro počet a přenést do dolní části (pole Výraz) dvojklikem, zadat znaménko krát a stejným způsobem doplnit hodnotu pro jednotkovou hmotnost a potvrdit stiskem OK

-          objekt uložit

 

 

Důležité je, aby celý výraz byl v hranatých závorkách. Toho se docílilo právě tím, že se výpočet napsal najednou a jednotlivé hodnoty se nepřenášely do textového objektu samostatně. Důležité též je, že jsou hodnoty v ostrých závorkách. Pokud bychom chtěli mít hodnoty zobrazeny zvlášť, pak by výraz vypadal [DETAIL."Pocet"]*[DETAIL."Hmotnost"] a na sestavě by se netisklo 15, ale 3*5.

 

Systémový text

 

Zde se navíc používají agregátní proměnné. Například chci v oddíle Souhrn sestavy sečíst určitě hodnoty z položek – na seznamu faktur vydaných hodnotu všech faktur.

 

Postup:

-          vložení objektu Text

-          stisknout tlačítko  pro zobrazení okna systémového textu – zde se vybere SUM a pak stisknutím tlačítka na řádku Výraz se zadá, co se má součtovat (hodnota či výpočtový výraz). Nebo je to možné zadat jako na obrázku, kdy se z nich vzor též sestaví. Rozdíl je v tom, že použitím „Datové pole“ není možné sestavy výpočtový vzorec, ale vybrat pouze jeden údaj. Zadání hodnoty „Pruh dat“ má velký význam v případě, že je na sestavě více datový pruhů – např. na faktuře vydané jeden pro fakturované položky a druhý pro nedodané položky.

 

 

 

Používání skupin

 

Pokud je potřeba data skupinovat, je potřeba na pracovní plochu vložit pruh Záhlaví skupiny. Zde se definuje, dle jaké hodnoty se budou data skupinovat (vybere se skupina dat a pole této skupiny). Záhlaví skupiny musí být před pruhem Hlavní data, ke kterému se váže. Na rozdíl od návrháře Sinea je nutné záhlaví skupiny použít, protože zde se určuje, dle čeho bude prováděno. Pokud se v něm nemá nic tisknout, tak se nastaví výška pruhu na nulu.

 

 

Důležité!!!

Aby skupinování fungovalo správně, je potřeba na sestavě nastavit řazení dle údajů, podle který se má skupinovat. Je potřeba si přečíst níže uvedenou kapitolu „Kód sestavy“ a po prostudování postupu pak příklad 2, kde jsou uvedeny možnosti řazení.

 

Křížové tabulky

 

Do tiskové sestavy je možné vložit tabulku, ve které lze nadefinovat obě její osy. Sloupce tedy nejsou stanoveny napevno jako u běžné sestavy, ale určuje je vybraný datový údaj (či údaje). Na liště objektů se klikne na  a pak na pracovní plochu návrháře. Na rozdíl od ostatních prvků nemusí být tabulka umístěna v datovém pruhu (určitě se nevkládá do MasterData). Ihned se otevře okno pro nastavení tabulky.

Příklad již nastavené tabulky je uveden na následujícím obrázku. V tomto okně se sestaví struktura tabulky. Změna popisků, jejich barva či podbarvení polí se provede po uložení tohoto nastavení přímo nad vloženou tabulkou. Obrázek je až po provedení obou kroků. Ukazuje matici stavu skladu pro položky s označením velikostí a barev.

 

 

V horní části tabulky se nejprve určí datový pruh pro zdrojová data – na seznamu je to jednoduché, vždy je to MASTER. Naplnění polí s údaji na řádcích, sloupcích a pro zobrazení hodnot se provádí přetažením myši ze zdrojových dat do daného pole (klasický drag and drop). Pokud je pro řádky nebo pro sloupce určeno více hodnot, nabídne se generování mezisoučtu. Ten je možné zrušením zaškrtnutí vypnout. Změna pořadí se provádí též myší – klikne se na prvek „Barva“, stále se drží levé tlačítko myši a posune se lehce výše nad „Název“ a tlačítko myši se pustí. U řádů a sloupců lze určit řazení dat, u zobrazovaných hodnot (zde je to StavCelkem) se nejčastěji ponechá zobrazení součtu (může to být i průměr či další matematické funkce). Prohození řádků a sloupců se provede kliknutím na tlačítko .

Další nastavení, která zde lze provést, jsou formou zaškrtávacích polí v pravém dolním roku okna. Prvních pět voleb se většinou nechává zaškrtnutých, jak je uvedeno na obrázku – toto je i výchozí nastavení. Při založení nové tabulky je zaškrtnuta i volba „Auto size“, která se snaží maximálně zmenšit (na výšku i na šířku) jednotlivé sloupce a řádky dle obsahu polí. Je na zvážení, zda je toto přínosem nebo pevné rozměry tabulky. Volba „Side-by-side cells“ má význam v případě, že je zobrazováno více hodnot (zde na obrázku je pouze StavCelkem). Pokud není zaškrtnuto, jsou hodnoty pod sebou, v případě zaškrtnutí jsou vedle sebe. Volba „Join equal cells“ provede při zobrazení výsledků propojení buněk tabulky se stejnou hodnotou, pokud jsou buňky vedle sebe. Na obrázku je vidět část tabulky, kde je při porovnání s níže zobrazenou celou tabulkou vidět, že u modré barvy jsou spojené buňky pro velikost M a XL.

 

 

Po dokončení všech nastavení se struktura tabulky uloží stiskem tlačítka OK. Takto vypadá tabulka na pracovní ploše.

 

 

Návrat do editace struktury tabulky se provede dvojklikem na tlačítko .

 

Změna barvy písma, podbarvení polí či změna textů popisků se již provádí zde. Na vybrané pole se klikne a pak se pomocí tlačítek na nástrojové liště provedou změny. Pokud jde o změnu textu popisků, tak pole lze otevřít např. dvojklikem, kdy se otevře okno pro - standardní Memo pole. Využít lze též podmíněného formátování, jak je popsáno výše, kdy např. hodnota nad 1000 bude zobrazena červenými číslicemi. To se provede tak, že se na pole s hodnotou (na obrázku výše je to jedno z těch, kde je nula) klikne a pak na nástrojové liště na tlačítko . Možnosti formátování jsou popsány výše.

 

Na dalším obrázku je výsledek – vytištěná tabulka.

 

 

Dotazy do databáze

 

Jednou z předností FastReportu je možnost na sestavě zobrazit hodnotu, která není v datovém stromu k dispozici, ale je možné ji dohledat pomocí hodnot nabízených prvků.

 

Důležité: přístup k databázi Firebird může být v IS Signys pomocí dvou ovladačů – IBX (již se nepoužívá) nebo FIBPLUS. Používaný ovladač se zjistí v aliasech databází (možnost zobrazit při přihlašování), a to na hlavní záložce Systémový alias. Podle tohoto nastavení nutné zvolit, který z dotazů bude možný použít.

 

Na příkladu si ukážeme FIB dotaz na sestavě pro fakturu vydanou, kdy chceme tisknout text pole Referent z karty partnera, který je na dokladu. Tato hodnota v datovém stromu pro fakturu vydanou není.

 

Postup:

  1. přechod na záložku Data, kde se dotazy vytváří
  2. stisk tlačítka  a klik na volnou plochu vedle – objeví se objekt FIBQuery1
  3. otevření tohoto objektu dvojklikem – otevře se okno, kde se zapíše SQL dotaz
  4. ten bude: select referent from adrktgm01 where cf =:p  (p je parametr – může být cokoliv jiného)
  5. ve vlastnostech objektu (vlevo) dvojklik na volbu přiřazení hodnoty parametru (TfrxParams)
  6. kliknout na tlačítko  a výběr hodnoty z datového stromu, dle které budeme údaj z karty partnera dohledávat. V našem případě je to číslo firmy, tedy <MASTER."F$CF">

 

Nový objekt FIBQuery1 je v případě správně napsaného dotazu přidán do datového stromu. V něm se nachází všechny hodnoty, které jsme do dotazu zadali (v našem případě jen REFERENT) a ty je možné standardním způsobem vkládat do sestavy.

Z uvedeného postupu je zřejmé, že dotazy může tvořit pouze uživatel, který zná názvy tabulek a jejich sloupců. Pokud je dotaz použit na seznamu či položkách dokladu, je potřeba ještě v kódu sestavy (viz níže) zajistit jeho vypnutí a opětovné zapnutí pro každý záznam. Pokud by se to neudělalo, provedl by se dotaz pouze jednou na prvním záznamu a všechny následující by pak měly stejnou hodnotu.

 

 

Kód sestavy

 

Záložka Kód je používána pro nastavení dalších vlastností objektů či oddílů a pruhů. Aby sestava věděla, pro kterou oblast je programový kód používán, využívá se záložky Události.

Postup:

  1. ve stromu sestavy se vybere objekt či pruh, pro který je potřeba napsat kód
  2. vybere se záložka Události
  3. ve většině případů se zvolí možnost OnBeforePrint (co se stane před tiskem sestavy) – dvojklikne se na tomto řádku do prázdného okna – tím se vytvoří v záložce Kód hlavička procedury, která se zde přiřadí – zde vypadá takto:

procedure Memo94OnBeforePrint(Sender: TfrxComponent);

begin

 

end;

  1. přejde se na záložku Kód a procedura se doplní

 

Důležité: Pokud je procedura špatně napsaná, brání v zobrazení celé sestavy. Při pokusu o tisk se objeví chybové hlášení. Pokud je procedura vytvořená, ale na prvku chybí odkaz (viz obrázek), jako by nebyla. Vždy zde musí být na konci begin a end. = pokud by se vytvořený kód mazal, výchozí dva řádky zde musí zůstat – jinak sestava nebude fungovat. Pokud budete tvořit dotazy do databáze, věnujte pozornost níže uvedenému příkladu č. 3.

 

Příklady:

 

1. skrývání hodnoty = chceme, aby se na sestavě nezobrazovala hodnota objektu Memo18, které představuje datumové pole, pokud je starší (= menší) než např. 1.1.1980.

 

procedure Memo18OnBeforePrint(Sender: TfrxComponent);

begin

  if <DETAIL."DatumExpedice"><'01.01.1980' then

  begin

       Memo18.Visible := False;

  end

  else

  begin

      Memo18.Visible := True;

  end;

end;

 

2. řazení dat na sestavě. To se nastavuje většinou na celou stránku (Page1) nebo sestavu (Report). Tím se sestavě vnutí řazení bez ohledu na, jak jsou řazena data, nad kterým tisk probíhá.

Na příkladu je uvedeno řazení vzestupně – ASC (sestupně je DESC).

 

procedure Page1OnBeforePrint(Sender: TfrxComponent);

begin

  sorton('DETAIL','Poradi','ASC'); 

end;

řazení dle více polí vypadá takto:

 

procedure Page1OnBeforePrint(Sender: TfrxComponent);

begin

  sorton('DETAIL','ObjZakaznik;Poradi','ASC');

end;

 

ovlivnění vzestupnosti řazení dle každé hodnoty zvlášť:

 

procedure Page1OnBeforePrint(Sender: TfrxComponent);

begin

  sorton('DETAIL','ObjZakaznik:D;Poradi:A','ASC');

end;

 

3. vypnutí a zapnutí dotazu při jeho použití na seznamu či na dokladu na položkách. Kód se vytvoří pro datový pruh, ve kterém je použita hodnota dotazu. Význam použití je vždy při použití dotazu do databáze na seznamu (seznam dokladů, seznam položek dokladu), aby se vždy s novým řádkem na sestavě dotaz znovu provedl. Pokud by se tak nestalo, dotaz by proběhl jen na prvním řádku a další řádky by zobrazovaly stále stejný výsledek.

procedure MasterData1OnBeforePrint(Sender: TfrxComponent);

begin

  FIBQuery1.Active:=False;

  FIBQuery1.Active:=True;

end;

 

4. výpočet hodnoty. Jak už bylo uvedeno výše, výpočty lze tvořit pomocí výpočtových a systémových textů. Může však nastat situace, kdy potřebujeme vytvořit vzorec, který pak dále používáme do dalších vzorců. Bylo by velice nepřehledné vytvářet složité a dlouhé výpočtové či systémové texty přímo v polích. Pak je dobré si funkci vytvořit v kódu a v jednotlivých polích se na ni odkazovat. Jde zde vlastně o stejný princip, jako je potřeba často použít v Sinee, která má pro každou funkci jen omezený počet znaků.

Dalším příkladem je potřeba použití zobrazování či nezobrazování polí v závislosti na výsledek výpočtového či systémového textu.

 

Princip použití:

- kódu je potřeba nejdříve deklarovat proměnnou, jejichž hodnotu budeme vypočítávat či zjišťovat. To se provede tak, že se hned na začátek stránky záložky kód zadá slovo VAR a pak se uvede název proměnné a nakonec její typ (real = číslo, string = řetězec) Příklad: VAR cenamj:real; Pokud je proměnných více se stejným typem, uvedou se vedle sebe oddělené čárkou VAR cenamj,vypocet:real;

 

- standardním způsobem se založí procedura pro datový pruh, ve kterém se výpočet provádí a vytvoří se výpočtový či systémový text, kde se nejdříve uvede deklarovaná proměnná a za ní dvojtečka a rovná se

 

Příklad:            if <MASTER."Mena">=''   then                                   Pokud není na dokladu vyplněna

                        cenamj:=<DETAIL."ProdejPoSleve">                         měna, je použita hodnota první,

                        else                                                                            jinak ta druhá

                        cenamj:=<DETAIL."ProdejValuty">;

- na sestavě se pak v polích odkazujeme na hodnotu cenamj - např. [<DETAIL."Pocet">*cenamj]

 

5. skrytí řádku na seznamu. První příklad popisuje nezobrazení konkrétního pole. Stejný požadavek může platit i pro skrytí celého řádku.

 

Příklad:

procedure MasterData1OnBeforePrint(Sender: TfrxComponent);

begin

  if <MASTER."F$CF">=80 then MasterData1.Visible:=False else MasterData1.Visible:=True;                                                                                                                              

end;

 

Příklad ze seznamu pohledávek – pokud se na řádku objeví partner, jehož číslo je 80, pak se zcela vypustí = vůbec se nevytiskne, jako by byl i ze seznamu před tiskem odfiltrován.

Další možností využití je třeba skrytí EET údajů na dokladu, pokud doklad EET údaje neobsahuje (pokladní doklad, faktura,…) a ty jsou uvedeny v jednom pruhu – např. „Child“, jak je uvedeno výše v kapitole Popis jednotlivých typů datových pruhů.

 

6. obarvení prvku. Standardní změna barvy písma se nastaví pomocí funkce v nástrojové liště. Pokud se však má barva měnit na základě hodnoty v poli, je potřeba vytvořit proceduru. Od verze FastReportu 5 není nutné, protože toto vše lze uživatelsky nastavit funkcemi na záložce Hightlight.

 

procedure MasterData1OnBeforePrint(Sender: TfrxComponent);

begin

if <MASTER."ProdejCelkem">=0 then Memo8.Font.Color:=clRed else Memo8.Font.Color:=clBlack ;

end;

 

Pokud hodnota ProdejCelkem nulová, změní se barva písma v poli Memo8 (zde může být ta prodejní cena nebo i jiný údaj) na červenou (Red), v opačném případě je standardně černá (Black).

 

6. podpisy na sestavě. Pokud je potřeba mít na sestavě podpisy autorů dokladů, je potřeba je v prvé řadě naskenovat a uložit jako obrázek (např. ve formátu jpg). Jedna z možností je např. na sebe obrázky na sestavu vkládat a pomocí kódu jednotlivé obrázky skrývat. To je komplikované a hlavně vkládáním více obrázků tisková sestava datově narůstá. Variantou k tomuto řešení je obrázky nechat uložené na serveru v reportech (ve vybrané podsložce) a pomocí kódu je načítat. Je potřeba deklarovat proměnou a vytvořit proceduru.

 

var obr:string;                              

procedure Page1OnBeforePrint(Sender: TfrxComponent);

begin

  if <MASTER."Poridil">='Jan Adam' then obr:='adam.jpg';

  if <MASTER."Poridil">='Karel Nový' then obr:='novy.jpg';

  if <MASTER."Poridil">='Petra Lindrová' then obr:='lindrova.jpg';  

  obr:='\\signys\sgshare\reporty\podpisy\'+obr;

  picture1.filelink:=(obr);                                                         

end;

 

Na sestavu je potřeba vložit obrázek (je potřeba zkontrolovat název – zde je picture1). Cesta (označená zeleně – musí být v apostrofech) se musí napsat tak, jak ji uživatelé vidí. Ručně je potřeba vyjmenovat jména uživatelů a názvy souborů s jejich podpisy (označeno modře – musí být v apostrofech).

 

7. obsah 2D kódu. Pokud má být obsah složený z více údajů (což je velmi pravděpodobné), nemá smysl ho zadávat ve vlastnostech 2D kódu, jak je popsáno výše, ale sestavit ho zde. Standardně se sestaví procedura např. pro datový pruh, kde je 2D kód umístěn – na příklady je to ReportTitle a do něj se zapíše níže uvedený kód. Vzhledem k drobné variabilitě zápisu je zde uvedeno více příkladů:

Barcode2D1.expression:='<FIRMA>‘;  Pokud jde o textové pole, musí být v apostrofech.

Barcode2D1.expression:=<ICO>;  Číslo nemusí být v apostrofech, ale může :=‘<ICO>‘; 

Barcode2D1.expression:='<FIRMA>+<MESTO>';   Toto je příklad složení více prvků.

Pokud se výraz pro 2D kód sestaví v kódu tiskové sestavy, nezadává se ve vlastnostech prvku do řádku Expression.

 

 

 

Více stránek sestavy

 

Standardně je používána pro vytvoření tiskové sestavy pouze jedna stránka, tedy v návrháři je pouze záložka Page1. Je však možné požívat více stránek (Page2, Page3,…). Příkladem může být tiskový formulář pro Přiznání k DPH. Pokud se používá pro tisk tohoto výkazu návrhář Sinea, musí se použít dvě sestavy – jedna pro první stránku a jedna pro druhou. Další možností využití vícestránkové sestavy je zajištění tisku různých variant dokladu jednou sestavou. Pokud je např. potřeba pro určitou skupinu partnerů tisknout doklad v určité podobě, pro jinou v jiné podobě a uživatel nechce při tisku přemýšlet, zda má použít tu nebo tu sestavu. Řešením pak je ve FastReport vytvořit jednu variantu na Page1 a druhou na Page2 a pak v kódu zajistit, aby dle známé podmínky byla tištěna buď první či druhá stránka. Protože tento příklad využívá zápis na záložce Kód, je kapitola uvedena až po popisu práce na této záložce.

 

Obsah kódu pro uvedený příklad tisku jen jedné ze dvou stránek:

 

procedure SignysFastReportOnStartReport(Sender: TfrxComponent);

begin

   if PODMÍNKA then

  begin

  Page1.Visible := True;

  Page2.Visible := False;

  end

  else

  begin               

  Page1.Visible := False;

  Page2.Visible := True;

  end;             

end;

 

 

Dotaz před tiskem

 

Tiskovou sestavu je možné připravit tak, aby se v prvním kroku objevilo dialogové okno, ve kterém se vyplní požadované údaje a teprve potom dojde k tisku. Příkladem může být vložení nějakého koeficientu, který třeba nemusí být v Signysu uveden, ale je potřeba s ním na sestavě pracovat. Další možností použití je pak vyplnění datumů – na sestavě bude požadován rozsah záznamů za určité období, ale to nebude možné zadat ve výběrových kritériích v Signysu. Oba příklady jsou zde uvedeny – po základním popisu tvorby dialogového okna.

Dialogové okno se založí pomocí menu Soubor / Nový dialog. Vznikne tak nové okno, do něhož se vkládají jednotlivé prvky. Dle potřeby je možné ve vlastnostech na řádku „Caption“ dialog pojmenovat.

 

Prvky dialogového okna:

        textové pole – může to být například popisek prvku, který bude vyplňován. Jeho úprava se provede ve vlastnostech na řádku „Caption“

        editační pole – pole, které uživatel před provedením tisku vyplňuje požadovanou hodnotou, pokud zde má být nějaké vychozí hodnota (např. 1), tak se zadá ve vlastnostech prvku na řádku „Text“

*        pole, které se používá pro zadání datumu – nastavení výchozí hodnoty se nastaví na záložce „Kód“

*       tlačítko – standardně se používá pro „OK“ a „Storno“ – pojmenování tlačítka se opět nastaví ve vlastnostech na řádku „Caption“, zde se ovšem navíc nastaví „ModalResult“ – pro OK se nastaví „mrOK“ a pro storno „mrCancel“

 

Prvků je k dispozici víc, ale zde jsou uvedeny základní potřebné pro uvedené příklady.

 

Po vložení všech prvků je dobré nad dialogovým oknem stisknout pravé tlačítko myši a vybrat volbu „Záložka seřazení“, kde je možné zkontrolovat nebo rovnou upravit pořadí prvků, pokud by se měl uživatel v okně před tiskem pohybovat pomocí tabulátoru.

 

Důležité: je nevhodné použít dialogové pole na sestavě, která by měla být použita v dávkovém tisku, protože pak by se dialogové okno objevila vždy nově před tiskem každého dokladu.

 

Příklad kódu pro dialogové okno s editačním polem:

 

var pocet:integer;                                                    

 

procedure Page1OnBeforePrint(Sender: TfrxComponent);

begin

   pocet:=strtoint(edit1.text); 

end;

 

Nejdříve se deklaruje proměnná, která se přiřadí editačním prvku v dialogovém okně. Dále se (např. již na stránce, proto je procedura pro Page1) údaj zadaný v editačním prvku přiřadí proměnné, kterou je pak možné používat na sestavě. Na příkladu je proměnnou číselný údaj, ale editační prvek je textové pole, takže je použita funkce převodu textu na číselnou hodnotu strtoint (nebo StrToInt).

 

Příklad kódu pro dialogové okno s datumovým rozmezím:

 

var Dod,Ddo:string;

 

procedure DialogPage1OnShow(Sender: TfrxComponent);

begin

  DateEdit1.date:=date-30;

  DateEdit2.date:=date;

end;

 

procedure Page1OnBeforePrint(Sender: TfrxComponent);

begin

  Dod:=FormatDateTime('DD.MM.YYYY',DateEdit1.date)+' 0:00,00';

  Ddo:=FormatDateTime('DD.MM.YYYY',DateEdit2.date)+' 23:59,59';

end;

 

Stejně jako u předchozího příkladu se zde deklarují proměnné (je zde datum od a datum do). Navíc je zde však procedura, která určuje, jaké datum se má v dialogovém okně zobrazit jako výchozí. Zde je první z obou datumů dnešní den mínus 30 dní, druhé pak je dnešní den. Přidělení prvku proměnné je komplikovanější než u předchozího příkladu. Uvedení časů na konci řádků vychází z použití sestavy = na sestavě se zadává čistě datum bez času, ale většina datumů na dokladech má i uvedený čas, takže je potřeba s ním i počítat.

 

Výběry v dialogovém okně

Pro výběr z hodnot je možné vybrat jeden z dvou prvků

 

* - výsuvný seznam (ručně se zadávají hodnoty, ze který se při tisku vybírá)

 - výsuvný panel DB (výběr hodnot z databáze)

Použití výsuvného seznamu

Pokud má uživatel před tiskem vybrat z daných hodnot, které na dané sestavě nejsou v tisku k dispozici a hlavně se jedná o pevně stanové výběr, lze použít výstupný seznam (ComboBox).

Ve vlastnostech prvku se pevně stanovené hodnoty, ze kterých se před tiskem vybírá, definují v poli Items. Pokud se do něj klikne, objeví se tlačítko se třemi tečkami. Kliknutím na toto tlačítko se otevře memo pole, kam se hodnoty zadají pod sebe. Po skončení zadávání se klikne tlačítko zelené fajfky pro uložení.

Pro další práci je vhodné si na záložce „Kód“ deklarovat proměnnou a jí přiřadit výsledek výběru. Pak už se dál pracuje s tou proměnnou.

 

Příklad přiřazení:

vyber:=ComboBox1.text;

 

Použití výsuvného panelu DB (databáze)

Pokud by měl výběr probíhat z data databáze, lze použít výsuvný seznam. Zde je ovšem omezení na datasety, které jsou v daném tisku k dispozici. Například na dokladu je to MASTER, DETAIL, DETAIL02 a DETAIL03.

Lze si i připravit select do číselníku středisek a prvek navázat na tento dataset. Zde je ovšem do výše uvedené procedury DialogPage1OnShow přidat příkaz pro aktivaci selectu: FIBQuery1.Active:=True;

Určitě nemá smysl použít prvek např. na seznamu partnerů či ceníkových karet, protože na seznamech je k dispozici jen MASTER a otevírat zde před tiskem okénko se všemi partnery či ceníkovými kartami nedává smysl. Šlo by např. na dokladu vybírat z položek a pak třeba dle výsledku pro tisk filtrovat nebo si připravit v tiskové sestavě select na nějaký číselník, jak je uvedeno v předchozím odstavci.

Ve vlastnostech výsuvného panelu (DBLookupComboBox) je potřeba nejdříve vybrat DataSet. V poli KeyFiled se pak z daného datasetu vybere hodnota, která se bude po výběru záznamu do tisku přenášet. V poli ListField se vybere hodnota, která se uživateli bude v rozbalovacím seznamu nabízet.

 

Příklad nastavení vlastností pro výběr z číselníku středisek:

KeyField = STREDISKO (do sestavy se bude přenášet číslo střediska)

ListField = POPIS (uživatel uvidí na rozbalovacím seznamu popisy středisek)

Je potřeba nastavit AutoOpenDataSet na hodnotu True.

 

Příklad zobrazení výsledku na sestavě:

[DBLookupComboBox1.KeyValue] – před tečkou je název prvku