Příklady použití vybraných funkcí a výrazů
V této kapitole naleznete pár příkladů, na kterých je demonstrováno použití několika vybraných funkcí. Funkcí, které jsou k dispozici je však několikanásobně více a není účelem této kapitoly popisovat jejich význam a syntaxi. Popis a syntaxe každé dostupné funkce je k dispozici přímo v editoru výrazů.
NxAccountID(<Value>)
Použití hlavně v definici předkontací. Ve výrazových položkách účtu musí být výraz, jehož hodnotou je interní identifikátor účtu z účetní osnovy. K tomu slouží právě tato funkce. Vrátí identifikátor prvního nalezeného účtu v osnově, který začíná řetězcem zadaným jako Value.
Potřebujeme předkontovat účet MD pro faktury vydané. Mějme v osnově účty 31100, 31110, 31115 a 31120. Pokud zapíšeme NxAccountID('311'), předkontuje účet 31100 ), pokud NxAccountID('3111'), předkontuje účet 31110. Pokud bychom chtěli předkontovat 31115, musíme zapsat NxAccountID('31115').
NxConditions
Použití v tisk. sestavách, obvykle v záhlaví celé sestavy. Je-li použita, vypíše zadané omezující podmínky pro sestavu.
Vypisujeme knihu faktur omezenou za období a měnu. Výraz NxConditions vložený do záhlaví sestavy pak vypíše do jednotlivých řádků seznam omezujících podmínek, např.:
Období:1999,2000
Měna:CZK
Pozor, v tomto případě předem nevíme, kolik omezujících podmínek bude zatrženo, proto by pro správnou funkci mělo být u daného pruhu nastaveno Automatické roztahování (viz Vlastnosti daného pruhu (bandu) v definici tiskové sestavy).
Funkce NxConditions vrací omezující podmínky tak, jak byly zadány v záložce Omezení dané agendy jedině v případě, že používáte funkci Tisk s volbou Vše podle definice omezení (s občerstvením). Pokud používáte jinou volbu, pak funkce nevypisuje výčet omezujících podmínek, ale pouze stručnou informaci o počtu vybraných záznamů.
NxInputDialog(<Str1>, <Str2>, <Str3>)
Funkce umožní do tištěné sestavy vložit textový řetězec zadaný uživatelem v dialogovém okně, který se mu po volbě příslušné tisk. sestavy nabídne. Dialogové okno má nadpis dle parametru Str1 a jmenovku editačního pole dle parametru Str2. Funkce vytiskne buď hodnotu zadanou uživatelem v dialogovém okně, nebo vytiskne hodnotu zadanou v proměnné Str3. Využijete v případech, kdy potřebujete do tisků vkládat proměnné texty, u nichž není praktické je mít natvrdo nadefinované přímo v definici sestavy (např. právě z důvodu variability).
Do tiskové sestavy např. objednávky vydané přidáme např. do patičky funkci NxInputDialog('Zadejte text, který chcete vytisknout', 'Požadovaný text',''). Potom po vybrání této sestavy k tisku se nabídne okno:
Příklad vyvolaného dialogu
V tomto případě se na konec tiskového výstupu vytiskne zadaný text (pro zvýraznění můžete nastavit např. jiný font apod.). Pokud by text nebyl zadán, nebude se tisknout nic, jelikož hodnota parametru <Str3> je prázdný řetězec.
NxFormatDate(<Str1>,<Var1>)
Zformátuje datum do požadovaného tvaru podle řetězce v parametru Str1.
Mějme položku MAIN.FileInDate$DATE, která sama o sobě bude datum tisknout např. 5.7.2001. Pokud použijeme funkci NxFormatDate('MM/DD/YYYY', MAIN.FileInDate$DATE), pak obdržíme 07.05.2001.
NxGetCompany
Sada funkcí pro získání údajů o vedené firmě (jedná se o údaje zpracovávané firmy, jako je vlastní adresa, IČO apod. (tedy nejedná se o údaje firem z adresáře).
NxGetDocumentNumber(<DocQueues>,<DocumentNumber>,<Period>)
V databázi se nepamatují přímo čísla jednotlivých dokladů, ale jen pořadové číslo a odkazy na danou zdrojovou řadu dokladů a období. Pokud tedy chceme na doklad vytisknout číslo dokladu:
Do hlavičky formuláře dokladu vložíme výraz NxGetDocumentNumber(MAIN.DocQueue_Code,MAIN.OrdNumber,MAIN.Period_Code). Funkce vrátí číslo dokladu složené ze zkratky (např. FV), pořadového čísla v řadě (např. 112) a kódu období (např. 2001). Tedy výsledkem bude FV112/2001.
Existuje i jiné řešené tohoto požadavku, podrobněji viz kap. Příklady řešení tisku vybraných úloh.
NxGetUserName(<ID>)
Vrací jméno uživatele, jehož interní identifikátor (ID) je uveden jako parametr dané funkce. Hlavní užití v tiskových sestavách, kde se pamatuje vždy jen odkaz na ID uživatele, který doklad vystavil resp. opravil a ne jeho jméno. V tiskových sestavách je ale samozřejmě požadováno jméno uživatele.
Tisk. sestava formuláře dokladu, např. faktury vydané. Odkaz na uživatele, který ji vystavil, je uveden v hlavičce faktury v položce CreateBy_ID. Řešení: Tedy např. do sestavy vložíme výraz NxGetUserName(MAIN.CreateBy_ID), který vytiskne na doklad faktury vydané uživatele, který ji vystavil.
Existuje i jiné řešené tohoto požadavku, podrobněji viz kap. Příklady řešení tisku vybraných úloh.
NxPad(<S>,<Count>,<Char>), NxPadL, NxPadr
Sada funkcí, které řetězec S doplní z obou stran, resp. zleva, resp. zprava znaky Char na počet Count.
Proměnnou A, která obsahuje řetězec 99, chceme vytisknout ve tvaru '0099'. Řešení: NxPadL(A,4,'0').
NxSQLSelect(<SQL Select statement>)
Pomocí této funkce je možné získat informace z jakéhokoliv SQL selectu, který je přímo parametrem funkce. Příklad volání: NxSQLSelect('SELECT sum(LocalAmount) from ReceivedInvoices'). Funkce kontroluje, zda je zadaný výraz skutečně typu Select - pokud ne, nic neprovede. Kromě vlastního dotazu je možné funkci předat ještě několik dalších volitelných parametrů, aktuální popis je k dispozici přímo v editoru výrazů.
Použití funkce je možné omezit na určité databázové tabulky.
Výraz pro zjištění počtu záznamů v kolekci
Na položce, která je typu kolekce použít tento zápis: MAIN.ID.Rows#Count
Vrátí to počet záznamů v kolekci.
Použito např. v definici tiskového formuláře pokladního příjmu, kde se tímto ověřuje, zda má doklad jen jeden řádek a současně s tím se hlídá, zda je to platba a pokud ano, tak se tisk provede jinak, než u běžné pokladní příjemky, která není jen platbou předpisu.