Sestavení logických výrazů

Výrazy a podobné části formuláře, které se vyhodnocují na základě zadávaných hodnot, se sestavují pomocí skriptů. Tato problematika však přesahuje rozsah tohoto textu. Je zde ale ještě další možnost.

Některé vlastnosti prvků totiž umožňují kromě vložní skriptu také interaktivní sestavení logických podmínek a výrazů prostřednictvím pomůcky Asistent.

Do rozhraní Asistenta přejdete klepnutím na tlačítko Asistent v horní části okna Vlastnosti prvku.

image266

Nejjednodušší podmínky mohou být tvořeny jedinou hodnotou, například údajem uloženým v některém formulářovém poli. Další možností je porovnání dvou hodnot nebo sestavení složitější podmínky z více podobných porovnání pomocí logických operátorů (a zároveň, případně nebo).

Podoba dialogu s návrhem výrazu se mění podle konkrétní situace, ve které je použit. Rozdíly popisuje kapitola Charakteristiky výrazů podle účelu.

image267

Asistent umožňuje specifikovat operaci a také k ní přidat podmínku; k výběru slouží dvojice tlačítek v dolní části okna.

Jednoduchý výraz

V každém výrazu je potřeba nastavit nejméně jeden údaj, na kterém bude podmínka záviset. V nejjednodušším případě tím je rovnou sestavena celá podmínka.

K určení posuzovaného údaje slouží blok několika polí. Nejprve v rozbalovacím seznamu Vyberte typ operace zvolte typ údaje. K dispozici jsou vždy Položka z dat procesu, Číselná operace a Textová operace, za některých okolností i další. Druhá část nastavení pak závisí na zvoleném typu.

Položka z dat procesu

Pokud zvolíte jako typ operace Položka z dat procesu, zobrazí se v dalším řádku pole označené Vyberte pole se seznamem datových položek procesu. Zvolte položku, ze které se má hodnota přečíst.

image268

Číselná operace

Zvolíte-li jako typ operace číselnou operaci, vloží se do výrazu řada ovládacích tlačítek a trojice polí.

Jde o dvě číselná pole, do kterých můžete vložit přímo číselnou hodnotu nebo vybrat číselné pole z formulářových dat. Pole uprostřed pak slouží k určení operátoru mezi oběma číselnými operandy: sčítání (+), odčítání (), násobení (*), dělení (div) a modulo (mod).

image269

Číselný výraz můžete upravit či rozšířit pomocí následujících tlačítek:

  • Vložit – vloží do výrazu jedno číselné pole a jedno pole pro operaci. Pole budou umístěna za aktuálně vybrané číselné pole.

  • Vložit nakonec – vloží do výrazu jedno číselné pole a jedno pole pro operaci. Pole budou umístěna na konec výrazu.

  • Vložit závorky – vloží do výrazu uzávorkovanou dvojici číselných polí a jedno pole pro operaci. Pole budou umístěna za aktuálně vybrané číselné pole.

  • Zabalit do funkce – vybrané číselné pole bude vloženo do funkce. Pole pro výběr funkce bude umístěno vlevo od funkce a výraz případně přizpůsoben podle počtu argumentů, které funkce vyžaduje. Nápověda k funkci se zobrazuje nad sestavovaným výrazem. K dispozici jsou následující funkce:

    • Sum(pole) – vrací součet hodnot daného pole. Pole musí být umístěno v oddílu s opakováním.

    • Sumif(poleprvní pole podmínkydruhé pole podmínky) – vrací součet všech polí, pro které platí, že hodnota prvního pole podmínky se rovná hodnotě druhého pole podmínky. Sčítané pole a první pole podmínky musí být ve společném oddílu s opakováním.

    • Round(číslo) – zaokrouhlí číslo na nejbližší celé číslo.

    • Floor(číslo) – zaokrouhlí číslo na nejbližší celé číslo směrem dolů.

    • Ceiling(číslo) – zaokrouhlí číslo na nejbližší celé číslo směrem nahoru.

  • smazat Smazat – odstraní označený prvek a případně další prvky tak, aby výraz stále dával smysl (například při odstranění číselného pole odstraní i sousedící operaci či závorky).

Textová operace

Zvolíte-li jako typ operace textovou operaci, vloží se do výrazu řada ovládacích tlačítek a trojice polí.

První z polí nabízí výběr textové operace, která se má uplatnit na hodnoty ve zbývajících dvou polích. Do těchto dvou polí můžete vložit buď text, nebo vybrat některé pole z formulářových dat.

Nápověda k funkci se zobrazuje nad sestavovaným výrazem.

K dispozici jsou následující funkce:

  • Concat(řetězecřetězec, …) – sloučí parametry do jednoho textového řetězce.

  • Contains(řetězechledaný text) – vrací logickou hodnotu true, pokud textový řetězec, určený prvním parametrem, obsahuje text druhého parametru.

  • Substring-after(řetězechledaný řetězec) – vrací zbytek textového řetězce za prvním výskytem hledaného řetězce.

  • Substring-before(řetězechledaný řetězec) – vrací část textového řetězce před prvním výskytem hledaného řetězce.

Výraz můžete dále rozšířit či upravit pomocí tlačítek seskupených v řádku uprostřed okna:

  • Vložit – vloží do výrazu další textové pole. Bude umístěno za aktuálně vybrané pole.

  • Vložit nakonec – vloží do výrazu další textové pole. Bude umístěno na konec výrazu.

  • Vložit funkci – za vybrané pole bude vloženo pole pro funkci a další závorka s poli pro její argumenty. K dispozici jsou stejné funkce, jaké jsou uvedeny výše.

  • smazat Smazat – odstraní označený prvek a případně další prvky tak, aby výraz stále dával smysl (například při odstranění funkce odstraní i její argumenty).

image270

Konstanta

Konstanta může být textová, číselná nebo logická (Boolean). Po zvolení typu hodnoty vyplňte hodnotu do připojeného pole vpravo.

image271

Operace s kalendářními daty

Pokud jsou ve formuláři alespoň dvě pole typu datum, lze do výrazu vložit i operace s kalendářními daty.

Po výběru tohoto typu operace se zobrazí tři pole. V prvním z nich vyberte operaci, v druhých dvou polích vyberte z dat procesu dvě různá pole typu datum.

  • Stejný měsíc – výraz je pravdivý, pokud jsou obě data ve stejném kalendářním měsíci.

  • Stejný rok – výraz je pravdivý, pokud jsou obě data ve stejném kalendářním roce.

  • Počet dní – číslo, vyjadřující počet kalendářních dní mezi oběma daty.

  • Počet pracovních dní – číslo, vyjadřující počet pracovních dní mezi oběma daty.

  • Datum od je před datem po – výraz je pravdivý, pokud je datum v prvním poli nižší (dřívější) než datum v druhém poli.

image272

Porovnání hodnot

Jednou z možností, jak sestavit výraz, je použít (logické) porovnání dvou (či více) hodnot. V takovém případě po vyplnění jedné hodnoty (jak popisuje kapitola Jednoduchý výraz) klepněte na tlačítko Přidat operátor.

image273

Do výrazu se doplní pole pro operátor a další blok polí pro vyplnění druhé porovnávané hodnoty.

Volba možných operátorů závisí na datovém typu první hodnoty.

  • je rovno (==)

  • není rovno (!=)

  • je větší než (>) – pro číselné hodnoty

  • je menší než (<) – pro číselné hodnoty

  • větší nebo rovno (>=) – pro číselné hodnoty

  • menší nebo rovno (<=) – pro číselné hodnoty

  • obsahuje hodnotu – pro textové hodnoty

  • neobsahuje hodnotu – pro textové hodnoty

  • začíná hodnotou – pro textové hodnoty

  • nezačíná hodnotou – pro textové hodnoty.

Výsledkem takového porovnání je vždy hodnota „true“ nebo „false“.

image274

Sestavení složitějších výrazů

Kromě jednoduchého posouzení hodnoty či porovnávání dvou hodnot lze výrazy skládat do složitějších struktur pomocí logických operátorů. Klepnutím na tlačítko Přidat logický operátor přidáte do výrazu další blok pro vložení jednotlivé hodnoty (jak popisuje kapitola Jednoduchý výraz) a tlačítka pro přidávání dalších operátorů.

Návrhář bude při přidávání a ubírání sekcí vždy nabízet takové možnosti, aby výsledný výraz dával smysl.

Jednotlivé části sestavovaného výrazu jsou uspořádány do bloků, které se skládají pod sebe, případně vnořují do sebe. Pro přehlednost je v záhlaví každého bloku zobrazeno textové shrnutí jeho obsahu.

image275

Pro lepší orientaci při sestavování výrazu je možné jednotlivé bloky sbalit klepnutím na tlačítko sbalit umístěné na pravé straně jejich záhlaví, případně potom opět rozbalit tlačítkem rozbalit. Tlačítkem smazat lze celý blok výrazu smazat.

image278

Sestavení podmínky

Podmínky (POKUD/JINAK) lze používat při sestavování výpočtu. Blok s podmínkou se skládá z několika částí:

  • Samotná podmínka – výraz, na jehož splnění nebo nesplnění závisí další operace.

  • Sekce Pokud je podmínka splněna – operace, která se provede, pokud je výraz v podmínce pravdivý.

  • Následovat může sekce s operací, která se provede, pokud výraz v podmínce splněn není. Tuto sekci můžete dále větvit na základě dalších podmínek.

Podrobnosti k těmto částem uvádějí následující podkapitoly. Další informace o sestavování výrazu pro výpočet najdete v kapitole Výpočet.

Podmínka

Podmínka je výraz, na jehož splnění nebo nesplnění závisejí další operace. Typická podmínka je porovnání dvou hodnot, ale může být i složitější.

Pro porovnání dvou hodnot zvolte v prvním poli hodnotu z dat formuláře, případně proměnnou, pokud máte nějakou definovanou v jiné části výrazu. Podobně vyplňte třetí pole, kde můžete navíc zvolit i libovolnou konstantu.

V prostředním poli zvolte některou z operací porovnání. Výběr možností závisí na typu porovnávaných hodnot.

image279
Podmínka: Pokud je v poli „Počet kusů“ vyplněna hodnota 10 nebo více…

K sestavení složitější podmínky použijte tlačítko plus o, umístěné vpravo. Tím vložíte do podmínky novou řádku s porovnáním dvou hodnot, a navíc logický operátor (a zároveň/nebo), kterým obě podmínky zkombinujete. Stejným způsobem můžete přidat i další řádky podmínek. Nepotřebnou podmínku z výrazu odeberte tlačítkem minus o.

image282
Podmínka: Pokud je v poli „Počet kusů“ vyplněna hodnota 10 nebo více a zároveň je zaškrtnuté pole Souhlas…

Pokud je podmínka splněna

Sekce „Pokud je podmínka splněna“ obsahuje dvě části: operaci, která se provede, pokud je výraz v podmínce pravdivý, a určení, jak naložit s výsledkem operace.

Samotná operace je číselná či textová operace, konstanta nebo hodnota z dat procesu, jak jsou popsány v kapitole Jednoduchý výraz. Můžete zde použít i proměnnou, pokud jste si nějakou vytvořili v jiné části výrazu.

V poli níže pak zvolte, jak se má výsledek operace použít:

  • Výsledek nastavit do formuláře – hodnota se vloží do formuláře jako obsah pole, tedy i do datové položky, se kterou je pole svázané.

  • Výsledek uložit do proměnné – hodnota se uloží do proměnné a pak je možné ji použít v jiných částech výrazu. V tomto případě se navíc zobrazí pole, ve kterém proměnnou pojmenujte.

image283

Pokud podmínka není splněna

Případ, kdy podmínka není splněna, není nutné nijak ošetřovat. V takovém případě žádná operace neproběhne.

Chcete-li se ale i touto situací zabývat, klepněte na jedno z tlačítek umístěných pod předchozí sekcí:

  • Tlačítko Přidat else vloží do výrazu blok podobný tomu předchozímu, tentokrát pojmenovaný Pokud žádná podmínka není splněna. Zde opět zvolte operaci, která se má provést, a v druhé části zvolte, zda se má výsledná hodnota nastavit do formuláře, či uložit do proměnné.

image284
  • Tlačítko Přidat else if vloží do výrazu nový podmínkový blok vnořený do toho předchozího. V něm nastavte novou podmínku a operace při jejím splnění či nesplnění. Těchto vnořených podmínkových bloků můžete do výrazu vložit libovolný počet.

Charakteristiky výrazů podle účelu

Možnosti sestavení výrazu se v některých ohledech liší v závislosti na tom, ve které části procesu či formuláře má být výraz použit.

Výpočet

Funkce pro výpočet má nejširší možnosti nastavení. Kromě číselných a textových operací a práce s daty, které se používají i v ostatních typech výrazů, je zde možné používat i podmínky.

Výraz začněte sestavovat klepnutím na jedno z tlačítek:

  • Přidat operaci – vloží blok pro vložení jednoduché operace. Její vlastnosti jsou popsány v kapitole Jednoduchý výraz. Kromě toho je zde navíc ještě pole, které určí, jak naložit s výsledkem operace: zda se má přímo použít ve formuláři jako obsah pole s výstupní hodnotou (Výsledek nastavit do formuláře), nebo uložit do proměnné a pak použít v jiných částech výrazu (Výsledek uložit do proměnné). V druhém případě se navíc zobrazí pole, ve kterém proměnnou pojmenujte.

  • Přidat podmínku – vloží blok pro podmínku a operace závislé na výsledku této podmínky. Její vlastnosti popisuje kapitola Sestavení podmínky.

Těchto bloků typu „operace“ nebo „podmínka“ můžete do výrazu vložit, kolik potřebujete. V záhlaví bloku jsou umístěna tlačítka pro manipulaci:

  • Tlačítky sipka nahoru a sipka dolu můžete měnit pořadí bloků.

  • Tlačítkem sbalit blok sbalíte a zůstane zobrazené jen jeho záhlaví, tlačítkem rozbalit jej zase rozbalíte.

  • Tlačítkem smazat můžete celý blok smazat.

U delších konstrukcí a zejména u podmínek je zobrazení ve sbaleném stavu přehlednější.
image287

True/false výrazy

Řada vlastností formulářových polí se nastavuje pomocí logického výrazu, který může mít hodnotu true nebo false. Jde o vlastnosti Pro čtení, Povinnost, Omezení, Nepočítat když a Relevance. Význam těchto polí je popsán v kapitole Panel vlastnosti prvku.

Výraz se může skládat z jediné hodnoty (například zatrhávací pole, na němž povinnost závisí), typičtější použití je porovnání dvou hodnot nebo logický výraz složený z více takových porovnání.

V případě omezení dialog navíc obsahuje pole Chybová zpráva. Text vyplněný do tohoto pole se zobrazí uživateli v případě, že hodnota vyplněná v poli neodpovídá nastavenému omezení.

image288
Nastavení omezení pro pole: vložené číslo musí být menší nebo rovno 500.
image289
Zobrazení chybové zprávy při vyplňování formuláře

Filtr položek seznamu

U prvku Rozbalovací seznam lze pomocí filtru nastavit, aby se k výběru nabízely jen některé položky z číselníku.

V dialogu pro filtraci položek seznamu je vždy prvním prvkem porovnání samotný číselník. Je-li vícesloupcový, vyberte klepnutím, podle kterého sloupce se má filtrovat. Poté tlačítkem Přidat operátor vložte porovnávací operaci a v dalším bloku zvolte údaj k porovnání (konstantu nebo položku z dat procesu).

Přidáním logického operátoru můžete filtrační výraz podle potřeby rozšířit.

image290
Filtr zobrazující pouze nesouhlasné varianty odpovědi