Sestavení logických výrazů (Asistent)

Vlastnosti prvků je často zapotřebí vyhodnotit pomocí logických výrazů. Ty se obvykle vytvářejí pomocí skriptů, existuje však ještě další možnost – interaktivní sestavením logického výrazu v prostředí tzv. Asistenta.

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

image385

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.

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 poli 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ší. Další nastavení pak závisí na zvoleném typu.

Položka z dat procesu

Pokud zvolíte 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 datovou položku, které se má operace týkat.

image386

Pomocí rozbalovacího seznamu Výsledek nastavit do formuláře můžete pak výsledek buď nastavit do formuláře nebo jej uložit do proměnné specifikované v následujícím poli.

Číselná operace

Zvolíte-li jako typ operace číselnou operaci, budete mít k dispozici několik ovládacích tlačítek a trojici polí rozbalovacích seznamů.

Pomocí krajních polí 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).

image387

Čí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.

  • image188 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

Textové operace umožňují zpracovávat znakové řetězce ze zadaných textových proměnných nebo konstant.

Zvolíte-li jako typ operace textovou operaci, nabídne se několik ovládacích tlačítek a trojice polí rozbalovacích seznamů.

První z polí nabízí výběr textové operace, která se má uplatnit na hodnoty ve zbývajících polích. Do těchto polí můžete buď zapsat přímo textový řetězec, nebo vybrat textovou hodnotu z formulářových dat. Výchozí dvojici polí lze doplnit dalšími poli pomocí tlačítka Vložit. Tak například k vytvoření celého jména z křestního jména a příjmení je zapotřebí doplnit ještě jedno pole, do kterého se vloží pouze oddělovací mezera.

image388

Nad sestavovaným výrazem se zobrazuje nápovědný text.

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í následujících tlačítek:

  • 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.

  • image188 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).

Konstanta

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

image389

Operace s kalendářními daty

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

Po výběru tohoto typu operace se zobrazí tři pole typu rozbalovací seznam. V prvním z nich vyberte druh operace, ve zbývající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.

image390

Sloupec číselníku ze systémových dat

Tato volba je užitečná hlavně pro uživatelské číselníky, které mají více sloupců. Ve výpočtu pak chceme pro položku, kterou uživatel vybral z rozbalovacího seznamu, dohledat a použít hodnotu z jiného sloupce.

Po vybrání typu operace Sloupec číselníku ze systémových dat vyberte z dat procesu položku, ve které je uložen údaj ze Sofa číselníku (na obrázku níže je to položka uzivatel). V dialogu se nyní zobrazí obsah celého číselníku. Klepnutím vyberte sloupec, který se má použít ve výpočtu či pro zobrazení v jiném poli.

image391
Pole s výstupní hodnotou zobrazující údaj z jiného sloupce, než je ukládán do dat procesu

Porovnání hodnot

Jednou z možností, jak sestavit výraz, je využít 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.

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

image392

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

  • je rovno (==)

  • není rovno (!=)

  • není zadáno (==)

  • je zadáno (!=)

  • 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“.

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.

image393

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

image396

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.

image397

Uvedený obrázek ukazuje podmínku: „Pokud je v poli „Počet kusů varianta A“ vyplněna hodnota větší než 100…“

K sestavení složitější podmínky použijte tlačítko image398, 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 image399.

image400

Uvedený obrázek ukazuje složenou podmínku: „Pokud je v poli „Počet kusů varianta A“ vyplněna hodnota větší než 100 a zároveň je zaškrtnuté políčko „Povolit vyšší počet“.

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.

image401
Situace, kdy se v případě splnění podmínky ve formuláři vypíše hodnota „Hodnota akceptována“

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. Lze ale například vyžádat nějaký komentář či vysvětlení, co a proč nastalo.

image402

Chcete-li se podrobněji zabývat situací, kdy hlavní podmínka není splněna, 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é.

  • 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.

Použití proměnných

Pokud výsledek některé operace uložíte do proměnné, bude se v dialozích pro výběr hodnot z dat procesu zobrazovat další sekce – proměnné. Odsud můžete svou proměnnou vybrat a použít na jiném místě ve výrazu.

image403

Charakteristiky výrazů podle účelu

Možnosti sestavení výrazů 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 image319 a image320 můžete měnit pořadí bloků.

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

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

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

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 Obecná nastavení prvků.

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í.

image407
Nastavení omezení pro číselné pole: vložené číslo musí být menší nebo rovno 500
image408
Zobrazení chybové zprávy při nesplnění podmínky 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.

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