====== Groovy makra v Openu ====== ===== 1. Makra - Syntaxe a použití ===== === A. Syntaxe makra === * Groovy je objektově orientovaný programovací jazyk pro platformu Java. * Jde o alternativu k programovacímu jazyku Java. * Lze na něj pohlížet jako na skriptovací jazyk pro javovskou platformu. * Využívá výhody objektového programování, ale zároveň poskytuje zjednodušenou „skriptovací“ syntaxi, která umí „zabalit a rozbalit“ často opakované části kódu. Syntaxe makra má většinou toto členění. * **Třída** je "program" nebo "popis dat" napsaný autory IS Open. Třídy jsou opakovatelně použitelné pro práci, která zjednodušuje tvorbu maker. * Na prvním místě jsou **importy**. Všechny třídy, které použiji v makru musím naimportovat. Import obsahuje ce "cestu" ke třídě, kde je uložena. Poté již mohu takové třídy použít bez této "cesty". - Dále pak následují vlastní **metody**. Zjednodušeně "bloky" kódu, které vykonávají požadovanou činnost. Dříve se často používalo označení "funkce" nebo "procedura". - mají **parametry** – vstupní hodnoty objektů, entit - vrací nějakou hodnotu – pomocí **return** **Parametry** se liší podle místa, kde je makro voláno. Většina **metod** vrací nějakou návratovou hodnotu - jedna proměnná, nebo celá třída Typ návratové hodnoty nelze beztrestně změnit - většinou dojde k znefunkčnění makra. * Přístup na **atributy entity** - funkce začínající **get** – přečtení hodnoty atributu - funkce začínající **set** – nastavení atributu na hodnotu * Možnosti volání jiných **Groovy maker** Z makra mohu zavolat jiné makro, tímto mám stejný kód na jedno místě, nebo řeším případ, kdy z makra na klientu volám makro na serveru. **Vzorové** případy použití maker jsou distribuované s instalací IS Open a mají kód makra začínající "vzor". === B. Kde jsou Groovy makra použita === * **Aktualizace dat** - Wrapper – detail a browse * **Tlačítko v ikonové liště** wrapperu * **Workflow** – podmínky, plnění schvalovatelů, obsluha schvalovaného dokladu * **Šablony mailů** – programové naplnění proměnných * **Tisk** – před a po tisku == Aktualizace dat - Wrapper == * **Seznam (browse)** * naplnění hodnoty sloupce browsu * nastavení barev – getForegroundColor a getBackgroundColor Makra jsou spouštěna na klientu. * **Tlačítko** v ikonové liště wrapperu * **Detail** * editUvod – naplnění hodnot před editací * validate – kontrola po opuštění pole * kontrolaVeta – kontrola před uložením * noEditDetail – doplnění zobrazovaných/dotahovaných hodnot * povolení aktualizace * canEdit - aktualizace * canInsert - zakládání nové * canCopy - kopie * canDelete - smazání Makra jsou spouštěna na klientu. Makra jsou uložena přímo v pohledu, ve kterém pracují. == Workflow == * Podmínka spuštění postupu * Podmínka předání na další krok – větvení oběhu * Plnění Třídících a Dalších hodnot v postupu * nastavení v Typech postupů * Kontrola splnění kroku * nastavení na kroku postupu * Vyhodnocení zařazení následujícího kroku * nastavení na vzoru postupu Makra použitá ve výrazu jsou uvozena znakem „#“ Makra jsou spouštěna na serveru. Makra jsou uložena v Groovy makrech == Šablony mailů == * Plní hodnoty pro předmět a tělo mailu * V návrhu začíná jejich použití znakem "#" který odpovídá metodě "get" Makra jsou spouštěna na serveru. Makra jsou uložena v šabloně mailu == Jasper tisky == * možnost naplnit atributy entity počáteční hodnotou * kontrola pole po jeho vyplnění * nastavení programové varianty * možnost změny jména tiskové šablony Makro má stejné jméno jako spouštěná sestava jrxml Makro je uloženo v Groovy makrech