Využite nový Účet POHODA pre bezpečnejšie a pohodlnejšie jednotné prihlasovanie k službám a aplikáciam STORMWARE

5.1 Užitočné príklady vzorcov

Vzhľadom na to, že vzorce predstavujú veľmi silný nástroj pri navrhovaní tlačových zostáv, budú vybrané výrazy vysvetlené i na praktických príkladoch definície vzorcov:

<:FAPol.KcDPH:> + <:FAPol.Kc:>;

Prioritu vyhodnocovania údajov v zadanom výraze určíte prostredníctvom okrúhlych zátvoriek.

Výsledkom vyššie uvedeného výrazu je súčet hodnôt uvedených polí, t.j. súčet jednotkovej ceny položky faktúry a jej DPH.

<:FA.Datum:> -5;

Výsledkom vyššie uvedeného výrazu je dátum, ktorý vznikne odčítaním piatich dní od hodnoty uvedenej v položke dátum.

Pri počítaní s dátumom môžete jednotlivé údaje od seba odpočítať. Výsledkom je potom počet dní. Ďalej môžete k údaju pripočítať i od údaja odpočítať číselnú hodnotu. Výsledkom je opäť dátum.

<:FA.DatSplat:> - <:FA.Datum:>;

Výsledkom vyššie uvedeného výrazu je počet dní, ktorý vznikne odpočítaním dvoch dátumových položiek od seba.

<:FAPol.KcJedn:> * (<:FAPol.Zlava:> /100);

Výsledkom vyššie uvedeného výrazu je vyjadrenie zľavy z jednotkovej ceny v domácej mene.

Pretože položka FAPol.Zlava obsahuje percento zliav (napr. 4), je potrebné túto položku vydeliť 100, a potom je možné touto položkou (0,04) vynásobiť jednotkovú cenu.

<:FA.RelForUh:> > 3;

Výsledkom vyššie uvedeného výrazu je pravda, ak je pole FA.RelForUh (forma úhrady) väčšia než 3.

<:FA.DatStorn:> == NULL;

Výsledkom vyššie uvedeného výrazu je pravda, ak pole FA.DatStorn (dátum storna) neobsahuje žiadnu hodnotu, resp. hodnota uvedeného pola je neznáma. Neznámu hodnotu v tomto políčku budú mať faktúry, ktoré neboli stornované.

!(<:FA.DatStorn:> == NULL);

Výsledkom vyššie uvedeného výrazu je pravda, ak pole FA.DatStorn (dátum storna) obsahuje nejakú hodnotu (napr. dátum či prázdnu hodnotu). Ide o negáciu predchádzajúceho výrazu.

if <:FA.RelTpFak:> <> 1 then „Dobropis alebo ťarchopis“ else „Faktúra“;

Ak (if) pole Typ (FA.RelTpFak) je rôzne od jedna, potom (then) vytlač v zostave text „Dobropis alebo ťarchopis“, inak (else) vytlač text „Faktúra“.

if <:#Tel:> then „Telefón: „+ „<:#Tel:> else „“;

Ak (if) premenná #Tel obsahuje nejakú hodnotu (t.j. výraz <:#Tel:> je pravdivý), potom (then) bude v zostave vytlačený text „Telefón:“ spolu s telefónnym číslom v premennej #Tel (napríklad: “Telefón: 567309953“). Inak (else) nebude v zostave vytlačené nič.

if (<:FA.KcCelkem:> >3000) & (<:FA.KcCelkem:> < 5000) then „Áno“ else „Nie“;

Výsledkom vyššie uvedeného výrazu bude text „Áno“ v prípade, že obsah pola FA.KcCelkem je väčší než 3000 a zároveň menší než 5000. V ostatných prípadoch bude výsledkom text „Nie“. Pretože sa jedná o logický súčin podmienok, musia obe uvedené podmienky platiť zároveň.

Každá z podmienok spojená logickým súčinom alebo logickým súčtom musí byť uzavretá v okrúhlych zatvorkách.

if (<:FA.KcCelkem:> < 3000) | (<:FA.KcCelkem:> > 5000) then „Áno“ else „Nie“;

Výsledkom vyššie uvedeného výrazu bude text „Áno“ v prípade, že obsah pola FA.KcCelkem bude menší než 3000 alebo väčší než 5000. V ostatných prípadoch bude výsledkom text „Nie“. Pretože sa jedná o logický súčet podmienok, stačí, aby platila jedna z uvedených podmienok a výraz bude pravdivý.

Komentáre použité vo vzorci môžu významne sprehľadniť definíciu vzorca, najmä ak budete vzorec upravovať po dlhšom čase.

Slovami ( <:FA.KcCelkem:> );

V prípade, že pole FA.KcCelkem obsahuje čiastku 9 203,25, bude výsledkom výrazu text „Deväťtisícdvestotri“. Text bude samozrejme uvedený bez úvodzoviek.

Centy ( <:FA.KcCelkem:> );

Ak bude pole FA.KcCelkem opäť obsahovať čiastku 9 203,25, výsledkom výrazu bude text 25.

DenVTyzdni ( <:FA.Datum:> );

Ak bude pole FA.Datum obsahovať hodnotu 25. 7. 2000, výsledkom výrazu bude číslo 2, ktoré určuje, že tento deň je utorok.

Month ( <:FA.Datum:> );

Ak bude pole FA.Datum opäť obsahovať hodnotu 25. 7. 2000, výsledkom výrazu bude číslo 7, t.j. mesiac júl.

Ucet ( <:sUcet.SText:> );

Súčtový vzorec obsahuje niektorú zo súčtových funkcií.

V prípade, že pole sUcet.SText bude obsahovať napr. číslo účtu 19-145263254, výsledkom výrazu bude text 0000190145263254.

Skôr ako súčtový vzorec odporúčame využiť Súčtové pole, pretože jeho použitie je pre užívateľa jednoduchšie.

Ak vo vzorci použijete niektorú zo súčtových funkcií, vytvoríte tzv. súčtový vzorec, ktorý je veľmi podobný súčtovému polu, o ktorom bližšie pojednáva záložka Súčet. Súčtové pole odporúčame vo väčšine prípadov využiť skôr ako súčtový vzorec, pretože jeho použitie je pre užívateľa jednoduchšie.

Pri súčtovom vzorci je rovnako ako pri súčtovom poli možné nastaviť nulovanie funkcie v zadanej sekcii.

Oproti klasickému vzorcu je vo vzorci súčtovom navyše výklopný zoznam Nulovať v sekcii, v ktorom je možné nastaviť, v ktorej sekcii sa má nulovať výsledok funkcie. Tým napríklad určíte, či súčet má byť kumulovaný od začiatku tlačovej zostavy, alebo sa majú hodnoty sčítať za každú stranu zvlášť.

Výklopný zoznam Nulovať v sekcii je prístupný iba vtedy, ak je súčtový vzorec umiestnený v sekcii Položka.

Výklopný zoznam nulovať v sekcii sa neobjaví hneď po zadaní súčtovej funkcie do definície vzorca, ale po stlačení tlačidla Test alebo OK. Vtedy program vykoná text, či zadaný vzorec obsahuje súčtovú funkciu a v prípade, že ide o súčtový vzorec, zobrazí výklopný zoznam Nulovať v sekcii.

Pre jednoduché súčty odporúčame použiť skôr jednoduchší objekt Súčtové pole (viď záložka Súčet).

Výklopný zoznam je prístupný len vtedy, ak je vzorec umiestnený v sekcii Položka. V ostatných prípadoch je zoznam zašednutý a nie je možné nulovaciu sekciu zvoliť ručne. Program automaticky nastaví ako nulovaciu tú sekciu, v ktorej sa súčtový vzorec nachádza.

Sum ( <:gDJspotr.Cerpane:> ) / Sum ( <:gDJspotr.Km:> ) * 100;

Príkladom použitia súčtového vzorca s funkciou Sum je napríklad priemerná spotreba pohonných hmôt v tlačovej zostave Priemerná spotreba v agende Kniha jázd.

Ak chcete v definícií vzorca spojiť text a pole, je potrebné to vykonať prostredníctvom znamienka plus.

Prvá funkcia sčíta všetky hodnoty v poli Čerpané a výsledná hodnota je vydelená súčtom kilometrov, ktorý je výsledkom druhej funkcie. Výsledkom je priemerná spotreba paliva na sto kilometrov. Takéto výnimočné prípady nemožno riešiť pomocou súčtového pola.

Ďalej môžeme uviesť napríklad súčtový vzorec s funkciou Count.

Count ( <:FAPol.KcJedn:> );

Výsledkom vyššie uvedeného výrazu bude počet položiek faktúry. V tomto prípade je potrebné vložiť do funkcie Count také pole, ktoré nie je v prípade vyplnenia položky prázdne. Tu sme využili pole FAPol.KcJedn (jednotková cena položky). Rovnako záleží na umiestnení vzorca v návrhu zostavy. Ak umiestnime vzorec do niektorej z hlavičiek či pätičiek zostavy, dostaneme celkový počet položiek dokladu.

Ak zvolíme umiestnenie do sekcie Položky, je možné súčtový vzorec využiť na číslovanie položiek dokladu. Do definície vzorca je možné vložiť aj iný vzorec. Napríklad:

!(<:@PrvyVzorec:> >10);.

Ak treba vo vzorci spojiť text a pole, je potrebné pole pripojiť k textu znamienkom plus. Napríklad:

„Strana „ + <:#Strana:> + „ dokladu „ + <:FA.Cislo:>.