Editor výrazů
Nástroj, pomocí kterého můžete nadefinovat výrazové položky v účetních předkontacích, v panelech definovatelných údajů nebo výrazové položky v tiskových sestavách aj. Slouží pro snazší konstrukci výrazů s ohledem na správnost syntaxe atd. Dále naleznete popis těchto témat:
Editor výrazů může být vyvolán z různých míst systému:
- z definice předkontací - po stisku tlačítka na některé z výrazových položek v řádku předkontace
- z editoru zobrazovaných údajů (v rámci definice Panelu definovatelných údajů seznamu, detailu, ...) - po stisku tlačítka , je-li buňka definována typem Objekt, nebo po stisku tlačítka na subzáložce Podmínky
- z editoru sloupců (v rámci definice definovatelných sloupců) - po stisku tlačítka , je-li buňka definována typem Objekt, nebo po stisku tlačítka na subzáložce Formát
- z editoru definic podmínek def. formulářů (v rámci automatizace výběru def. formulářů) - po stisku tlačítka v definici podmínky
- z editoru definic editačních seznamů - po stisku tlačítka v položce Výraz pro identifikaci řádku
-
z definice tiskových sestav - po stisku funkčního tlačítka Edituj v definici výrazů v záložce Výraz nebo v definici podmínky pro tisk v záložce Podmínka pro tisk, z definice inicializačních a finalizačních skriptů, z editoru pojmenovaných skriptů, z editoru výrazů pro prvek Čárový kód z výrazu apod.:
V definici tisk. sestavy při definici výrazu lze vyvolat Editor výrazů (obdobně při definici Podmínky pro tisk)
- z definice definovatelných exportů - po stisku funkčního tlačítka Edituj v definici výrazů ve vlastnosti Výraz nebo v definici podmínky pro export ve vlastnosti Podmínka pro export, z definice inicializačních a finalizačních skriptů, z editoru pojmenovaných skriptů apod.
- z definice položky výpočtového schématu - po stisku funkčního tlačítka Edituj v editačním režimu nebo funkčního tlačítka Zobrazit mimo editační režim u standardního resp. uživatelského výrazu
- z definice součtu (sčítané položky výpočtového schématu) - po stisku funkčního tlačítka Edituj v editačním režimu nebo funkčního tlačítka Zobrazit mimo editační režim u standardního resp. uživatelského výrazu
- z definice druhů výkonů - po stisku funkčního tlačítka Edituj u výrazu pro sazbu
- z definice plateb - po stisku tlačítka na některé z výrazových položek v definici plateb u standardního resp. uživatelského výrazu
- z definice podkladu pro žádosti o platební příkazy z mezd, z definice opakovaných srážek resp. z definice srážek po stisku tlačítka v zadání vybraných položek (např. položky Rozlišovací řetězec)
- z definice vstupních formulářů - po stisku funkčního tlačítka Edituj u prvku Výraz vkládaného do vstupního formuláře nebo u prvku Doplněk
- z definice ceníků pošty - po stisku funkčního tlačítka Edituj u položky Výraz pro cenu nebo Kontrolní výraz
- z definice statistických hodnot na vstupu a na výstupu - po stisku tlačítka u položky Výraz
- z definic pohledů v časovém plánu - po stisku funkčního tlačítka Edituj u položky Výraz pro hint
- z definic schvalovacích scénářů - po stisku tlačítka u položky Podmínka pro požadavek na schválení
- z definic nových hodnot při hromadných opravách v okně s definovatelným výčtem hromadně opravitelných položek po stisku funkčního tlačítka Editovat
- z definice ELDP - po stisku funkčního tlačítka Edituj u uživatelského výrazu
- z definice uzávěrky - po stisku funkčního tlačítka Edituj v editačním režimu nebo funkčního tlačítka Zobrazit mimo editační režim u položky Výraz korekce
- ze záložek Testování u technologických postupů - po stisku tlačítka na některé z výrazových položek
- z definice sloupců bilance SCM - po stisku tlačítka u položky Výraz nebo u položek Podmínka pro zobrazení
- z definice pravidel pro zajištění zdrojů SCM - po stisku tlačítka na některé z výrazových položek v řádku pravidla
- z definice automatických vzkazů - po stisku funkčního tlačítka Edituj u položky Výraz
- z definice pravidel pro zpracování doručených e-mailů - po stisku tlačítka u položky Podmínka e-mailu
- z definice pravidel pro zpracování doručených e-mailů - po stisku tlačítka u položky Nová hodnota (viz akce Změnit položky).
- z definice proměnných kampaní - po stisku tlačítka u položky Výraz
- z definice skupin kategorizačních údajů - po stisku tlačítka u položky Podmínka platnosti skupiny
- z definice kategorizačních údajů - po stisku tlačítka u položky Výraz u typu kategorie Výpočet výrazem
- z definice typů kampaní - po stisku funkčního tlačítka Edituj u položek Předmět e-mailu, Popis odeslané pošty, Předmět aktivity a Obsah aktivity v subzáložce Hlavička a dále po stisku tlačítka (může se lišit dle verze a nastaveného vzhledu) u položky Podmínka v subzáložce Přílohy
- z definice proměnných kampaní - po stisku funkčního tlačítka Edituj u položky Výraz proměnné
- z Adresáře firem funkcí Výraz pro předvyplnění názvu nové firmy podle údajů osoby
- z definice hodnotících kritérií - po stisku tlačítka u položek Výraz pro výpočet bodového hodnocení a Podmínka pro převzetí výsledku předchozího hodnocení v subzáložce Definice dat pro výpočtové kritérium
- z definice textů notifikace stavů - po stisku funkčního tlačítka Editor výrazů u položky Tělo zprávy
- z definice parametrů dokumentů kategorie ISDOC vydaný - po stisku funkčního tlačítka Edituj u položky Předmět e-mailu nebo Tělo e-mailu
- z definice pravidel přiřazení dat IoT - po stisku tlačítka u položky Podmínka, příp. též Třída objektu a Identifikace objektu, mají-li být tyto zadávány výrazem
- z definice indexu fulltextového hledání - po stisku tlačítka u položky Výraz, pokud je v položce Typ zvolena hodnota QR výraz
- z definice Našeptávače - po stisku tlačítka po stisku funkčního tlačítka Edituj u položek Základní řádek, resp. Druhý řádek.
-
z definice parametrů automatických upomínek - po stisku funkčního tlačítka Edituj u položky Výraz pro vyloučení z upomínek
Tlačítko pro vyvolání editoru může vypadat i odlišně. Vzhled se může mírně lišit v závislosti na verzi systému, na podpoře více vzhledů a na aktuálně nastaveném vzhledu.
Jak bylo řečeno v kap. Předkontace - záložka Detail, každá předkontace může mít buď řádky výrazové anebo nevýrazové. Jde-li o výrazové řádky, pak položky pro předkontování středisek, účtů, textu, obchodních případů, projektů a zakázek jsou výrazy, které se vyhodnotí a podle výsledku výrazu se předkontují. Dále každý řádek předkontace (výrazový i nevýrazový) může obsahovat podmínku řádku, což je rovněž výraz.
V definici panelů definovatelných údajů se můžete odkazovat na dostupné Business objekty (BO) a konstruovat různé výrazy, v definici tiskových sestav resp. definovatelných exportů v editoru tiskových sestav resp. editoru definovatelných exportů pak obdobně existuje možnost vkládat výrazy do sestavy, resp. vkládat různé podmínky pro tisk resp. export apod.
Ve mzdových agendách se pak můžete odkazovat na dostupné Business objekty (BO) mzdových agend a konstruovat výrazy definující, jak se bude počítat mzdová položka, sazba výkonu apod.
Vyvolaný editor výrazů má obdobný vzhled bez ohledu na to, odkud byl vyvolán, i když např. v definici předkontací nabízí jiné funkce než v definici tiskových sestav.
Příklad editoru výrazu. Funkce jsou zafiltrovány dle řetězce "round".
Okno editoru se skládá z následujících částí:
Obsahuje seznam funkcí, které můžete použít ve vlastním výrazu definovaném pro danou položku řádku předkontace, v daném místě tiskové sestavy apod. Funkce jsou uspořádány do skupin podle svého druhu (např. funkce logické, matematické, statistické apod.) V horní části seznamu funkcí je k dispozici položka typu skrytý seznam, pomocí níž si můžete zvolit, zda chcete zobrazovat seznam všech funkcí nebo si tento filtrovat jen za určitý druh (např. jen matematické).
Dále je k dispozici filtrovací položka, kterou je možné seznam funkcí omezit dle části řetězce (velikost písmen se nebere v potaz).
Editor je obecný a je určen pro různé části programu, proto se zde nabízejí všechny funkce, které jsou obecně uživateli k dispozici. Tedy zdaleka ne všechny je smysluplné používat v definici výrazu pro položku řádku předkontace a naopak jiné nevyužijete v tiskových sestavách apod. Každá funkce je stručně popsána v samostatném panelu Popis funkce.
Funkce s názvem začínající řetězcem "Nx" jsou funkce dodávané výrobcem, zbývající jsou k dispozici jako dodávaná součást vývojového prostředí.
V seznamu jsou jednotlivé funkce uvedeny v odpovídající syntaxi, mezi znaky většítka > a menšítka < jsou uvedeny zástupné hodnoty neboli parametry. Objasníme na příkladech:
Příklad 1: Funkce If(<Exp><X><Y>). V popisu je uvedeno, že výsledkem této funkce je buď X, nebo Y v závislosti na logickém výrazu Exp. Tady např. chceme, aby v předkontaci faktury vydané bylo nastaveno, že je-li řádek skladový (tedy položka RowType udávající typ řádku musí mít hodnotu 3), pak bude vypisovaný text "Prodej ze skladu", v opačném případě "Jiný prodej". Do výrazu pro text pak můžeme použít tuto funkci If(RowType=3, 'Prodej ze skladu', 'Jiný prodej)'
Příklad 2: Funkce NxGetUserName(<UserID>). V popisu je uvedeno, že výsledkem této funkce je celé jméno uživatele systému ABRA Gen, jehož interní identifikátor bude uveden jako parametr dané funkce. Na vystavených dokladech se nepamatuje jméno uživatele, ale jen odkaz na jeho interní identifikátor. Na dokladech ale chceme vytisknout uživatelovo jméno. Pak do výrazu můžeme zadat NxGetUserName(MAIN.CreatedBy_ID), kde položka v závorce právě obsahuje interní identifikátor toho, kdo doklad vystavil.
Existuje i jiné řešení tohoto požadavku: vložit na požadované místo položku z databáze MAIN.CreatedBy_ID. DisplayName, jelikož v položce DisplayName objektu uživatele, který doklad vytvořil, je uvedeno jeho jméno.
V této části je uveden stručný popis funkce, na které stojí kurzor v seznamu funkcí (viz výše). V popisu je uvedena:
- Správná syntaxe funkce, včetně popisu typu funkce a typu parametrů
- Slovní popis
- A ve většině případů jednoduchý příklad (další příklady pak naleznete v této kapitole helpu nebo kap. Příklady použití některých vybraných funkcí)
Syntaxe je uvedena ve tvaru, v jakém se deklaruje funkce v prostředí Pascal. Tedy:
jméno funkce(<parametr1>:<typ parametru1>,<parametr2>:<typ parametru2>,...):<typ funkce>
<Typ funkce> udává, jakého typu je výsledek, který funkce vrací. <Typ parametru> udává, jakého typu může být parametr. <Parametrem funkce> může být výraz, proměnná nebo konstanta požadovaného typu. Přičemž výraz může samozřejmě obsahovat volání jiných funkcí.
Příklady typů, se kterými se můžete setkat v popisu syntaxe funkce v ABRA Gen:
- Integer - celočíselný typ, tj. celé číslo
- Single - typ používaný pro reálné číslo
- Double - typ používaný pro reálné číslo
- TDateTime - typ používaný pro datum
- Boolean - typ logický, tj. hodnoty True nebo False
- Char - typ znakový, tj. pro libovolný znak
- String - typ řetězec, tj. pro libovolný řetězec
- Variant - typ variantní používaný v případě, kdy typem může být libovolný typ z výše uvedených
- TNxOID - typ zavedený v ABRA Gen pro interní identifikátory
- apod.
Objasníme na příkladech:
Příklad 1: Funkce If(<Exp><X><Y>) má v popisu uvedenu syntaxi If(Exp:boolean,X:variant,Y:variant):variant. Tzn., že parametrem Exp může být výraz, proměnná nebo konstanta typu Boolean; parametrem X a Y pak může být výraz, proměnná nebo konstanta libovolného typu. Výsledek funkce je pak shodného typu jako je typ vráceného parametru.
Příklad 2: Funkce NxAccountID(<Value>) má v popisu uvedenu syntaxi NxAccountID(Value:string):TNxOID. Tzn., že parametr může být pouze typu řetězec, výsledkem funkce je pak interní identifikátor.
V této části se nabízí strom složek vytvářený podle místa programu, odkud byl editor vyvolán. Někdy se jedná o větev dostupných Business objektů, jindy o datasety apod., které lze v daný moment v příslušném výrazu použít, včetně možnosti si zvolit třídění podle abecedy a to buď podle popisu položky nebo podle jejího anglického názvu. Popis datového modelu je uveden v samostatné kapitole.
Pravým tlačítkem myši nad položkou objektu lze zobrazit okno detailu s podrobnými informacemi o položce (např. její kód, resp. fieldcode, druh, datový typ, velikost atd.).
Pod částí datových položek objektu je funkční tlačítko Přidej pro přidávání fragmentů kódu do editovaného výrazu bez nutnosti psaní z klávesnice. Jedná se o funkční tlačítko s volbou s následujícími možnostmi:
- Přidej položku
- stojí-li kurzor na nějaké funkci v části funkce - do editovaného výrazu ve spodní části okna vloží na pozici kurzoru funkci, na které aktuálně stojí kurzor. Pak stačí doplnit její parametry (popis a požadované parametry k aktuální funkci se vždy zobrazují v části Popis funkce).
- stojí-li kurzor na nějaké položce v části datové položky objektu - do výrazu přidá odkaz na vybranou položku
Položku objektu nebo funkci lze do editovaného výrazu přidat rovněž klávesou Enter nebo poklepáním myší.
-
Přidej barvu RGB - vyvolá standardní dialog operačního systému Barva, ve kterém si uživatel zvolí požadovanou barvu (zadáním jednotlivých složek nebo výběrem z palety) a po zavření dialogu tlačítkem OK se do editovaného výrazu na pozici kurzoru vloží funkce RGBColor, která vrací celočíselnou hodnotu barvy vytvořené z hodnot argumentů/složek červené (R), zelené (G) a modré (B).
Funkci je možné využít například při definování vlastní barvy podkladu v editoru sloupců.
- Přidej barvu HLS - obdoba předchozí funkce, do editovaného výrazu vloží funkci HLSColor vracející celočíselnou hodnotu barvy definovanou složkami odstín (H), jas (L) a sytost (S).
- Přidej text jako výraz - funkce převede jakýkoliv text tak, aby byl validní ve výrazu. Následovně:
- Uvozovky nahradí funkcí NxQuote
- Nové řádky nahradí funkcí NxCRLF
- Další neplatné znaky nahradí funkcí NxChr (např. tab NxChr(9))
- Celý text dá do uvozovek
- Celý text rozdělí na více řádek pokud je delší než 120 znaků
Zde zadáte příslušný výraz. Zapsat jej můžete ručně, nebo jej můžete sestrojit výběrem funkcí a datových položek objektů nabízených v části Funkce, resp. Datové položky objektu a to následovně:
- stiskem funkčního tlačítka Přidej - přidá funkci resp. datovou položku, na které aktuálně stojí kurzor
-
myší poklepáním na vybrané funkci resp. datové položce
Poklepání (dvojité kliknutí) na položce s vnořenými položkami způsobí rozbalení seznamu vnořených položek a zároveň vložení názvu položky do editovaného výrazu.
Editor výrazů podporuje rychlou nápovědu a rychlé vyhledávání iSense (obdoba rychlé nápovědy IntelliSense z Delphi). Jedná se o kontextovou nabídku klíčových výrazů, z nichž lze jednoduše vybrat (nabízení tříd, metod, funkcí a parametrů apod.).
Příklad vyvolané nápovědy (intellisense)
Ovládání: Ovládání je obdobné jako v Delphi. Zde je nápověda (iSense) vyvolávána ručně pomocí klávesové zkratky Ctrl+mezerník (Ctrl+Space). K dispozici je zde možnost rychlého interaktivního hledání pomocí kl. zkratky Ctrl+E:
Panýlek zobrazený po vyvolání rychlého hledání. Hledaný text píšete ale rovnou v editaci zdroj. kódu, nikoli do položky Vyhledat. Tam se automaticky zobrazuje dohledaný řetězec.
V editačních prvcích jako je tento (tzv. SynEdit) platí, že pokud je použit na modálních dialozích s tlačítkem Storno, tak dialogy nereagují na klávesu Esc (nezavřou se), pokud stojí fokus v SynEditu. Zde nelze pomocí Esc zavřít editor, pokud je fokus v poli pro zadání výrazu. Je to vlastnost způsobená přítomností inkrementálního hledání (CtrE). Nicméně není na závadu, zavření lze provést jiným způsobem než klávesou Esc anebo je třeba přemístit fokus.
Správnost syntaxe zadaného výrazu je na uživateli, editor výrazů ji sám o sobě nekontroluje.
Pokud ve výrazech chcete použít desetinné číslo, je možno jako oddělovač desetinných míst použít POUZE desetinnou tečku. Desetinná čárka je chápána jako oddělovač parametrů funkcí.