1. Základní informace
- Serverové funkce slouží k volání programového kódu na straně serveru. Výsledkem volání serverové funkce je vždy hodnota vyjádřená textovým řetězcem.
- Serverové funkce mohou při návrhu aplikací používat pouze administrátoři. Běžný uživatel nemá z uživatelského rozhraní aplikace přímý přístup k jejich volání a serverové funkce jsou vždy spouštěny pouze zprostředkovaně prostřednictvím aplikací navržených administrátory. Výjimkou je funkce „EVAL“ nad hodnotou, kterou může měnit běžný uživatel: vyhodnotí i funkce, které do ní uživatel zapsal (viz popis funkce „EVAL“). Obdobně může běžný uživatel ovlivnit volání funkce „ngef2“ uložené v ovládacím prvku, jehož hodnotu může změnit ve formuláři nebo importem dat do nahlížecí tabulky (viz popis funkce „ngef2“).
- Každá funkce má v popisu uvedeno pole „Použití“, které určuje, kam se její volání smí zapsat — do prvku HTML, do řádku skriptu, do klientského JavaScriptu, do pole „Poznámky“ a podobně. Funkce určená pro jedno použití nemusí fungovat jinde.
- Obsah ovládacího prvku RichText zadaný přímo textem se vyhodnocuje stejně jako obsah ovládacího prvku HTML, takže funkce, které mají v poli „Použití“ uvedeno „HTML“, lze zapsat i do formátovaného textu. Text, který prvek načítá databázovým dotazem, se nevyhodnocuje.
- Funkce, které mají v poli „Použití“ uvedeno „HTML“, se vyhodnocují také ve výchozí hodnotě ovládacího prvku, ve výrazu připojeném za výsledek agregační funkce ovládacího prvku „AutoSum“, v hodnotách podmínek databázového dotazu, ve výchozích hodnotách „Od“ a „Do“ časového úseku databázového dotazu, v hodnotách výběrových ovládacích prvků, ve zkráceném názvu databázového ovládacího prvku, v názvu ovládacího prvku „HTML“, v textu ovládacích prvků „Title“ a „Tab“, v názvu ovládacího prvku „Chart“, v seznamu zdrojů ovládacích prvků „Kanban“ a „Planner“, v názvech sloupců a v doplňkových řádcích záhlaví statistické nahlížecí tabulky, v počáteční hodnotě číselné řady výchozích hodnot typu „Max + 1“, v adrese nahlížecí stránky typu „Zobrazit webovou stránku“, v podmínce konfiguračního souboru „Holidays.txt“ a v copyrightu navigační oblasti zadaném konfiguračním souborem „Copyright.txt“, pokud jeho obsah nezačíná znakem „©“ a mezerou.
- Část funkcí není dostupná v cloudové variantě NET Genium Online — jde především o funkce, které pracují se soubory na disku serveru (včetně vytváření příloh), hromadně exportují nebo importují data, nebo zasahují do provozu serveru. V popisu takové funkce je uvedeno pole „Omezení“. Návrhář skriptů takovou funkci v seznamu funkcí nenabízí a její volání se v cloudové variantě nevyhodnotí — zůstane v textu jako nevyhodnocené volání (viz kapitolu 1.6.). Výjimkou jsou funkce „OCR2FILE“, „OCR2HTML“ a „OCR2TEXT“, jejichž volání s cestou k souboru skončí v cloudové variantě ve skriptu chybou; funkce „OCR2HTML“ a „OCR2TEXT“ v ostatních místech místo toho vrátí text chyby.
1.1. Zápis volání
Parametry se uzavírají do kulatých závorek a oddělují čárkou. Funkce, které nepřijímají žádné parametry, musí být při volání vždy uvedeny s kulatými závorkami. Výjimkou jsou funkce zapisované do názvu ovládacího prvku HTML (např. „CENTER“ nebo „NOBACKGROUND“), které se v něm zapisují bez závorek; zápis uvádí popis příslušné funkce.
TEMPPASSWORD()
LOWER(ABC)
SUBSTRING(abcdef, 0, 3)
Mezi názvem funkce a otevírací závorkou nesmí být mezera, jinak se volání nevyhodnotí. Za název funkce se považují jen písmena a číslice bezprostředně před závorkou. Funkce se proto vyhodnotí i tehdy, když jejímu názvu předchází jiný znak, například podtržítko, tečka nebo pomlčka – zápis „x_UPPER(abc)“ se vyhodnotí jako volání funkce UPPER. Na to je třeba dát pozor v JavaScriptu, kde se takto jako serverová funkce vyhodnotí i volání metody nebo funkce se stejným názvem, kterému předchází tečka, podtržítko nebo jiný znak než písmeno a číslice (například „obj.upper(abc)“).
Parametr logického typu („bool“) je pravdivý jen s hodnotou „true“, na velikosti písmen nezáleží. Jakákoli jiná hodnota, například „1“ nebo „ano“, znamená nepravdu.
Počet dnů, hodin, minut, měsíců nebo roků, který přičítají funkce „ADDDAYS“, „ADDHOURS“, „ADDMINUTES“, „ADDMONTHS“, „ADDWORKDAYS“, „ADDWORKHOURS“ a „ADDYEARS“, se vyhodnotí jako aritmetický výraz, například „ADDDAYS(#today#, #A# * 7)“ ve skriptu. Vyhodnotí se jen úvodní úplný výraz a text za ním se zahodí – například „ADDHOURS(#now#, 1:30)“ přičte jednu hodinu. Hodnota, ze které výraz vyhodnotit nelze, se počítá jako „0“. Výsledné datum mimo rozsah datového typu skončí chybou (viz kapitolu 1.6.). Parametry „skipholidays“, „starthour“ a „endhour“ se jako výraz nevyhodnocují; hodnota, která není celé číslo (včetně čísla mimo rozsah datového typu), znamená „0“.
Matematické funkce „ABS“, „ARCCOS“, „ARCSIN“, „ARCTAN“, „COS“, „EXP“, „LOG10“, „POWER“, „ROUND“, „SIN“, „SQUARE“ a „TAN“ vracejí desetinné číslo s desetinným oddělovačem podle jazyka přihlášeného uživatele – uživateli s českým jazykem s desetinnou čárkou, uživateli s anglickým jazykem s desetinnou tečkou. Příklady těchto funkcí v této příručce uvádějí výsledek pro český jazyk.
1.2. Velikost písmen v názvu funkce
Název funkce se zapisuje přesně v té podobě, v jaké je uveden v seznamu serverových funkcí v kapitole 2. U většiny funkcí jde o velká písmena, funkce ngef a ngef2 jsou uvedeny malými písmeny.
U většiny serverových funkcí na velikosti písmen nezáleží — zápisy „SUBSTRING(abcdef, 0, 3)“, „substring(abcdef, 0, 3)“ i „Substring(abcdef, 0, 3)“ jsou rovnocenné. U některých funkcí je ale předepsaná podoba zápisu závazná, zpravidla proto, že se název funkce shoduje s konstrukcí JavaScriptu, která musí zůstat zachována pro prohlížeč. Závaznou podobu zápisu mají tyto funkce:
- jen velkými písmeny: BUTTON, COPILOTCHAT, DATE, EVAL, GANTT, HTMLDECODE, HTMLENCODE, INT2TIME, MINUTES2TIME, REMOVEDIACRITICS, REMOVETAGS, REMOVEWHITESPACES, SECONDS2TIME, SPLIT, TIME2INT, TIME2MINUTES, TIME2SECONDS, URLDECODE, URLENCODE,
- přesně v uvedené podobě: DateArray, DoubleArray, EmailArray, IntegerArray, LongArray, StringArray, ngef2.
U dalších funkcí (např. ROUND, TRIM, INDEXOF) se nevyhodnotí jen zápis, který odpovídá konstrukci JavaScriptu; toto omezení je uvedeno v popisu příslušné funkce. Patří k nim i funkce TRANSLATE, jejíž zápis „translate(“ malými písmeny se v JavaScriptu, v obsahu ovládacích prvků HTML, RichText a Title editačního formuláře, na nahlížecí stránce, v portletu na hlavní stránce, který zobrazuje ovládací prvek HTML nebo RichText, a v copyrightu navigační oblasti zadaném konfiguračním souborem „Copyright.txt“ nevyhodnotí, nepředchází-li mu písmeno, číslice, podtržítko, znak „$“, tečka, uvozovka, apostrof ani pomlčka a nestojí-li v deklaraci CSS „transform:“.
Funkce zapisované do názvu ovládacího prvku HTML (např. „CENTER“, „NOBACKGROUND“ nebo „WEBFORM“) rozpozná NET Genium jen tehdy, odpovídá-li jim celý název prvku včetně velikosti písmen. Zapisují se proto přesně velkými písmeny, jak jsou uvedeny v kapitole 2, a bez dalšího textu (výjimkou jsou závorky u funkcí „/TABLE“ a „/DIV“, viz jejich popis).
Funkce zapisované do pole „Poznámky“ editačního formuláře nebo nahlížecí stránky (např. „CENTER()“, „FULLAJAXMODE()“, „LABELSINSIDE()“, „LAYOUT()“ nebo „MARGINS()“) vyhledává NET Genium v poznámce s rozlišením velikosti písmen. Zapisují se proto přesně velkými písmeny, jak jsou uvedeny v kapitole 2; jiný zápis se neuplatní.
Funkce zapisované do pole „Poznámky“ databázového ovládacího prvku nebo databázového dotazu (např. „CONTROLINDETAILS()“, „LABELPOSITION()“ nebo „PRINTCOLUMNS()“) se zapisují rovněž přesně velkými písmeny podle kapitoly 2. U některých z nich NET Genium jiný zápis nerozpozná.
1.3. Mezery kolem parametrů
Bílé znaky (mezery, tabulátory i konce řádků) na začátku a na konci každého parametru se před vyhodnocením odstraní. Zápisy „SUBSTRING(abcdef,0,3)“ a „SUBSTRING( abcdef , 0 , 3 )“ jsou proto rovnocenné a mezery lze používat pro lepší čitelnost zápisu.
Odstraněny jsou pouze mezery uvedené přímo v zápisu volání. Mezery v hodnotě, která se do parametru dosadí za proměnnou nebo za výsledek vnořeného volání, zůstávají zachovány. Funkce ořezávající mezery se proto uplatní nad proměnnou nebo vnořeným voláním, nikoli nad textem zapsaným přímo v parametru.
TRIM( abc )
// Vrací „abc“; mezery odstranilo již zpracování parametrů a funkce TRIM je bez účinku
TRIM(#ng_prijmeni#)
// Vrací hodnotu pole „Příjmení“ bez mezer na začátku a na konci
TRIM(" abc ")
// Vrací „abc“; uvozovky mezery zachovaly a odstranila je až funkce TRIM
Má-li parametr začínat nebo končit mezerou, musí být uzavřen do dvojitých uvozovek.
1.4. Dvojité uvozovky
Parametr lze uzavřít do dvojitých uvozovek. Uvozovky vymezují hranice parametru a nejsou součástí jeho hodnoty. Uzavřít parametr do uvozovek je nutné ve třech případech:
- parametr obsahuje znak čárky, který by byl jinak vyhodnocen jako oddělovač parametrů,
- parametr začíná nebo končí mezerou,
- parametr obsahuje nespárovanou kulatou závorku.
REPLACE("a, b, c", ",", ";")
// Vrací „a; b; c“; bez uvozovek by čárky rozdělily volání na více parametrů
Uvozovky zároveň mění způsob zpracování obsahu parametru. Uvnitř uvozovek se nenahrazují proměnné ani nevyhodnocují vnořená volání funkcí — funkce zpracuje text v doslovné podobě.
LOWER(#ng_prijmeni#)
// Vrací příjmení malými písmeny
LOWER("#ng_prijmeni#")
// Vrací příjmení nezměněné; funkce zpracovala doslovný text „#ng_prijmeni#“ a proměnná byla dosazena až po vyhodnocení funkce
Výjimkou jsou funkce SQL, SQLARRAY, SQLTABLE, EVAL, FORMATDATATABLE, FORMATDATAVIEW, EXPORTDATATOXMLATTACHMENT, EXPORTDATATOXMLFILE, EXPORTFORMDATATOXMLATTACHMENT a EXPORTFORMDATATOXMLFILE a funkce COLORLEGEND s jediným parametrem, je-li jím databázový dotaz. Jejich parametr s databázovým dotazem (u funkce EVAL parametr s výrazem) bývá do uvozovek uzavřen, protože obsahuje čárky, a proměnné i vnořená volání serverových funkcí se v něm přesto vyhodnocují.
SQL("SELECT ng_nazev FROM ng_firma WHERE id = #ng_idfirma#")
Parametr s databázovým dotazem se doporučuje uzavírat do uvozovek vždy, i když dotaz čárky neobsahuje.
Uvozovky se z hodnoty parametru odstraní a jeho obsah se zpracuje doslova jen tehdy, uzavírají-li celý parametr a další uvozovku uvnitř neobsahuje. V ostatních případech – například když za uzavírací uvozovkou následuje další text – zůstanou uvozovky součástí hodnoty parametru, proměnné se v něm dosadí a vnořená volání se vyhodnotí, pokud nestojí uvnitř uvozované části; před rozdělením na parametry ale čárku chrání každá dvojice uvozovek. Uvozovku uvnitř parametru proto nelze zapsat jejím zdvojením. Znaky se zvláštním významem v zápisu volání se vkládají proměnnými:
- #comma# — čárka
- #doublequotes# — dvojitá uvozovka
- #sharp# — znak mřížky
- #crlf# — konec řádku
- #tab# — tabulátor
1.5. Proměnné a vnořené funkce v parametrech
Parametrem může být proměnná i volání další serverové funkce. Vnořená volání se vyhodnocují zevnitř ven a jejich výsledek je do parametru dosazen jako text. V editačním formuláři se v obsahu ovládacích prvků HTML, RichText, Title a JavaScript, v JavaScriptu událostí ovládacích prvků a tlačítek (včetně tlačítek „Uložit“, „Smazat“ a „Zpět“ ovládacího prvku „ActionButtons“), ve výchozí hodnotě typu „JavaScript“ a ve vlastním textu tlačítka „Uložit a nový“ proměnná „#ng_...#“ nahradí odkazem na ovládací prvek ještě před vyhodnocením funkcí, a to i uvnitř dvojitých uvozovek; hodnotu ovládacího prvku do parametru funkce předává zápis „#ng_...:value#“. Detailní popis proměnných je uveden v samostatné příručce Proměnné.
UPPER(SUBSTRING(#ng_prijmeni#, 0, 1))
// Vrací první písmeno příjmení velkým písmenem
ADDDAYS(#today#, 7)
// Vrací datum za týden od dnešního dne
Obsah ovládacích prvků HTML, RichText a Title v editačním formuláři, obsah ovládacího prvku JavaScript v editačním formuláři i na nahlížecí stránce, JavaScript událostí ovládacích prvků, pole „Klient“ tlačítka, JavaScript tlačítek „Uložit“, „Smazat“ a „Zpět“ ovládacího prvku „ActionButtons“, výchozí hodnota typu „JavaScript“ a vlastní text tlačítka „Uložit a nový“ se vyhodnocují stejně jako JavaScript: funkce „SQL“ s dotazem, který vrací více sloupců, vrací první řádek výsledku jako pole JavaScriptu, a zápisy, které se v JavaScriptu nevyhodnocují (funkce „REPLACE“ zapsaná malými písmeny a funkce „EMAIL“ zapsaná malými písmeny s prázdným parametrem), zůstanou v textu nevyhodnocené. Obsah ovládacích prvků HTML, RichText a Title na nahlížecí stránce se takto nevyhodnocuje.
Dosazená hodnota se na parametry znovu nedělí. Obsahuje-li čárku, počet parametrů volání se tím nemění. Hloubka vnoření je omezená: vyhodnotí se vnější volání a nejvýše pět úrovní volání vnořených do jeho parametrů. Volání na páté úrovni vnoření se ještě provede, jeho parametry se ale už nevyhodnotí a funkce je zpracuje jako doslovný text.
Výsledek funkce se po vyhodnocení prochází nahrazením proměnných stejně jako okolní text. Obsahuje-li vrácená hodnota zápis proměnné „#...#“ – například v datech načtených funkcí „SQL“ –, proměnná se do ní dosadí. Výjimkou jsou tiskové šablony ve formátu TXT, CSV a HTML a text s voláním funkce „OCR2HTML“ nebo „OCR2TEXT“, ve kterém se proměnné na úrovni volání ani na nadřazených úrovních výrazu nedosazují; dosadí se jen proměnné v parametrech jiných funkcí mimo dvojité uvozovky, které samy volání těchto funkcí neobsahují.
1.6. Nevyhodnocené volání
Volání, které nelze vyhodnotit, zůstává v textu a nezobrazí se žádná chybová hláška; na výstupu se objeví zápis volání, do jehož parametrů se už dosadily výsledky vnořených funkcí – zápis „xxxUPPER(LOWER(ABC))“ se vypíše jako „xxxUPPER(abc)“. Nastává to v těchto případech:
- název funkce neodpovídá žádné existující funkci,
- počet parametrů neodpovídá žádné variantě funkce (funkce „ADDDAYS“ a „ATTACHMENTGALLERY“ ale přijmou i parametry navíc – „ADDDAYS“ hledá hodnoty „sat“ a „sun“ ve všech parametrech od čtvrtého a „ATTACHMENTGALLERY“ hodnotu „zoom“ ve všech parametrech od pátého),
- funkce má závaznou podobu zápisu názvu a je zapsána jinak (viz kapitolu 1.2.),
- kulaté závorky volání nejsou spárované – závorky uvnitř dvojitých uvozovek se nepočítají, takže volání vyřadí i osamocená dvojitá uvozovka v jeho parametru (například v zápisu rozměru 24"); dvojitou uvozovku v hodnotě parametru je nutné vložit proměnnou „#doublequotes#“,
- text před voláním obsahuje lichý počet dvojitých uvozovek – počítají se od začátku textu, nebo od konce předchozí dvojice spárovaných kulatých závorek, která sama nestojí v uvozovkách (i když nejde o volání funkce), a rozhoduje jen jejich počet, takže volání vyřadí i osamocená dvojitá uvozovka v textu před ním (například v zápisu rozměru 24") a apostrofy volání nechrání,
- funkce čte databázový dotaz a ten neprojde kontrolou zápisu dotazu popsanou u funkce „SQL“ – týká se funkcí „SQL“, „SQLARRAY“, „SQLTABLE“, „FORMATDATATABLE“ a „FORMATDATAVIEW“ (funkce „EXPORTDATATOXMLATTACHMENT“, „EXPORTDATATOXMLFILE“, „EXPORTFORMDATATOXMLATTACHMENT“ a „EXPORTFORMDATATOXMLFILE“ takový dotaz jen vynechají a soubor nebo přílohu vytvoří bez něj, viz jejich popis),
- funkce je zapsaná jinde, než uvádí její pole „Použití“ – například funkce určená pro komentářový řádek skriptu v jiném kroku skriptu (několik takových funkcí se ale provede i tam) nebo v prvku HTML, funkce určená pro editační formulář na nahlížecí stránce, nebo funkce s polem „Omezení“ v cloudové variantě NET Genium Online,
- funkce se v testovacím běhu skriptu neprovádí (týká se zejména funkcí, které zapisují do databáze, vytvářejí přílohy, odesílají zprávy nebo plánují akce po dokončení skriptu); některé z nich v testovacím běhu místo toho vrátí zástupnou hodnotu – například funkce „COPYATTACHMENT“ vrací „0“ a funkce „READURL“ s platnou adresou prázdný řetězec,
- NET Genium běží v demo režimu (konfigurační soubor „Demo.txt“) nebo v režimu pouze pro čtení NET Genium Online a skript neběží v editačním formuláři, ve kterém jsou změny povolené; funkce, které zapisují do databáze, vytvářejí přílohy nebo odesílají zprávy, se pak zpravidla neprovedou stejně jako v testovacím běhu, funkce „COPYATTACHMENT“ s jedním parametrem ale v demo režimu místo „0“ vrací ID původní přílohy (v NET Genium Online se nevyhodnocuje vůbec),
- skript běží bez webového požadavku (naplánovaná úloha spuštěná programem „RunScript.exe“) a funkce pracuje s požadavkem nebo stránkou prohlížeče – týká se například funkcí „REQUESTFORM“, „REQUESTQUERYSTRING“, „SETCOOKIE“, „FLUSHFILE“, „HIDEFORM“ a „SETQUERYCOLUMN“; funkce „GETCOOKIE“ v takovém skriptu vrací prázdný řetězec.
Několik funkcí při nesprávném počtu parametrů v textu nezůstane, ale vrátí hodnotu: funkce „NGDPH“ vrací „0“, funkce „NGVAT“, „NGVATRATES“ a „GETCOOKIE“ prázdný řetězec. Některé funkce bez parametrů (například „COMMIT“, „SKIPSAVE“ nebo „TEMPPASSWORD“) se naopak provedou i s jedním zadaným parametrem, který ignorují: prázdné závorky se zpracují jako jeden prázdný parametr a obsah jediného parametru tyto funkce nekontrolují, takže zápis „TEMPPASSWORD(x)“ se vyhodnotí stejně jako „TEMPPASSWORD()“.
Parametry se vyhodnocují dřív než samotná funkce. Proměnné a vnořená volání v parametrech nevyhodnoceného volání se proto vyhodnotí a provedou, i když vnější funkce zůstane nevyhodnocená. Platí to i pro funkci vyřazenou z provozu změnou názvu (např. předponou „xxx“): v zápisu „xxxWRITEMESSAGE(ngef(Funkce))“ se externí funkce přesto zavolá.
Nejčastější příčinou nevyhodnoceného volání je nesprávný počet parametrů a překlep v názvu funkce.
Funkce, která se vyhodnotí a skončí chybou, v textu nezůstane: ve skriptu ukončí celý skript a v ovládacím prvku HTML, RichText nebo JavaScript, v textu ovládacích prvků „Title“ a „Tab“, v názvu ovládacího prvku „Chart“, v seznamu zdrojů ovládacích prvků „Kanban“ a „Planner“, ve výchozí hodnotě ovládacího prvku zadané textem, ve výčtu hodnot výběrového ovládacího prvku, ve výchozích hodnotách „Od“ a „Do“ časového úseku databázového dotazu, ve zkráceném názvu databázového ovládacího prvku, v názvu ovládacího prvku „HTML“, v názvech sloupců a v doplňkových řádcích záhlaví statistické nahlížecí tabulky a v podmínce databázového dotazu nahlížecí tabulky a dalších prvků zobrazujících data (například stromu a historie, ne však grafu) ukončí načítání celé stránky; v copyrightu navigační oblasti zadaném konfiguračním souborem „Copyright.txt“ ukončí načítání navigační oblasti (vykresluje-li se navigační oblast uvnitř stránky, celé stránky). Je-li u ovládacího prvku zaškrtnuté pole „Vyplnit výchozí hodnotu před každým uložením záznamu do databáze“ a není zaškrtnuté pole „Vyplnit výchozí hodnotu při každém otevření editačního formuláře“, projeví se chyba ve výchozí hodnotě u existujícího záznamu až při jeho uložení: záznam se neuloží a uživateli se zobrazí chybové hlášení. Chyba ve výchozí hodnotě ovládacího prvku „DatePicker“ se naopak neohlásí a prvek dostane aktuální datum (u prvku s časem i aktuální čas); chyba v počáteční hodnotě číselné řady výchozích hodnot typu „Max + 1“ se neohlásí a číselná řada začne stejně jako bez počáteční hodnoty; chyba ve výrazu připojeném za výsledek agregační funkce ovládacího prvku „AutoSum“ se neohlásí, zapíše se do logu „Errors“ a použije se výsledek agregační funkce bez výrazu; chyba v podmínce dotazu, který plní hodnoty výběrového ovládacího prvku, nahradí hodnoty prvku jedinou položkou „Chyba!“. Některé funkce chybu nevyvolají a místo výsledku vrátí text chyby – například funkce „SQL“, „SQLARRAY“, „SQLTABLE“, „FORMATDATATABLE“, „FORMATDATAVIEW“ a „SEARCHFILES“.
2. Serverové funkce
string ABCXYZ(string callback)
Použití: HTML
Popis: Funkce zobrazí abecední lištu s českými znaky (A–Ž) jako seznam klikatelných odkazů. Po kliknutí na písmeno je zavolána JavaScript funkce zadaná parametrem „callback“ s odkazem a zvoleným písmenem jako argumenty. Výchozí název callbacku (pokud parametr „callback“ není vyplněn) je „abcxyz“. Lišta automaticky přizpůsobuje mezery pro mobilní zařízení.
Příklad:
ABCXYZ(filterByLetter)
// Zobrazí abecedu; kliknutí na „P“ zavolá filterByLetter(this, 'P')
ABCXYZ(abcxyz)
// Zobrazí abecedu s výchozím callbackem abcxyz
ABCXYZ()
// Zobrazí abecedu s výchozím callbackem abcxyz (prázdný parametr)
double ABS(double number)
Použití: HTML, Skript (jen v číselném výrazu, např. v hodnotě přiřazované do číselné proměnné)
Popis: Funkce vrací absolutní hodnotu čísla zadaného parametrem „number“. Výsledek je vždy nezáporné číslo bez ohledu na znaménko vstupu. Je-li název zapsán malými písmeny bezprostředně za tečkou, volání se nevyhodnotí a zůstane zachováno pro prohlížeč.
Příklad:
ABS(-1.23)
// Vrací „1,23“
ABS(5.67)
// Vrací „5,67“
ABS(0)
// Vrací „0“
ABS(#A# - #B#)
// Vrací absolutní rozdíl hodnot skriptových proměnných A a B (v číselném výrazu skriptu)
DateTime ADDDAYS(DateTime date, double days)
Použití: HTML, JavaScript, Skript
Popis: Funkce přičte k datu zadanému parametrem „date“ počet dnů definovaných parametrem „days“. Parametr „days“ může být i záporný (odečtení dnů) nebo desetinný (přičtení hodin a minut). Pro neplatné datum vrací prázdný řetězec.
Příklad:
ADDDAYS(1.1.2000, -1.2)
// Vrací „30.12.1999 19:12“
ADDDAYS(1.1.2000, 0)
// Vrací „01.01.2000“
ADDDAYS(1.1.2000, 2)
// Vrací „03.01.2000“
ADDDAYS(1.1.2000, 0.5)
// Vrací „01.01.2000 12:00“
ADDDAYS(#today#, 7)
// Vrací datum za týden od dnešního dne
DateTime ADDDAYS(DateTime date, double days, int skipholidays)
Použití: HTML, JavaScript, Skript
Popis: Funkce přičte k datu zadanému parametrem „date“ počet dnů definovaných parametrem „days“. Parametr „skipholidays“, který může být jakékoliv celé číslo, značí, že budou přeskočeny svátky. Je-li parametr „skipholidays“ nenulový a výsledné datum připadá na státní svátek trvající celý den, na sobotu nebo na neděli, přičítá funkce opakovaně „skipholidays“ dnů (záporná hodnota je odečítá), dokud výsledné datum na takový den nepřipadá; je-li „skipholidays“ násobkem sedmi, posouvá se datum z přeskakované soboty nebo neděle po jednom dni ve směru znaménka. Svátky mezi výchozím a výsledným datem se nepřeskakují; pracovní dny přičítá funkce „ADDWORKDAYS“. Pro neplatné datum vrací prázdný řetězec.
Příklad:
ADDDAYS(1.1.2000, -9.2, -2)
// Vrací „22.12.1999 19:12“
ADDDAYS(1.1.2000, 0, 1)
// Vrací „03.01.2000“
ADDDAYS(1.1.2000, 12, 0)
// Vrací „13.01.2000“
ADDDAYS(#today#, 0, 3)
DateTime ADDDAYS(DateTime date, double days, int skipholidays, string satsun)
Použití: HTML, JavaScript, Skript
Popis: Funkce přičte k datu zadanému parametrem „date“ počet dnů definovaných parametrem „days“. Parametr „skipholidays“, který může být jakékoliv celé číslo, značí, že budou přeskočeny svátky. Je-li parametr „skipholidays“ nenulový a výsledné datum připadá na státní svátek trvající celý den nebo na přeskakovaný den víkendu, přičítá funkce opakovaně „skipholidays“ dnů (záporná hodnota je odečítá), dokud výsledné datum na takový den nepřipadá; je-li „skipholidays“ násobkem sedmi, posouvá se datum z přeskakované soboty nebo neděle po jednom dni ve směru znaménka. Svátky mezi výchozím a výsledným datem se nepřeskakují; pracovní dny přičítá funkce „ADDWORKDAYS“. Defaultně jsou přeskočeny soboty a neděle, pro zamezení přeskočení soboty nebo neděle je třeba jako parametr „satsun“ uvést text „sat“ nebo „sun“. Pro neplatné datum vrací prázdný řetězec.
Příklad:
ADDDAYS(1.1.2000, -9.2, -2, sat)
// Vrací „22.12.1999 19:12“
ADDDAYS(1.1.2000, 0, 1, sun)
// Vrací „02.01.2000“
ADDDAYS(1.1.2000, 12, 0, sat)
// Vrací „13.01.2000“
ADDDAYS(#today#, 0, 3, sun)
DateTime ADDDAYS(DateTime date, double days, int skipholidays, string sat, string sun)
Použití: HTML, JavaScript, Skript
Popis: Funkce přičte k datu zadanému parametrem „date“ počet dnů definovaných parametrem „days“. Parametr „skipholidays“, který může být jakékoliv celé číslo, značí, že budou přeskočeny svátky. Je-li parametr „skipholidays“ nenulový a výsledné datum připadá na státní svátek trvající celý den nebo na přeskakovaný den víkendu, přičítá funkce opakovaně „skipholidays“ dnů (záporná hodnota je odečítá), dokud výsledné datum na takový den nepřipadá; je-li „skipholidays“ násobkem sedmi, posouvá se datum z přeskakované soboty nebo neděle po jednom dni ve směru znaménka. Svátky mezi výchozím a výsledným datem se nepřeskakují; pracovní dny přičítá funkce „ADDWORKDAYS“. Defaultně jsou přeskočeny soboty a neděle, pro zamezení přeskočení obou těchto dní je třeba jako parametry „sat“ a „sun“ uvést text „sat“ a „sun“. Pro neplatné datum vrací prázdný řetězec.
Příklad:
ADDDAYS(1.1.2000, -9.2, -2, sat, sun)
// Vrací „22.12.1999 19:12“
ADDDAYS(1.1.2000, 0, 1, sat, sun)
// Vrací „02.01.2000“
ADDDAYS(1.1.2000, 12, 0, sat, sun)
// Vrací „13.01.2000“
ADDDAYS(#today#, 0, 3, sat, sun)
DateTime ADDHOURS(DateTime date, double hours)
Použití: HTML, JavaScript, Skript
Popis: Funkce přičte k datu zadanému parametrem „date“ počet hodin definovaných parametrem „hours“. Parametr „hours“ může být i záporný (odečtení hodin) nebo desetinný (přičtení minut). Pro neplatné datum vrací prázdný řetězec.
Příklad:
ADDHOURS(1.1.2000, -1.5)
// Vrací „31.12.1999 22:30“
ADDHOURS(1.1.2000, 0)
// Vrací „01.01.2000“
ADDHOURS(1.1.2000, 5)
// Vrací „01.01.2000 05:00“
ADDHOURS(#now#, 10)
DateTime ADDMINUTES(DateTime date, double minutes)
Použití: HTML, JavaScript, Skript
Popis: Funkce přičte k datu zadanému parametrem „date“ počet minut definovaných parametrem „minutes“. Parametr „minutes“ může být i záporný (odečtení minut) nebo desetinný. Pro neplatné datum vrací prázdný řetězec.
Příklad:
ADDMINUTES(1.1.2000, -2.5)
// Vrací „31.12.1999 23:57:30“
ADDMINUTES(1.1.2000, 0)
// Vrací „01.01.2000“
ADDMINUTES(1.1.2000, 2)
// Vrací „01.01.2000 00:02“
ADDMINUTES(#now#, 0)
DateTime ADDMONTHS(DateTime date, int months)
Použití: HTML, JavaScript, Skript
Popis: Funkce přičte k datu zadanému parametrem „date“ počet měsíců definovaných parametrem „months“. Parametr „months“ může být i záporný (odečtení měsíců). Zadání desetinného čísla v parametru „months“ způsobí převod na datový typ „int“, nedochází k zaokrouhlování, ale k oříznutí čísel za desetinnou čárkou. Pro neplatné datum vrací prázdný řetězec.
Příklad:
ADDMONTHS(1.1.2000, -2.5)
// Vrací „01.11.1999“
ADDMONTHS(1.1.2000, 0)
// Vrací „01.01.2000“
ADDMONTHS(1.1.2000, 2)
// Vrací „01.03.2000“
ADDMONTHS(#now#, -2)
DateTime ADDTIMESPANINWORDS(DateTime date, string expression1, string expression2, ...)
Použití: HTML, JavaScript, Skript
Popis: Funkce přičte k datu zadanému parametrem „date“ časový údaj vyjádřený slovním popisem definovaným parametrem „expression1“, „expression2“, atd. Funkce může obsahovat libovolný počet parametrů, který je větší nebo roven 2. Slovní popis časového údaje je možné zadat v češtině, angličtině, němčině nebo francouzštině; výraz, který funkce nerozpozná, se přeskočí. Počet se zadává celým číslem – výraz s desetinným číslem se neuplatní a čárka v něm výraz rozdělí (např. „1,5 hodiny“ přičte 5 hodin); záporný počet časový údaj odečte. Pro neplatné datum vrací prázdný řetězec.
Příklad:
ADDTIMESPANINWORDS(1.1.2000, 2 months)
// Vrací „01.03.2000“
ADDTIMESPANINWORDS(1.1.2000, 1 year)
// Vrací „01.01.2001“
ADDTIMESPANINWORDS(1.1.2000, 1 year, 2 months, 1 day)
// Vrací „02.03.2001“
ADDTIMESPANINWORDS(1.1.2000, 1 den)
// Vrací „02.01.2000“
ADDTIMESPANINWORDS(1.1.2000 12:05, 1 rok, 2 měsíce, 1 den, 5 minut, 28 vteřin)
// Vrací „02.03.2001 12:10:28“
DateTime ADDWORKDAYS(DateTime date, int days)
Použití: HTML, JavaScript, Skript
Popis: Funkce přičte k datu zadanému parametrem „date“ počet pracovních dnů definovaných parametrem „days“. Při výpočtu zohledňuje víkendy a státní svátky evidované v základní aplikaci „Nastavení“; den se státním svátkem jen na část dne považuje celý za nepracovní. Parametr „days“ může být i záporný (odečtení pracovních dnů). Pokud je v parametru „days“ zadána desetinná hodnota, dojde k jejímu převodu na datový typ „int“ bez zaokrouhlení (desetinná část je oříznuta). Hodnota „0“ vrací původní datum beze změny. Pro neplatné datum vrací prázdný řetězec.
Příklad:
ADDWORKDAYS(1.1.2000, -2.5)
// Vrací „30.12.1999“
ADDWORKDAYS(1.1.2000, 0)
// Vrací „01.01.2000“
ADDWORKDAYS(1.1.2000, 2)
// Vrací „04.01.2000“
ADDWORKDAYS(#now#, -2)
DateTime ADDWORKHOURS(DateTime date, double hours, int starthour, int endhour)
Použití: HTML, JavaScript, Skript
Popis: Funkce přičte k datu zadanému parametrem „date“ počet pracovních hodin definovaných parametrem „hours“. Parametr „hours“ může být i záporný (odečtení pracovních hodin) nebo desetinný (přičtení minut). Při výpočtu zohledňuje pracovní dobu určenou parametry „starthour“ a „endhour“ a víkendy a státní svátky evidované v základní aplikaci „Nastavení“; den se státním svátkem jen na část dne považuje celý za nepracovní. Spadá-li zadaný čas mimo pracovní dobu nebo na nepracovní den, posune ho funkce při přičítání hodin na nejbližší následující začátek pracovní doby a při odečítání hodin na nejbližší předchozí konec pracovní doby. Parametr „starthour“ může nabývat hodnot 0 až 23 a parametr „endhour“ hodnot 1 až 24; hodnota mimo rozsah se nahradí hodnotou 0, resp. 24. Není-li „starthour“ menší než „endhour“, vrací funkce zadané datum beze změny. Při hodnotě „0“ vrací funkce zadané datum beze změny. Pro neplatné datum vrací prázdný řetězec.
Příklad:
ADDWORKHOURS(1.1.2000 10:00, 4, 8, 16)
// Vrací „03.01.2000 12:00“
ADDWORKHOURS(1.1.2000 10:00, -2, 8, 16)
// Vrací „31.12.1999 14:00“
ADDWORKHOURS(1.1.2000 10:00, 0, 8, 16)
// Vrací „01.01.2000 10:00“
ADDWORKHOURS(#now#, 8, 8, 16)
DateTime ADDYEARS(DateTime date, int years)
Použití: HTML, JavaScript, Skript
Popis: Funkce přičte k datu zadanému parametrem „date“ počet roků definovaných parametrem „years“. Parametr „years“ může být i záporný (odečtení roků). Zadání desetinného čísla v parametru „years“ způsobí převod na datový typ „int“, nedochází k zaokrouhlování, ale k oříznutí čísel za desetinnou čárkou. Pro neplatné datum vrací prázdný řetězec.
Příklad:
ADDYEARS(1.1.2000, -2.5)
// Vrací „01.01.1998“
ADDYEARS(1.1.2000, 0)
// Vrací „01.01.2000“
ADDYEARS(1.1.2000, 2)
// Vrací „01.01.2002“
ADDYEARS(#today#, 2)
double ARCCOS(double number)
Použití: HTML, Skript (jen v číselném výrazu, např. v hodnotě přiřazované do číselné proměnné)
Popis: Funkce vrací arcus cosinus z hodnoty zadané parametrem „number“. Parametr „number“ musí být v rozsahu od -1 do 1, jinak funkce vrací „NaN“. Výsledek je vyjádřen v radiánech.
Příklad:
ARCCOS(0)
// Vrací „1,5707963267949“
ARCCOS(1)
// Vrací „0“
ARCCOS(-1)
// Vrací „3,14159265358979“
ARCCOS(2)
// Vrací „NaN“
ARCCOS(#A#)
double ARCSIN(double number)
Použití: HTML, Skript (jen v číselném výrazu, např. v hodnotě přiřazované do číselné proměnné)
Popis: Funkce vrací arcus sinus z hodnoty zadané parametrem „number“. Parametr „number“ musí být v rozsahu od -1 do 1, jinak funkce vrací „NaN“. Výsledek je vyjádřen v radiánech.
Příklad:
ARCSIN(0)
// Vrací „0“
ARCSIN(1)
// Vrací „1,5707963267949“
ARCSIN(-1)
// Vrací „-1,5707963267949“
ARCSIN(2)
// Vrací „NaN“
ARCSIN(#A#)
double ARCTAN(double number)
Použití: HTML, Skript (jen v číselném výrazu, např. v hodnotě přiřazované do číselné proměnné)
Popis: Funkce vrací arcus tangens z hodnoty zadané parametrem „number“. Výsledek je vyjádřen v radiánech a nabývá hodnot v rozsahu od -pi/2 do pi/2.
Příklad:
ARCTAN(0)
// Vrací „0“
ARCTAN(-0.5)
// Vrací „-0,463647609000806“
ARCTAN(1)
// Vrací „0,785398163397448“
ARCTAN(3)
// Vrací „1,24904577239825“
ARCTAN(#A#)
string ATTACHMAILSIGNATURE(string body, string signature)
Použití: HTML, JavaScript, Skript
Popis: Funkce vloží do odesílané e-mailové zprávy zadané parametrem „body“ e-mailový podpis definovaný parametrem „signature“. Obsahuje-li zpráva citaci předchozí zprávy vytvořenou funkcí „REPLYBODY“, vloží funkce e-mailový podpis před první takovou citaci; v opačném případě je e-mailový podpis vložen na konec e-mailové zprávy. Citace vytvořené jinými e-mailovými klienty funkce nerozpozná. Je-li zpráva prázdná, vrací funkce jen podpis; je-li prázdný podpis, vrací zprávu bez podpisu.
Příklad:
ATTACHMAILSIGNATURE(abc, Best regards)
ATTACHMAILSIGNATURE(#body#, #signature#)
// Vloží podpis z pole „signature“ do e-mailu z pole „body“
int ATTACHMENT2PDF(int file)
Použití: Skript
Omezení: Funkce není dostupná v cloudové variantě NET Genium Online.
Popis: Funkce zkonvertuje souborovou přílohu zadanou parametrem „file“ do formátu „pdf“. Funkce přijímá ID souborové přílohy ve formátu „doc“, „docx“, „docm“, „xls“, „xlsx“ nebo „xlsm“ a vrací ID nově vytvořené souborové přílohy ve formátu „pdf“. Neexistuje-li soubor nebo má jiný formát, vrací funkce „0“. Příklad:
ATTACHMENT2PDF(#ng_soubor#)
// Vrací ID nově vytvořené souborové přílohy ve formátu „pdf“
ATTACHMENT2PDF(123)
// Zkonvertuje souborovou přílohu s ID 123 do formátu „pdf“
int ATTACHMENT2PDF(string file)
Použití: Skript
Omezení: Funkce není dostupná v cloudové variantě NET Genium Online.
Popis: Funkce zkonvertuje souborovou přílohu zadanou parametrem „file“ do formátu „pdf“. Funkce přijímá úplnou cestu souborové přílohy ve formátu „doc“, „docx“, „docm“, „xls“, „xlsx“ nebo „xlsm“ a vrací ID nově vytvořené souborové přílohy ve formátu „pdf“. Neexistuje-li soubor nebo má jiný formát, vrací funkce „0“. Podle prostředí instance může být cesta souboru omezena na povolené adresáře; pokus o přístup mimo ně pak vyvolá výjimku. Příklad:
ATTACHMENT2PDF(#rootpath#Temp\file.doc)
// Vrací ID nově vytvořené souborové přílohy ve formátu „pdf“
ATTACHMENT2PDF(#rootpath#Temp\file.xls)
// Vrací ID nově vytvořené souborové přílohy ve formátu „pdf“
string ATTACHMENTCONTENT(int file)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací obsah souborové přílohy zadané parametrem „file“ ve formě textového řetězce. Soubor se čte v kódování UTF-8; neexistuje-li, vrací funkce prázdný řetězec.
Příklad:
ATTACHMENTCONTENT(#ng_soubor#)
// Vrací obsah souborové přílohy jako textový řetězec
ATTACHMENTCONTENT(123)
// Vrací obsah souborové přílohy s ID 123 jako textový řetězec
string ATTACHMENTDIMENSIONS(int image)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací rozměry obrázku zadaného parametrem „image“ ve formátu „šířka;výška“. Hodnoty jsou vyjádřeny v pixelech a odděleny středníkem. Není-li souborová příloha obrázkem nebo soubor neexistuje, vrací funkce „0;0“.
Příklad:
ATTACHMENTDIMENSIONS(#ng_obrazek#)
// Vrací např. „1920;1080“
ATTACHMENTDIMENSIONS(123)
// Vrací rozměry obrázku s ID 123 ve formátu „šířka;výška“
string ATTACHMENTGALLERY(string attachments, int maxwidth, int maxheight[, int perrow[, string zoom]])
Použití: HTML
Popis: Funkce zobrazí v seznamu pod sebou zmenšené obrázky nebo odkazy na souborové přílohy. Souborové přílohy jsou zadané parametrem „attachments“ jako seznam ID souborových příloh oddělených středníkem. Parametry „maxwidth“ a „maxheight“ určují maximální šířku a výšku zmenšeného obrázku v pixelech. Obrázky (BMP, GIF, JPE, JPEG, JPG a PNG) se zobrazí zmenšené; mají-li parametry „maxwidth“ i „maxheight“ hodnotu 0, zobrazí se obrázek v původní velikosti s názvem souboru a bez odkazu na otevření. Soubory PDF a TIFF (TIF) se zobrazí jako zmenšené náhledy jednotlivých stran (při hodnotě 0 obou parametrů široké nejvýše 1000 pixelů), ostatní soubory jako odkaz. Nepovinný parametr „perrow“ určuje počet obrázků vedle sebe v jednom řádku galerie; hodnota 0 nebo vynechaný parametr zobrazí obrázky pod sebou. Nepovinný parametr „zoom“ zapne přibližování a posouvání obrázku přímo v náhledu: kolečkem myši nad náhledem se obrázek přibližuje a oddaluje, tažením myší se posouvá a dvojitým kliknutím se náhled vrátí do původní velikosti. Se zapnutým přibližováním se odkaz na otevření obrázku v plné velikosti zobrazuje pod náhledem jako název souboru. Hodnota „zoom“ se zapisuje malými písmeny a u obrázků zobrazených v původní velikosti (parametry „maxwidth“ i „maxheight“ s hodnotou 0) se přibližování neuplatní.
Příklad:
ATTACHMENTGALLERY(#ng_soubor1:value#;#ng_soubor2:value#;#ng_soubor3:value#, 120, 120)
// Zobrazí galerii obrázků nebo odkazů s maximální velikostí 120x120 pixelů
ATTACHMENTGALLERY(#ng_soubor1:value#, 200, 150)
// Zobrazí jeden obrázek nebo odkaz s maximální velikostí 200x150 pixelů
ATTACHMENTGALLERY(#ng_soubor1:value#;#ng_soubor2:value#, 300, 300, 2, zoom)
// Zobrazí dva obrázky vedle sebe s možností přibližování a posouvání kolečkem a tažením myši
string ATTACHMENTIMG(int file)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací HTML kód obrázku pro souborovou přílohu zadanou parametrem „file“. Výsledkem je HTML element „img“ s odkazem na soubor a názvem přílohy jako alternativním textem. Pro nevyplněné nebo neexistující ID souborové přílohy vrací funkce prázdný řetězec.
Příklad:
ATTACHMENTIMG(#ng_soubor:value#)
// Vrací „<img src="Download.aspx?hWiPNy0VInyQJbufLA1pTA==" alt="Název přílohy s obrázkem.png">“
ATTACHMENTIMG(123)
// Vrací HTML kód obrázku pro souborovou přílohu s ID 123
string ATTACHMENTNAME(int file, bool extension)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací název souborové přílohy zadané parametrem „file“. Volitelný parametr „extension“ udává, zda má být název vrácen včetně přípony souboru. Výchozí hodnota parametru „extension“ je „true“, funkce tedy vrací název souboru včetně přípony. Pro nevyplněné nebo neexistující ID souborové přílohy vrací funkce prázdný řetězec.
Příklad:
ATTACHMENTNAME(#ng_soubor#)
// Vrací název souborové přílohy včetně přípony, např. „dokument.pdf“
ATTACHMENTNAME(#ng_soubor#, true)
// Vrací název souborové přílohy včetně přípony, např. „dokument.pdf“
ATTACHMENTNAME(#ng_soubor#, false)
// Vrací název souborové přílohy bez přípony, např. „dokument“
int ATTACHMENTPAGES(int file)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací počet stránek souborové přílohy zadané parametrem „file“. Pro soubory ve formátu „pdf“ je vrácen skutečný počet stránek PDF dokumentu. Pro soubory ve formátu „tif“ nebo „tiff“ je vrácen počet snímků (stránek) TIFF souboru. Pro všechny ostatní existující formáty vrací funkce hodnotu „1“. Pokud soubor na disku neexistuje nebo je parametr „file“ roven „0“, vrací funkce hodnotu „0“. Nelze-li soubor PDF nebo TIFF přečíst, například je-li poškozený, vrací funkce hodnotu „0“.
Příklad:
ATTACHMENTPAGES(#ng_dokument#)
// Pro PDF o 5 stranách vrací „5“
ATTACHMENTPAGES(#ng_sken#)
// Pro vícestránkový TIFF se 3 snímky vrací „3“
ATTACHMENTPAGES(#ng_obrazek#)
// Pro JPG soubor vrací „1“
ATTACHMENTPAGES(0)
// Vrací „0“ (neexistující příloha)
string ATTACHMENTSIGNATURES(int file)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací počet podpisových polí v PDF souboru zadaném parametrem „file“, a to včetně podpisových polí, která podpis neobsahují; platnost podpisů neověřuje. Neobsahuje-li PDF soubor žádné podpisové pole, vrací funkce prázdný řetězec. Pro soubory v jiném formátu než „pdf“ vrací funkce prázdný řetězec. Pokud soubor na disku neexistuje nebo je parametr „file“ roven „0“, vrací funkce hodnotu „0“. Nelze-li soubor PDF přečíst, například je-li poškozený, vrací funkce hodnotu „0“.
Příklad:
ATTACHMENTSIGNATURES(#ng_dokument#)
// Pro PDF se 2 digitálními podpisy vrací „2“
ATTACHMENTSIGNATURES(#ng_dokument#)
// Pro PDF bez podpisových polí vrací „“ (prázdný řetězec), pro neexistující soubor „0“
ATTACHMENTSIGNATURES(#ng_obrazek#)
// Pro JPG soubor vrací „“ (prázdný řetězec)
string ATTACHMENTSIGNATURES(int file, bool verified)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací údaje o digitálních podpisech v PDF souboru zadaném parametrem „file“. Parametr „verified“ určuje, zda se má ověřit platnost podpisů. S hodnotou „true“ vrací funkce výsledek ve tvaru „počet podpisů/počet platných podpisů“ (např. „2/1“); neobsahuje-li PDF soubor žádný podpis, vrací prázdný řetězec. S hodnotou „false“ se funkce chová stejně jako varianta bez parametru „verified“ – vrací počet podpisových polí včetně polí bez podpisu, platnost podpisů neověřuje a pro PDF soubor bez podpisových polí vrací prázdný řetězec. Pro soubory v jiném formátu než „pdf“ vrací funkce prázdný řetězec. Pokud soubor na disku neexistuje nebo je parametr „file“ roven „0“, vrací funkce hodnotu „0“. Nelze-li soubor PDF přečíst, například je-li poškozený, vrací funkce hodnotu „0“.
Příklad:
ATTACHMENTSIGNATURES(#ng_dokument#, true)
// Pro PDF se 2 podpisy, z nichž je platný jeden, vrací „2/1“
ATTACHMENTSIGNATURES(#ng_dokument#, false)
// Vrací počet podpisových polí bez ověření platnosti podpisů
long ATTACHMENTSIZE(int file)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací velikost souborové přílohy zadané parametrem „file“ v bajtech. Pokud soubor na disku neexistuje, vrací funkce hodnotu „-1“.
Příklad:
ATTACHMENTSIZE(#ng_soubor#)
// Vrací velikost souborové přílohy v bajtech, např. „20480“
ATTACHMENTSIZE(123)
// Vrací velikost souborové přílohy s ID 123 v bajtech
ATTACHMENTSIZE(#ng_soubor#)
// Vrací „-1“, pokud soubor na disku neexistuje
string ATTACHMENTURL(int file)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací privátní internetovou adresu souborové přílohy zadané parametrem „file“. Vrácená adresa je funkční pouze pro aktuálně přihlášeného uživatele a její platnost je časově omezena na 24 hodin. Mimo zpracování požadavku na stránku (například ve skriptu naplánované úlohy) se adresa vytvoří jinak a funguje zpravidla jen u veřejné souborové přílohy; odkaz, který má fungovat i jinde, například v e-mailu, vytváří varianta s parametrem „url“. Pro nevyplněné nebo neexistující ID souborové přílohy vrací funkce prázdný řetězec.
Příklad:
ATTACHMENTURL(1)
// Vrací „Download.aspx?hWiPNy0VInyQJbufLA1pTA==“
ATTACHMENTURL(#ng_soubor#)
// Vrací privátní internetovou adresu souborové přílohy z pole „ng_soubor“
string ATTACHMENTURL(int file, string url)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací veřejnou internetovou adresu souborové přílohy zadané parametrem „file“ s neomezenou časovou platností. Parametr „url“ určuje základní adresu serveru, ke které je připojena vygenerovaná cesta k souboru. Funkce zároveň trvale označí samotnou souborovou přílohu jako veřejnou; v NET Geniu toto označení zrušit nelze. V testovacím běhu skriptu funkce adresu vrátí, ale přílohu jako veřejnou neoznačí. Stejně se chová v režimu pouze pro čtení NET Genium Online a v demo režimu; v demo režimu přílohu jako veřejnou označí jen tehdy, uvádí-li konfigurační soubor „Demo.txt“ tabulku „sfiles“ a funkce se nevyhodnocuje ve skriptu, na který se demo režim vztahuje (viz kapitolu 1.6.). Adresa obsahuje název souboru, takže po přejmenování souborové přílohy přestane platit. Je-li v parametru „url“ zadaná adresa stránky (obsahuje „.aspx“), použije se z ní jen adresa adresáře, ve kterém stránka leží; lomítko na konci adresy se doplní automaticky. Adresa adresáře se z adresy stránky odvodí jen při zpracování požadavku na stránku; mimo něj, například v naplánované úloze, je proto nutné zadat přímo adresu adresáře. Pro nevyplněné nebo neexistující ID souborové přílohy vrací funkce prázdný řetězec.
Příklad:
ATTACHMENTURL(1, https://www.netgenium.com)
// Vrací „https://www.netgenium.com/Download.aspx?hWiPNy0VInyQJbufLA1pTA==“
ATTACHMENTURL(#ng_soubor#, https://www.netgenium.com)
// Vrací veřejnou internetovou adresu souborové přílohy z pole „ng_soubor“
string ATTACHMENTVIDEO(int file, int maxwidth, int maxheight)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací HTML kód videa pro souborovou přílohu zadanou parametrem „file“. Parametry „maxwidth“ a „maxheight“ určují maximální šířku a výšku videa v pixelech. Prvním parametrem může být namísto ID souborové přílohy také přímá adresa videa na YouTube (obsahující „youtube“ nebo „youtu.be“ v URL). V takovém případě funkce vytvoří HTML kód pro vložení YouTube videa s danou velikostí. Je-li parametr „maxwidth“ nebo „maxheight“ nulový nebo nečíselný, vrací funkce prázdný řetězec; prázdný řetězec vrací i pro neexistující přílohu a pro první parametr, který není ID přílohy ani adresou YouTube.
Příklad:
ATTACHMENTVIDEO(#ng_soubor:value#, 1000, 500)
// Vrací „<video><source src="Download.aspx?hWiPNy0VInyQJbufLA1pTA=="></video>“
ATTACHMENTVIDEO(#ng_soubor:value#, 640, 360)
// Vrací HTML kód videa s maximální velikostí 640x360 pixelů
ATTACHMENTVIDEO(https://youtu.be/p7DV9FdF_1M, 640, 360)
// Vrací HTML kód pro vložení YouTube videa o velikosti 640x360 pixelů
ATTACHMENTVIDEO(0, 640, 360)
// Vrací prázdný řetězec (neexistující příloha, nulové ID)
double AVERAGE(object[] array)
Použití: Skript
Popis: Funkce vrací průměr hodnot skriptové proměnné zadané parametrem „array“, je-li proměnná polem hodnot. Není-li proměnná polem hodnot, vrací funkce hodnotu proměnné. Textové hodnoty – i u proměnné, která polem hodnot není – funkce bere jako časové údaje ve formátu „HH:mm“ a vrací průměr v minutách. Prázdné prvky pole funkce vynechá a průměr počítá jen z neprázdných prvků. Neobsahuje-li pole žádný neprázdný prvek, vrací funkce „0“. Hodnoty proměnné typu „Date“ funkce počítá jako „0“, takže nad takovou proměnnou vrací „0“. Desetinné číslo vrací funkce s desetinnou tečkou.
Příklad:
AVERAGE(#A#)
// Vrací průměr hodnot pole, např. pro pole [1, 2, 3, 4, 5] vrací „3“
AVERAGE(#A#)
// Vrací hodnotu proměnné, není-li proměnná polem hodnot
string BASE64DECODE(string base64)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací dekódovaný textový řetězec z hodnoty zakódované ve formátu Base64 zadané parametrem „base64“. Výsledek je dekódován jako text v kódování UTF-8. Pokud vstupní řetězec není platný Base64, funkce nevyvolá výjimku, ale vrátí prázdný řetězec.
Příklad:
BASE64DECODE(YWJj)
// Vrací „abc“
BASE64DECODE(SGVsbG8gV29ybGQ=)
// Vrací „Hello World“
BASE64DECODE(#ng_base64#)
// Vrací dekódovaný textový řetězec z pole „ng_base64“
BASE64DECODE(!!!nevalidní_base64!!!)
// Vrací „“ (prázdný řetězec – neplatný Base64 nevyvolá chybu)
string BASE64ENCODE(string value)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací textový řetězec zadaný parametrem „value“ zakódovaný ve formátu Base64.
Příklad:
BASE64ENCODE(abc)
// Vrací „YWJj“
BASE64ENCODE(Hello World)
// Vrací „SGVsbG8gV29ybGQ=“
BASE64ENCODE(#ng_text#)
// Vrací zakódovaný textový řetězec z pole „ng_text“ ve formátu Base64
string BUTTON(string title, string question, string button, string key)
Použití: Nahlížecí tabulka
Popis: Funkce zobrazí uživatelsky definované tlačítko v nahlížecí tabulce (DataGrid). Nadpis tlačítka je definován parametrem „title“. Parametr „question“ určuje otázku, která se po stisknutí tlačítka zobrazí v potvrzovacím dialogu; je-li parametr prázdný, obslužné tlačítko se vyvolá bez potvrzení. Nadpis tlačítka i otázku lze zadat vícejazyčně. Parametr „button“ představuje název skrytého obslužného tlačítka, které se musí nacházet na stejné nahlížecí stránce nebo editačním formuláři jako prvek se zobrazovaným tlačítkem. Po stisknutí zobrazovaného tlačítka a následném potvrzení otázky je programově vyvoláno stisknutí obslužného tlačítka, které spouští skript na straně serveru. Parametr „key“ definuje název pomocného formulářového prvku, který bude při kliknutí na tlačítko automaticky vytvořen, a do jehož hodnoty bude uloženo ID zpracovávaného záznamu. Toto ID je možné následně zjistit ve skriptu obslužného tlačítka pomocí serverové funkce „REQUESTFORM(key)“. Pro zobrazení tlačítka je nutné, aby volání funkce „BUTTON“ bylo uloženo v hodnotě ovládacího prvku „TextBox“ s datovým typem „String“, nastaveného „Jen ke čtení“ a jako „Skryté pole“; v ovládacím prvku „History“ se tlačítko nezobrazí. Hodnota ovládacího prvku přitom musí začínat přesně textem „BUTTON(“ a končit uzavírací závorkou. Kromě nahlížecí tabulky se tlačítko vykreslí i v dalších prvcích, které hodnotu takového ovládacího prvku zobrazují – například v textu událostí prvků „Calendar“, „Planner“ a „TimeTable“, v titulku karty prvku „Kanban“, v uzlu prvku „Tree“, v dalších zobrazovaných sloupcích prvku „ForeignKey“ a ve výběrovém dialogu.
Příklad:
// Výchozí hodnota ovládacího prvku „TextBox“:
BUTTON(Vymazat, Opravdu chcete záznam smazat?, DeleteItem, abc)
// Příkaz „Přiřadit hodnotu“ ve skriptu obslužného tlačítka:
A = „Integer(REQUESTFORM(abc))“
string CAPTCHA()
Použití: HTML v editačním formuláři
Popis: Funkce vloží do HTML kódu editačního formuláře ověřovací kód captcha, který slouží pro odlišení skutečných uživatelů od robotů. Funkce je svázána s funkcí „EVALCAPTCHA“, bez níž by funkce „CAPTCHA“ neměla smysl.
Poznámka: Toto řešení je zastaralé a pro nové implementace se nedoporučuje. Ověřovací kód je krátký text vykreslený do obrázku, který dnešní automatizované nástroje čtou s vysokou úspěšností, a ani jinak ochrana nestojí na pevném základu, takže je jen symbolická a formulář proti robotům prakticky nechrání. Obrázek navíc nemá zvukovou ani jinou alternativu, a je proto nepřístupný pro uživatele se zrakovým postižením. K ochraně veřejných formulářů slouží funkce „GOOGLECAPTCHA“ a „EVALGOOGLECAPTCHA“.
Příklad:
CAPTCHA()
// Vloží do formuláře ověřovací kód captcha
double CEILING(double number)
Použití: HTML, Skript (jen v číselném výrazu, např. v hodnotě přiřazované do číselné proměnné)
Popis: Funkce vrací nejmenší celé číslo, které je větší nebo rovno hodnotě zadané parametrem „number“.
Příklad:
CEILING(-1.23)
// Vrací „-1“
CEILING(1.23)
// Vrací „2“
CEILING(0)
// Vrací „0“
CEILING(#A#)
void CENTER
Použití: Poznámka editačního formuláře nebo název ovládacího prvku HTML (tělo ovládacího prvku musí zůstat prázdné)
Popis: Funkce zahájí blok ovládacích prvků, které se v uživatelském režimu zobrazují vystředěné na šířku editačního formuláře. Zapsána v poznámce editačního formuláře vystředí celý editační formulář.
Příklad:
// V poznámce editačního formuláře se funkce zapisuje se závorkami
CENTER()
// V názvu ovládacího prvku HTML se zapisuje bez závorek, zápis „CENTER()“ se v něm neuplatní
CENTER
void /CENTER
Použití: Název ovládacího prvku HTML – tělo ovládacího prvku musí zůstat prázdné
Popis: Funkce zakončí blok ovládacích prvků, které se v uživatelském režimu zobrazují vystředěné na šířku editačního formuláře.
Příklad:
/CENTER
string CHARS(string text)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací jednotlivé znaky oddělené středníkem z textového řetězce zadaného parametrem „text“. Znaky konce řádku (CR a LF) vypíše funkce jako text „\r“ a „\n“.
Příklad:
CHARS(Administrator)
// Vrací „A;d;m;i;n;i;s;t;r;a;t;o;r“
CHARS(Administrator#crlf#Anonymous)
// Vrací „A;d;m;i;n;i;s;t;r;a;t;o;r;\r;\n;A;n;o;n;y;m;o;u;s“
string CHECKDISKSPACE(string drive, string min)
Použití: Skript
Omezení: Funkce není dostupná v cloudové variantě NET Genium Online.
Popis: Funkce ověří, zda má disk zadaný parametrem „drive“ dostatek volného místa. Požadovaná velikost volného místa se zadává parametrem „min“ jako procento (např. „10%“) určující minimální podíl volného místa z celkové kapacity disku, nebo jako desetinné číslo (např. „10“) určující minimální velikost volného místa v gigabajtech. Pokud je na disku požadované množství volného místa k dispozici, funkce vrací „x“. V opačném případě vrací prázdný řetězec.
Příklad:
CHECKDISKSPACE(C, 10%)
// Vrací „x“, pokud má disk C alespoň 10 % volného místa
CHECKDISKSPACE(C, 10)
// Vrací „x“, pokud má disk C alespoň 10 GB volného místa
CHECKDISKSPACE(D, 20%)
// Vrací „“, pokud má disk D méně než 20 % volného místa
string CHECKMEMORYSPACE(string min)
Použití: Skript
Omezení: Funkce není dostupná v cloudové variantě NET Genium Online.
Popis: Funkce ověří, zda má operační paměť (RAM) dostatek volného místa. Požadovaná velikost volného místa se zadává parametrem „min“ buď jako procento (např. „10%“) určující minimální podíl volného místa z celkové kapacity RAM, nebo jako desetinné číslo (např. „2“) určující minimální velikost volného místa v gigabajtech. Pokud je v RAM požadované množství volného místa k dispozici, funkce vrací „x“. V opačném případě vrací prázdný řetězec.
Příklad:
CHECKMEMORYSPACE(10%)
// Vrací „x“, pokud má RAM alespoň 10 % volného místa
CHECKMEMORYSPACE(2)
// Vrací „x“, pokud má RAM alespoň 2 GB volného místa
void CLEARCACHE()
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce vymaže cache modelu aplikací (mimo jiné aplikačních skupin, aplikací, kategorií, nahlížecích stránek, editačních formulářů, ovládacích prvků, databázových dotazů, skriptů a práv k nim) v procesu webové aplikace, který skript vykonává; je-li v Nastavení NET Genia vyplněno více intranetových adres, zneplatní ji i v ostatních procesech nad touž databází. Jiné cache, například Nastavení NET Genia, funkce nemaže. Při spuštění skriptu programem „RunScript.exe“ (naplánovaná úloha) ani při testovacím spuštění skriptu se funkce neprovede.
Příklad:
CLEARCACHE()
string COLORLEGEND()
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací tučný nadpis legendy – slovo „LEGENDA“ přeložené podle jazykového nastavení aktuálně přihlášeného uživatele – jako blok HTML, stejně jako varianta s parametrem „text“, jen bez textu v závorce.
Příklad:
COLORLEGEND()
string COLORLEGEND(string text)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací tučný nadpis legendy – slovo „LEGENDA“ přeložené podle jazykového nastavení aktuálně přihlášeného uživatele, za kterým následuje text zadaný parametrem „text“ v závorce. Text se nepřekládá a vypíše se v zadané podobě; vícejazyčný text je proto nutné přeložit funkcí TRANSLATE. Je-li parametrem databázový dotaz, vykreslí funkce legendu barev podle výsledku dotazu (viz následující variantu).
Příklad:
COLORLEGEND(Neuhrazené faktury)
// Vrací např. „LEGENDA (Neuhrazené faktury)“
COLORLEGEND(TRANSLATE(Neuhrazené faktury#en:Unpaid invoices))
// Vrací „LEGENDA (Neuhrazené faktury)“ pro češtinu nebo „LEGEND (Unpaid invoices)“ pro angličtinu
string COLORLEGEND(string query)
Použití: HTML, JavaScript, Skript
Popis: Je-li parametrem databázový dotaz (SELECT), vykreslí funkce tučný nadpis „LEGENDA“ přeložený podle jazykového nastavení aktuálně přihlášeného uživatele a pod něj jeden řádek legendy za každý řádek výsledku dotazu. První sloupec výsledku určuje barvu obdélníčku (např. „#FF0000“), hodnoty dalších sloupců se vypíší za obdélníčkem oddělené pomlčkou.
- Textové hodnoty se překládají podle jazyka přihlášeného uživatele, datumové hodnoty se vypisují ve formátu data a času uživatele. U dvou po sobě jdoucích hodnot téhož dne s časem se u druhé vypíše jen čas.
- Hodnoty se zobrazí jako text, značky HTML se v nich nevykreslí.
- Prázdné hodnoty se vynechají.
- Vrací-li dotaz méně než dva sloupce, vykreslí se jen nadpis. Skončí-li dotaz chybou, vypíše se místo nadpisu text chyby.
- Neprojde-li dotaz kontrolou zápisu dotazu popsanou u funkce „SQL“, zpracuje se parametr jako text (viz předchozí variantu) a funkce vrátí nadpis legendy s textem dotazu v závorce.
- Proměnné i vnořená volání serverových funkcí se v dotazu vyhodnotí i tehdy, je-li uzavřen do dvojitých uvozovek.
Příklad:
COLORLEGEND("SELECT ng_barva, ng_nazev FROM ng_stav ORDER BY ng_poradi")
// Vykreslí legendu s jedním řádkem za každý stav – obdélníček v barvě z pole „ng_barva“ a za ním název stavu
string COLORLEGEND(string color, string text)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací obdélníček vyplněný barvou zadanou parametrem „color“ v HEX formátu „#ffffff“ s textovým popiskem zadaným parametrem „text“. Tento text může být vícejazyčný.
Příklad:
COLORLEGEND(#44FF0A, Neuhrazené faktury#en:Unpaid invoices)
// Vrací obdélníček zelené barvy s popiskem „Neuhrazené faktury“ pro češtinu nebo „Unpaid invoices“ pro angličtinu
COLORLEGEND(#FF0000, Urgentní#en:Urgent)
// Vrací obdélníček červené barvy s popiskem „Urgentní“ pro češtinu nebo „Urgent“ pro angličtinu
string COLORLEGEND(int R, int G, int B, string text)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací obdélníček vyplněný barvou zadanou parametry „R“, „G“ a „B“ (RGB) v desítkové soustavě s textovým popiskem zadaným parametrem „text“. Tento text může být vícejazyčný.
Příklad:
COLORLEGEND(255, 100, 100, Neuhrazené faktury#en:Unpaid invoices)
// Vrací obdélníček červené barvy s popiskem „Neuhrazené faktury“ pro češtinu nebo „Unpaid invoices“ pro angličtinu
COLORLEGEND(0, 200, 0, Uhrazené faktury#en:Paid invoices)
// Vrací obdélníček zelené barvy s popiskem „Uhrazené faktury“ pro češtinu nebo „Paid invoices“ pro angličtinu
string COLORLINK(string text, string url)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací barevnou šipku a text zadaný parametrem „text“ s odkazem zadaným parametrem „url“. Text může být vícejazyčný. Pokud je na odkaz kliknuto, cílová webová stránka se otevře ve stávajícím rámu stránky. Je-li parametrem „url“ přesně adresa „default.aspx“, otevře se stránka v celém okně prohlížeče; adresa začínající „apps.aspx?“ se otevře v navigační oblasti. Velikost písmen adresy přitom nerozhoduje.
Příklad:
COLORLINK(abc, ViewPage.aspx?viewpage=878)
// Otevře nahlížecí stránku s ID 878 ve stávajícím rámu stránky
COLORLINK(abc, Form.aspx?form=396)
// Otevře editační formulář s ID 396 ve stávajícím rámu stránky
COLORLINK(#ng_nazev#, ViewPage.aspx?viewpage=878)
// Otevře nahlížecí stránku s ID 878 s textem z pole „ng_nazev“
string COLORLINK(string text, string url, bool center)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací barevnou šipku a text zadaný parametrem „text“ s odkazem zadaným parametrem „url“. Text může být vícejazyčný. Parametr „center“ určuje, zda bude odkaz umístěný v portletech zarovnán na střed. Pokud je na odkaz kliknuto, cílová webová stránka se otevře ve stávajícím rámu stránky. Je-li parametrem „url“ přesně adresa „default.aspx“, otevře se stránka v celém okně prohlížeče; adresa začínající „apps.aspx?“ se otevře v navigační oblasti. Velikost písmen adresy přitom nerozhoduje.
Příklad:
COLORLINK(abc, ViewPage.aspx?viewpage=878, true)
// Otevře nahlížecí stránku s ID 878 ve stávajícím rámu stránky se zarovnáním na střed
COLORLINK(abc, Form.aspx?form=396, true)
// Otevře editační formulář s ID 396 ve stávajícím rámu stránky se zarovnáním na střed
COLORLINK(#ng_nazev#, ViewPage.aspx?viewpage=878, false)
// Otevře nahlížecí stránku s ID 878 s textem z pole „ng_nazev“ bez zarovnání na střed
string COLORLINK2(string text, string url)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací barevnou šipku a text zadaný parametrem „text“ s odkazem zadaným parametrem „url“. Text může být vícejazyčný. Pokud je na odkaz kliknuto, cílová webová stránka se otevře v novém okně.
Příklad:
COLORLINK2(abc, ViewPage.aspx?viewpage=878)
// Otevře nahlížecí stránku s ID 878 v novém okně
COLORLINK2(abc, Form.aspx?form=396)
// Otevře editační formulář s ID 396 v novém okně
COLORLINK2(#ng_nazev#, ViewPage.aspx?viewpage=878)
// Otevře nahlížecí stránku s ID 878 v novém okně s textem z pole „ng_nazev“
string COLORLINK2(string text, string url, bool center)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací barevnou šipku a text zadaný parametrem „text“ s odkazem zadaným parametrem „url“. Text může být vícejazyčný. Parametr „center“ určuje, zda bude odkaz umístěný v portletech zarovnán na střed. Pokud je na odkaz kliknuto, cílová webová stránka se otevře v novém okně.
Příklad:
COLORLINK2(abc, ViewPage.aspx?viewpage=878, true)
// Otevře nahlížecí stránku s ID 878 v novém okně se zarovnáním na střed
COLORLINK2(abc, Form.aspx?form=396, true)
// Otevře editační formulář s ID 396 v novém okně se zarovnáním na střed
COLORLINK2(#ng_nazev#, ViewPage.aspx?viewpage=878, false)
// Otevře nahlížecí stránku s ID 878 v novém okně s textem z pole „ng_nazev“ bez zarovnání na střed
void COLUMN(int columnWidth, int labelWidth, int defaultControlWidth)
Použití: Název ovládacího prvku HTML – tělo ovládacího prvku musí zůstat prázdné
Popis: Funkce zahájí blok ovládacích prvků, které jsou umístěny ve sloupcích a používají reverzní design – ovládací prvky nemají rámeček, mají nastavené barevné pozadí a při focusu zobrazují barevnou lištu pod ovládacím prvkem. Celkovou šířku sloupce definuje parametr „columnWidth“, šířku sloupce s názvem ovládacího prvku definuje parametr „labelWidth“. Při nastavení parametru „labelWidth“ na hodnotu „0“ se sloupec s názvem ovládacího prvku nezobrazuje a ovládací prvky začínají úplně odleva. Výchozí velikost ovládacích prvků definuje parametr „defaultControlWidth“, a má význam u ovládacích prvků CheckBox a Radio, které jsou v reverzním designu umístěny stejně jako ostatní ovládací prvky v barevném boxu. Každé další volání funkce „COLUMN“ před zakončením bloku zahájí nový sloupec napravo od předchozího; párová funkce „/COLUMN“ se proto zapisuje jen jednou, za posledním sloupcem řady, a zakončí celou řadu sloupců. V administrátorském režimu se sloupce nevytvářejí a na malém displeji se zobrazují pod sebou.
Příklad:
COLUMN(500, 100, 150)
// Zahájí blok s celkovou šířkou 500 px, šířkou názvu 100 px a výchozí šířkou ovládacího prvku 150 px
COLUMN(800, 200, 200)
// Zahájí blok s celkovou šířkou 800 px, šířkou názvu 200 px a výchozí šířkou ovládacího prvku 200 px
COLUMN(400, 0, 150)
// Zahájí blok s celkovou šířkou 400 px bez sloupce s názvem ovládacího prvku
void /COLUMN
Použití: Název ovládacího prvku HTML – tělo ovládacího prvku musí zůstat prázdné
Popis: Funkce zakončí řadu sloupců ovládacích prvků s reverzním designem, kterou zahájilo jedno nebo několik volání funkce „COLUMN“. Funkce je párová k funkci „COLUMN“ a uvádí se jednou, za posledním sloupcem řady.
Příklad:
/COLUMN
void COMMIT()
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce potvrdí aktuálně prováděnou transakci serverového skriptu a provede databázové operace následujících příkazů skriptu, které jsou standardně prováděny vždy až po úspěšném provedení celého skriptu: uložit proměnnou zpět do databáze, smazat záznam, nový záznam (ihned po spuštění funkce „COMMIT“ dojde k naplnění obsahu proměnné „#nid#“), uložit hodnotu do databáze a uložit více hodnot do databáze.
Příklad:
COMMIT()
// Potvrdí aktuální transakci a provede všechny čekající databázové operace
string COMPANYID(string company)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací název společnosti zadaný parametrem „company“ bez právní formy na jeho konci, převedený na velká písmena, ve kterém zůstanou jen písmena a číslice – mezery, pomlčky, čárky, tečky a všechny ostatní znaky se odstraní. Rozpoznává právní formy firem z Česka, Slovenska, Německa, Rakouska, Švýcarska, Lichtenštejnska, Lucemburska, Velké Británie, Irska, USA, Kanady, Austrálie, Nového Zélandu, Polska, Francie, Belgie, Nizozemska, Itálie, Španělska, Portugalska, Švédska, Norska, Dánska, Finska, Estonska, Maďarska, Rumunska, Slovinska, Chorvatska a Bulharska (např. „s.r.o.“, „spol. s r.o.“, „a.s.“, „v.o.s.“, „GmbH“, „GmbH & Co. KG“, „Ltd“, „Inc“, „LLC“, „sp. z o.o.“, „SARL“, „B.V.“, „S.p.A.“, „Kft.“).
- Právní forma se odstraní jen tehdy, když stojí na konci názvu a je od zbytku názvu oddělená mezerou nebo čárkou; uprostřed ani na začátku názvu se neodstraňuje, takže „Jan K. Novák s.r.o.“ vrátí „JANKNOVÁK“.
- Na mezerách uvnitř zkratky nezáleží a tečka na jejím konci je nepovinná.
- Zkratka s tečkou se rozpozná bez ohledu na velikost písmen – „s. r. o.“, „S.R.O.“ i „s.r.o“ se rozpoznají stejně. Zkratka bez tečky se rozpozná jen v obvyklém zápisu nebo celá velkými písmeny – „GmbH“ i „GMBH“, ale ne „gmbh“.
- Dvoupísmenné zkratky bez tečky („AG“, „AS“, „AB“, „SA“, „SE“, „KG“ apod.) se nerozpoznávají vůbec, protože bývají i posledním slovem názvu, který právní formu nemá – „Studio AD“ vrátí „STUDIOAD“ a „Beispiel AG“ vrátí „BEISPIELAG“.
- Název, který končí jinak nebo je tvořený jen právní formou, se zpracuje celý.
Příklad:
COMPANYID(NetGenium s.r.o.)
// Vrací „NETGENIUM“
COMPANYID(Novák a synové a.s.)
// Vrací „NOVÁKASYNOVÉ“
COMPANYID(Beispiel GmbH & Co. KG)
// Vrací „BEISPIEL“
COMPANYID(#ng_spolecnost#)
// Vrací upravený název společnosti z pole „ng_spolecnost“
string COMPAREDATE(DateTime value1, string operator, DateTime value2, string yes, string no)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací hodnotu parametru „yes“, je-li splněno porovnání hodnoty parametru „value1“ s hodnotou parametru „value2“ za použití operátoru zadaného parametrem „operator“. V opačném případě vrací hodnotu parametru „no“. Podporované operátory jsou „=“, „<“, „<=“, „>“ a „>=“. Pro jiný operátor vrací funkce prázdný řetězec.
Příklad:
COMPAREDATE(#today#, =, #now#, Ano, Ne)
// Vrací „Ne“
COMPAREDATE(#today#, <, #now#, Ano, Ne)
// Vrací „Ano“
COMPAREDATE(#today#, <=, #now#, Ano, Ne)
// Vrací „Ano“
COMPAREDATE(#today#, >, #now#, Ano, Ne)
// Vrací „Ne“
COMPAREDATE(#today#, >=, #now#, Ano, Ne)
// Vrací „Ne“
string COMPAREDOUBLE(double value1, string operator, double value2, string yes, string no)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací hodnotu parametru „yes“, je-li splněno porovnání hodnoty parametru „value1“ s hodnotou parametru „value2“ za použití operátoru zadaného parametrem „operator“. V opačném případě vrací hodnotu parametru „no“. Podporované operátory jsou „=“, „<“, „<=“, „>“ a „>=“. Pro jiný operátor vrací funkce prázdný řetězec.
Příklad:
COMPAREDOUBLE(1, =, 2, Ano, Ne)
// Vrací „Ne“
COMPAREDOUBLE(1, <, 2, Ano, Ne)
// Vrací „Ano“
COMPAREDOUBLE(1, <=, 2, Ano, Ne)
// Vrací „Ano“
COMPAREDOUBLE(1, >, 2, Ano, Ne)
// Vrací „Ne“
COMPAREDOUBLE(1, >=, 2, Ano, Ne)
// Vrací „Ne“
string CONTACT(int id)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací celé jméno a e-mailovou adresu uživatele zadaného parametrem „id“. Nemá-li uživatel vyplněné celé jméno, vrací funkce jen e-mailovou adresu; nemá-li vyplněnou e-mailovou adresu nebo neexistuje, vrací prázdný řetězec.
Příklad:
CONTACT(1)
// Vrací „"NetGenium s.r.o." <info@netgenium.com>“
CONTACT(#userid#)
// Vrací celé jméno a e-mailovou adresu aktuálně přihlášeného uživatele
string CONTACT(string loginname)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací celé jméno a e-mailovou adresu uživatele zadaného parametrem „loginname“. Je-li hodnota parametru celé číslo různé od nuly, hledá funkce uživatele podle ID, ne podle přihlašovacího jména. Nemá-li uživatel vyplněné celé jméno, vrací funkce jen e-mailovou adresu; nemá-li vyplněnou e-mailovou adresu nebo neexistuje, vrací prázdný řetězec.
Příklad:
CONTACT(NetGenium)
// Vrací „"NetGenium s.r.o." <info@netgenium.com>“
CONTACT(#loginname#)
// Vrací celé jméno a e-mailovou adresu aktuálně přihlášeného uživatele
string CONTACTEMAIL(string contact)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací e-mailovou adresu kontaktu zadaného parametrem „contact“ typu „e-mailová adresa“ podle specifikace RFC2822.
Příklad:
CONTACTEMAIL("NetGenium s.r.o." <info@netgenium.com>)
// Vrací „info@netgenium.com“
CONTACTEMAIL(#ng_kontakt#)
// Vrací e-mailovou adresu kontaktu z pole „ng_kontakt“
string CONTACTNAME(string contact)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací jméno kontaktu zadaného parametrem „contact“ typu „e-mailová adresa“ podle specifikace RFC2822.
Příklad:
CONTACTNAME("NetGenium s.r.o." <info@netgenium.com>)
// Vrací „NetGenium s.r.o.“
CONTACTNAME(#ng_kontakt#)
// Vrací jméno kontaktu z pole „ng_kontakt“
string CONTROL(string name, string html, string help)
Použití: HTML v editačním formuláři
Popis: Funkce generuje HTML kód vlastního ovládacího prvku v editačním formuláři. Výsledkem je prvek vzhledově zarovnaný s ostatními ovládacími prvky formuláře. Parametr „name“ se zobrazuje zarovnán ve sloupci s názvy ovládacích prvků, parametr „html“ obsahuje samotný prvek nebo HTML obsah, parametr „help“ je zarovnán s nápovědami ostatních prvků. Parametry „name“ a „help“ mohou být vícejazyčné; parametr „help“ se zpracuje stejně jako nápověda databázového ovládacího prvku. Všechny tři parametry jsou nepovinné a mohou obsahovat libovolný textový řetězec, HTML kód, proměnné nebo volání funkcí, které se na straně serveru vyhodnotí.
Příklad:
CONTROL(Jméno, <INPUT type=text class=tb>, Zadejte vaše jméno)
// Zobrazí ovládací prvek s názvem „Jméno“, textovým polem a nápovědou „Zadejte vaše jméno“
CONTROL(Poznámka, <TEXTAREA class=tb></TEXTAREA>, Zadejte poznámku)
// Zobrazí ovládací prvek s názvem „Poznámka“, textovou oblastí a nápovědou „Zadejte poznámku“
string CONTROL(string name, string html, int width, string help)
Použití: HTML v editačním formuláři
Popis: Funkce generuje HTML kód vlastního ovládacího prvku v editačním formuláři stejně jako varianta se třemi parametry. Obsah parametru „html“ navíc umístí do bloku o šířce zadané parametrem „width“ v pixelech; obsah, který se do bloku nevejde, se ořízne.
Příklad:
CONTROL(Kód, #ng_kod:value#, 200, Kód přidělený systémem)
// Zobrazí hodnotu pole „ng_kod“ v bloku širokém 200 pixelů
void CONTROLINDETAILS()
Použití: Poznámka databázového ovládacího prvku v editačním formuláři
Popis: Funkce zapsaná v poli „Poznámky“ na záložce „Nápověda“ databázového ovládacího prvku povolí měnit jeho hodnotu přímo v detailech záznamu – v panelu detailů nahlížecí tabulky, v textu karty prvku Kanban a v detailech prvku Tree. Platí jen pro ovládací prvky se zaškrtnutým polem „Povolit hromadné změny“ na záložce „Obecné“ a za stejných podmínek jako změna hodnoty přímo v buňce nahlížecí tabulky; bez této funkce se v detailech zobrazuje jen hodnota. Opačně působí zápis DENYCONTROL(), se kterým se v buňce nahlížecí tabulky zobrazuje jen hodnota bez možnosti změny.
Příklad:
CONTROLINDETAILS()
// Hodnotu ovládacího prvku lze měnit přímo v detailech záznamu
string COPILOTCHAT(string secret)
Použití: HTML editačního formuláře, HTML nahlížecí stránky
Popis: Funkce vloží do stránky konverzační chat postavený na Microsoft Copilot Studiu (komponenta Bot Framework Web Chat). Parametr „secret“ je DirectLine secret (kanálový klíč) agenta vytvořeného v Copilot Studiu. Server na jeho základě při každém vykreslení stránky zahájí novou konverzaci a vrátí HTML a JavaScript, které chat vykreslí přes celou šířku okna od místa, kam je funkce vložená (nejvýše však od spodního okraje lišty nástrojů stránky), až k dolnímu okraji okna; obsah stránky pod tímto místem chat překryje. Komponentu chatu si prohlížeč stahuje z adresy cdn.botframework.com a server i prohlížeč komunikují se službou Direct Line společnosti Microsoft (europe.directline.botframework.com) – oba proto potřebují odchozí přístup na tyto adresy. Funkce nevyžaduje, aby licenční klíč povoloval AI. Barvy chatu se automaticky odvozují od vzhledu stránky, do které je funkce vložená (vzhled portálu, případně vzhled nastavený funkcí „LAYOUT“). Pokud se konverzaci nepodaří zahájit, funkce vrátí lokalizované chybové hlášení.
Příklad:
COPILOTCHAT(3xAbCdEf...)
// Vloží do stránky chat Copilot Studia podle zadaného DirectLine secret
int COPYATTACHMENT(int file)
Použití: Skript
Omezení: Funkce není dostupná v cloudové variantě NET Genium Online.
Popis: Funkce vytvoří kopii souborové přílohy zadané parametrem „file“ a vrací ID nově vytvořené kopie. Neexistuje-li souborová příloha nebo její soubor, vrací funkce „0“.
Příklad:
COPYATTACHMENT(#ng_soubor#)
// Vrací ID nově vytvořené kopie souborové přílohy z pole „ng_soubor“
COPYATTACHMENT(123)
// Vrací ID nově vytvořené kopie souborové přílohy s ID 123
int COPYATTACHMENT(int file, string directory)
Použití: Skript
Omezení: Funkce není dostupná v cloudové variantě NET Genium Online.
Popis: Funkce vytvoří kopii souborové přílohy zadané parametrem „file“ a uloží ji do adresáře zadaného parametrem „directory“. Funkce vrací hodnotu „0“ (nevytváří nový záznam přílohy v databázi, pouze zkopíruje fyzický soubor). Neexistuje-li souborová příloha nebo její soubor, funkce skončí chybou. Podle prostředí instance může být cílový adresář omezen na povolené adresáře; pokus o zápis mimo ně pak vyvolá výjimku. Pokud adresář nezakončuje zpětným lomítkem, je automaticky doplněno. Soubor se v adresáři pojmenuje podle ID souborové přílohy a své přípony (např. „123.pdf“), nikoli podle názvu přílohy; stejnojmenný soubor v adresáři se přepíše.
Příklad:
COPYATTACHMENT(#ng_soubor#, C:\Adresář)
// Zkopíruje fyzický soubor přílohy z pole „ng_soubor“ do adresáře „C:\Adresář“, vrací „0“
COPYATTACHMENT(123, C:\Zálohy)
// Zkopíruje fyzický soubor přílohy s ID 123 do adresáře „C:\Zálohy“, vrací „0“
double COS(double number)
Použití: HTML, Skript (jen v číselném výrazu, např. v hodnotě přiřazované do číselné proměnné)
Popis: Funkce vrací cosinus z hodnoty zadané parametrem „number“. Parametr „number“ je vyjádřen v radiánech. Je-li název zapsán malými písmeny bezprostředně za tečkou, volání se nevyhodnotí a zůstane zachováno pro prohlížeč.
Příklad:
COS(-1.23)
// Vrací „0,334237727124503“
COS(0)
// Vrací „1“
COS(1)
// Vrací „0,540302305868139“
COS(#A#)
int COUNT(object[] array)
Použití: Skript
Popis: Funkce vrací počet hodnot skriptové proměnné zadané parametrem „array“, je-li proměnná polem hodnot, a to včetně prázdných prvků pole. Není-li proměnná polem hodnot, vrací funkce hodnotu „1“.
Příklad:
COUNT(#A#)
// Vrací počet hodnot pole, např. pro pole [1, 2, 3, 4, 5] vrací „5“
COUNT(#A#)
// Vrací „1“, není-li proměnná polem hodnot
string CRC16(string value1 [, string value2])
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací „CRC16“ součet všech hodnot uvedených v parametrech funkce. Při stanovení součtu se hodnoty nejdříve oddělí pomlčkou.
Příklad:
CRC16(a, b, c)
// Vrací „27651“
CRC16(abc)
// Vrací „CRC16“ součet hodnoty „abc“
CRC16(#ng_hodnota1#, #ng_hodnota2#)
// Vrací „CRC16“ součet hodnot z polí „ng_hodnota1“ a „ng_hodnota2“
int CREATEATTACHMENT(string base64)
Použití: Skript
Omezení: Funkce není dostupná v cloudové variantě NET Genium Online.
Popis: Funkce vytvoří souborovou přílohu z obrázku zadaného parametrem „base64“. Funkce přijímá zakódovaný řetězec ve formátu Data URI („data:mime/type;base64,data“) a vrací ID nově vytvořené souborové přílohy. Vstupní řetězec musí začínat prefixem „data:“ a obsahovat oddělovač „;base64,“ – z části MIME type je automaticky odvozena přípona souboru, a to jen u obrázků typu BMP, GIF, JPEG, PNG a TIFF; u jiného typu (například „image/webp“) vznikne soubor „image“ bez přípony. Nezačíná-li vstup prefixem „data:“ nebo neobsahuje-li oddělovač „;base64,“, funkce vrátí „0“; neplatná data za oddělovačem vyvolají výjimku.
Příklad:
CREATEATTACHMENT(#ng_kod#)
// Vrací ID nově vytvořené souborové přílohy z hodnoty pole „ng_kod“ (musí mít tvar data URI)
CREATEATTACHMENT(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAAEsCAYAAAA1u0HIAAAgAElEQVR4nOzd+1tSWRs38PePW7oVJVEUUQwhD5hKkhTlidIOFmlROqRFqWVZmuWkWZZmWWRalmWZlmVDWc4YZY8TM...)
// Vrací ID nově vytvořené souborové přílohy s názvem „image.png“
CREATEATTACHMENT(data:image/jpeg;base64,/9j/4AAQSkZJRgAB...)
// Vrací ID nově vytvořené souborové přílohy s názvem „image.jpg“
CREATEATTACHMENT(nesprávný_formát)
// Vrací „0“ – vstup není platný Data URI
int CREATEATTACHMENT(string code, string type, int width, int height, bool label)
Použití: Skript
Omezení: Funkce není dostupná v cloudové variantě NET Genium Online.
Popis: Funkce vytvoří souborovou přílohu z čárového kódu zadaného parametrem „code“. Typ čárového kódu zadaný parametrem „type“ může nabývat jedné z následujících hodnot:
- „CODABAR“
- „CODE128“
- „CODE128A“
- „CODE128B“
- „CODE128C“
- „CODE39“
- „CODE93“
- „EAN13“
- „EAN8“
- „UPCA“
- „UPCE“
- „ITF14“
- „QRCODE“
Šířka obrázku je definována parametrem „width“, výška parametrem „height“; oba rozměry musí být kladné, jinak funkce vrátí „0“. U typu „QRCODE“ se z parametru „width“ odvodí jen velikost jednoho bodu kódu – v pixelech je to celá část podílu parametru „width“ a čísla 45, a vyjde-li menší než 1 nebo větší než 100, použijí se 3 pixely –, takže výsledný rozměr obrázku závisí na délce obsahu, a parametr „height“ se neuplatní. Na velikosti písmen v parametru „type“ nezáleží; jiný typ než uvedené vrací „0“. Nepovinný parametr „label“ (výchozí hodnota „true“) udává, zda má být ve spodní části obrázku vypsán čárový kód pomocí latinky. Během generování obrázku může dojít k chybě způsobené nesouladem typu čárového kódu s jeho obsahem, zejména z důvodu nepovolených znaků nebo délky čárového kódu. V takovém případě nedojde k přerušení skriptu, ale chyba je vypsána do samotného finálního obrázku červeným písmem na bílém pozadí. Kromě typů „CODE128“, „CODE128B“ a „QRCODE“ se obsah kódu před vygenerováním převede na velká písmena. Zadá-li se u typu „EAN13“ 12 číslic, u typu „EAN8“ 7 číslic, u typu „UPCA“ 11 číslic, u typu „UPCE“ 6 číslic (číselná soustava 0) nebo 11 číslic a u typu „ITF14“ 13 číslic, kontrolní číslice se dopočítá; zadaná chybná kontrolní číslice se u těchto typů nahradí správnou. Funkce vrací ID nově vytvořené souborové přílohy.
Příklad:
CREATEATTACHMENT(abc, CODE128A, 200, 100, false)
// Vrací ID nově vytvořené souborové přílohy s čárovým kódem CODE128A bez popisku
CREATEATTACHMENT(#ng_kod#, QRCODE, 200, 200, false)
// Vrací ID nově vytvořené souborové přílohy s QR kódem z pole „ng_kod“
CREATEATTACHMENT(1234567890128, EAN13, 300, 150, true)
// Vrací ID nově vytvořené souborové přílohy s čárovým kódem EAN13 s popiskem
string CREATEATTACHMENTTEST(string base64)
Použití: Skript
Omezení: Funkce není dostupná v cloudové variantě NET Genium Online.
Popis: Funkce ověří zdrojová data obrázku zadaného parametrem „base64“. Funkce přijímá zakódovaný řetězec ve formátu Data URI („data:mime/type;base64,data“) zadaný parametrem „base64“ a vrací hodnotu „OK“, pokud má řetězec správný tvar a data za oddělovačem „;base64,“ jsou platná. V opačném případě funkce vyvolá výjimku. V testovacím běhu skriptu ani v demo režimu se funkce neprovádí.
Příklad:
CREATEATTACHMENTTEST(#ng_kod#)
// Vrací „OK“, pokud má zakódovaný řetězec z pole „ng_kod“ správný tvar
CREATEATTACHMENTTEST(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAAEsCAYAAAA1u0HIAAAgAElEQVR4nOzd+1tSWRs38PePW7oVJVEUUQwhD5hKkhTlidIOFmlROqRFqWVZmuWkWZZmWWRalmWZlmVDWc4YZY8TM...)
// Vrací „OK“, pokud má zadaný Base64 řetězec správný tvar
string CREATEATTACHMENTTEST(string code, string type, int width, int height, bool label)
Použití: Skript
Omezení: Funkce není dostupná v cloudové variantě NET Genium Online.
Popis: Funkce ověří vstupní parametry čárového kódu zadaného parametrem „code“. Typ čárového kódu zadaný parametrem „type“ může nabývat jedné z následujících hodnot:
- „CODABAR“
- „CODE128“
- „CODE128A“
- „CODE128B“
- „CODE128C“
- „CODE39“
- „CODE93“
- „EAN13“
- „EAN8“
- „UPCA“
- „UPCE“
- „ITF14“
- „QRCODE“
Šířka obrázku je definována parametrem „width“, výška parametrem „height“. Nepovinný parametr „label“ (výchozí hodnota „true“) udává, zda má být ve spodní části obrázku vypsán čárový kód pomocí latinky. Funkce vrací hodnotu „OK“, pokud mají vstupní parametry validní hodnoty. V opačném případě funkce vyvolá výjimku. V testovacím běhu skriptu ani v demo režimu se funkce neprovádí.
Příklad:
CREATEATTACHMENTTEST(abc, CODE128A, 200, 100, false)
// Vrací „OK“, pokud jsou vstupní parametry čárového kódu CODE128A validní
CREATEATTACHMENTTEST(#ng_kod#, QRCODE, 200, 200, false)
// Vrací „OK“, pokud jsou vstupní parametry QR kódu z pole „ng_kod“ validní
CREATEATTACHMENTTEST(1234567890128, EAN13, 300, 150, true)
// Vrací „OK“, pokud jsou vstupní parametry čárového kódu EAN13 validní
int CREATEPDFATTACHMENT(string attachments, string filename)
Použití: Skript
Omezení: Funkce není dostupná v cloudové variantě NET Genium Online.
Popis: Funkce vytvoří PDF soubor spojením více souborových příloh za sebe s názvem souboru zadaným parametrem „filename“. Souborové přílohy jsou zadané parametrem „attachments“ jako seznam ID souborových příloh oddělených středníkem. Funkce přijímá přílohy ve formátech „pdf“, „doc“, „docx“, „docm“, „xls“, „xlsx“, „xlsm“ a obrazové formáty „bmp“, „gif“, „jpe“, „jpeg“, „jpg“, „png“. Přílohy v jiném formátu a přílohy, jejichž soubor na disku neexistuje, se do výsledného souboru nezahrnou a chyba se nehlásí. Funkce vrací ID nově vytvořené souborové přílohy ve formátu „pdf“.
Příklad:
CREATEPDFATTACHMENT(1;2;3, abc.pdf)
// Vrací ID nově vytvořeného PDF souboru spojeného ze souborových příloh s ID 1, 2 a 3
CREATEPDFATTACHMENT(#ng_soubor1:value#;#ng_soubor2:value#, výsledek.pdf)
// Vrací ID nově vytvořeného PDF souboru spojeného z polí „ng_soubor1“ a „ng_soubor2“
int CREATEPDFATTACHMENT(string attachments, string filename, string images)
Použití: Skript
Omezení: Funkce není dostupná v cloudové variantě NET Genium Online.
Popis: Funkce vytvoří PDF soubor spojením více souborových příloh za sebe, s možností vložit obrázky na konkrétní stránky. Parametr „images“ obsahuje seznam skupin šesti hodnot oddělených středníkem ve formátu „imageId;pageIndex;x1%;y1%;x2%;y2%“, kde:
- „imageId“ – ID souborové přílohy s obrázkem; hodnota 0 obrázek nevloží a skupina pouze určí stránku pro digitální podpis
- „pageIndex“ – číslo stránky (0 = první stránka)
- „x1%“, „y1%“ – souřadnice levého horního rohu obrázku v procentech šířky/výšky stránky
- „x2%“, „y2%“ – souřadnice pravého dolního rohu obrázku v procentech šířky/výšky stránky
Každá skupina musí mít právě 6 hodnot; skupiny se opakují pro každý vložený obrázek. Není-li počet hodnot parametru „images“ dělitelný šesti, neuplatní se žádná skupina – nevloží se žádný obrázek a funkce s parametrem „signature“ dokument ani nepodepíše. Souřadnice lze zadat se znakem „%“ i bez něj (např. „70%“ i „70“).
Příklad:
CREATEPDFATTACHMENT(1;2, výsledek.pdf, 5;0;70%;80%;95%;95%)
// Spojí přílohy 1 a 2, na první stránku vloží přílohu 5 do pravého dolního rohu
CREATEPDFATTACHMENT(#ng_soubor:value#, podpisany.pdf, 0;0;0%;85%;30%;98%)
// Nevloží žádný obrázek, skupina jen určí první stránku pro digitální podpis (imageId=0 = bez obrázku)
int CREATEPDFATTACHMENT(string attachments, string filename, string images, string signature)
Použití: Skript
Omezení: Funkce není dostupná v cloudové variantě NET Genium Online.
Popis: Funkce vytvoří PDF soubor spojením více souborových příloh za sebe, s možností vložit obrázky a aplikovat digitální podpis certifikátem. Parametry „attachments“, „filename“ a „images“ jsou totožné s předchozím overloadem. Parametr „signature“ určuje certifikát pro podpis a může mít jeden ze tří formátů:
- „CU:SERIALNUMBER“ – certifikát z úložiště CurrentUser podle sériového čísla (hex)
- „LM:SERIALNUMBER“ – certifikát z úložiště LocalMachine podle sériového čísla (hex)
- „cesta/certifikat.pfx:heslo“ – PFX soubor s heslem; podle prostředí instance může být cesta k souboru omezena na povolené adresáře a pokus o použití souboru mimo ně pak vyvolá výjimku
Digitální podpis se umístí na stránku určenou posledním záznamem parametru „images“, jehož číslo stránky v dokumentu existuje. Podpis zabírá celou plochu stránky s výjimkou okraje 10 bodů; souřadnice ze záznamu se pro něj neuplatní. Neobsahuje-li parametr „images“ žádný takový záznam, funkce nenajde certifikát v úložišti ani soubor PFX nebo je heslo za názvem souboru PFX prázdné, dokument se nepodepíše a chyba se nehlásí. Chybné heslo k souboru PFX ukončí skript chybou.
Příklad:
CREATEPDFATTACHMENT(1;2, podpisany.pdf, 5;0;70%;80%;95%;95%, CU:1A2B3C4D5E6F)
// Spojí přílohy, vloží obrázek a podepíše certifikátem z CurrentUser store
CREATEPDFATTACHMENT(#ng_soubor:value#, podpisany.pdf, 0;0;0%;85%;30%;98%, C:\cert\podpis.pfx:heslo123)
// Podepíše pomocí PFX souboru, podpis se umístí na první stránku
CREATEPDFATTACHMENT(#ng_soubor:value#, podpisany.pdf, 0;0;0%;85%;30%;98%, LM:AABBCC112233)
// Podepíše certifikátem z úložiště LocalMachine
int CREATETEXTATTACHMENT(string text, string filename)
Použití: Skript
Omezení: Funkce není dostupná v cloudové variantě NET Genium Online.
Popis: Funkce vytvoří souborovou přílohu s textovým obsahem zadaným parametrem „text“ a názvem souboru zadaným parametrem „filename“. Text je uložen v kódování UTF-8 bez BOM. Funkce vrací ID nově vytvořené souborové přílohy. Na rozdíl od funkce „CREATETEXTFILE“ nezapisuje soubor na zadanou cestu, ale vytvoří běžnou souborovou přílohu – záznam v evidenci příloh a soubor v adresáři příloh. V testovacím běhu skriptu se funkce neprovádí.
Příklad:
CREATETEXTATTACHMENT(Hello World, hello.txt)
// Vrací ID nově vytvořené přílohy s obsahem „Hello World“ a názvem „hello.txt“
CREATETEXTATTACHMENT(#ng_obsah#, export.csv)
// Vrací ID nově vytvořené přílohy s obsahem z pole „ng_obsah“ a názvem „export.csv“
CREATETEXTATTACHMENT({"key": "value"}, data.json)
// Vrací ID nově vytvořené JSON přílohy
void CREATETEXTFILE(string text, string path)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Omezení: Funkce není dostupná v cloudové variantě NET Genium Online.
Popis: Funkce vytvoří na disku textový soubor zadaný parametrem „path“ a zapíše do něj text definovaný parametrem „text“ v kódování UTF-8 s BOM. Soubor musí mít příponu „txt“ nebo „json“ – jiná přípona způsobí výjimku. Podle prostředí instance může být cesta souboru omezena na povolené adresáře; pokus o zápis mimo ně pak vyvolá výjimku. Existující soubor je přepsán. Cílový adresář musí existovat, jinak funkce skončí chybou.
Příklad:
CREATETEXTFILE(text, C:\Adresář\soubor.txt)
// Vytvoří soubor „soubor.txt“ v adresáři „C:\Adresář“ s obsahem „text“
CREATETEXTFILE(#ng_obsah#, C:\Adresář\soubor.txt)
// Vytvoří soubor „soubor.txt“ v adresáři „C:\Adresář“ s obsahem z pole „ng_obsah“
CREATETEXTFILE({"key": "value"}, #rootpath#Temp\export.json)
// Vytvoří JSON soubor v adresáři Temp aplikace
CREATETEXTFILE(obsah, C:\Adresář\soubor.csv)
// Vyvolá výjimku – přípona „csv“ není povolena (povoleny jsou pouze „txt“ a „json“)
int CREATEZIPATTACHMENT(string attachments, string filename)
Použití: Skript
Omezení: Funkce není dostupná v cloudové variantě NET Genium Online.
Popis: Funkce vytvoří ZIP archiv ze souborových příloh s názvem archivu zadaným parametrem „filename“. Souborové přílohy jsou zadané parametrem „attachments“ jako seznam ID souborových příloh oddělených středníkem. Funkce vrací ID nově vytvořené souborové přílohy ve formátu „zip“. Mají-li dvě přílohy stejný název souboru, dostane další z nich v archivu za názvem pořadové číslo (například „smlouva (2).pdf“); příloha uvedená v seznamu vícekrát se do archivu vloží jen jednou.
Příklad:
CREATEZIPATTACHMENT(1;2;3, abc.zip)
// Vrací ID nově vytvořeného ZIP archivu ze souborových příloh s ID 1, 2 a 3
CREATEZIPATTACHMENT(#ng_soubor1:value#;#ng_soubor2:value#, archiv.zip)
// Vrací ID nově vytvořeného ZIP archivu z polí „ng_soubor1“ a „ng_soubor2“
DateTime DATE(DateTime date)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací datum bez časové složky (bez hodin, minut atd.) z data zadaného parametrem „date“. Pro neplatné datum vrací prázdný řetězec.
Příklad:
DATE(15.2.2013 12:34)
// Vrací „15.02.2013“
DATE(1.1.2000 23:59)
// Vrací „01.01.2000“
DATE(#now#)
// Vrací dnešní datum bez časové složky
long DATE2LONG(DateTime date)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací hodnotu datumu zadaného parametrem „date“ převedenou na číselnou hodnotu typu „long“. Není-li parametr „date“ platné datum, vrací funkce prázdný řetězec.
Příklad:
DATE2LONG(1.1.2000)
// Vrací „630822816000000000“
DATE2LONG(1.1.2000 12:00)
// Vrací „630823248000000000“
DATE2LONG(#now#)
// Vrací aktuální datum a čas převedený na číselnou hodnotu typu „long“
DateTime[] DateArray(DateTime date1; DateTime date2; ...)
Použití: Skript
Popis: Funkce deklaruje skriptovou proměnnou typu pole hodnot „DateTime“ z jednotlivých hodnot zadaných parametrem „date1“, „date2“, atd. Parametry funkce se oddělují pomocí středníku nebo tabulátoru. Volání funkce „DateArray“ musí dodržovat velká a malá písmena v názvu funkce.
Příklad:
DateArray(#now#;#today#)
// Deklaruje pole dvou hodnot „DateTime“ z aktuálního data a času a dnešního datumu
DateArray(1.1.2000;15.6.2010;31.12.2020)
// Deklaruje pole tří hodnot „DateTime“
string DATECONDITION(string ng_date, DateTime date1, DateTime date2)
Použití: HTML, Skript
Popis: Funkce vrací SQL kód podmínky, která je určena na porovnávání, zda sloupec s názvem „ng_date“ (obsahem sloupce je datum) leží mezi daty zadanými parametry „date1“ a „date2“. Není-li parametr „date1“ platné datum, vrací funkce podmínku „0=1“, která nevyhoví žádnému záznamu. Není-li platným datem parametr „date2“, použije se místo něj datum „date1“, a obsahuje-li „date1“ čas, datum „date1“ zvětšené o jednu minutu.
Příklad:
// Použití v podmínce dotazu návrháře skriptu:
[(ID)] [rovná se] [OK#crlf#DATECONDITION(ng_termin, #ng_od#, #ng_do#)]
[(ID)] [rovná se] [OK#crlf#DATECONDITION(ng_termin, #ng_od:history#, #ng_do:history#)]
// Před OK#crlf# nesmí být mezera
DATECONDITION(ng_date, 10.6.2013, 10.6.2013)
// Vrací „(ng_date >= '2013-06-10' AND ng_date < '2013-06-11')“
DATECONDITION(ng_date, 10.6.2013, 10.6.2013 18:30)
// Vrací „(ng_date >= '2013-06-10' AND ng_date < '2013-06-10 18:30')“
DATECONDITION(ng_date, 10.6.2013 15:00, 10.6.2013)
// Vrací „(ng_date = '2013-06-10' OR (ng_date >= '2013-06-10 15:00' AND ng_date < '2013-06-11'))“
DATECONDITION(ng_date, 10.6.2013 15:00, 10.6.2013 18:30)
// Vrací „(ng_date = '2013-06-10' OR (ng_date >= '2013-06-10 15:00' AND ng_date < '2013-06-10 18:30'))“
string DATECONDITION(string ng_from, string ng_to, DateTime date1, DateTime date2)
Použití: HTML, Skript
Popis: Funkce vrací SQL kód podmínky, která porovnává, zda se datumový interval definovaný databázovými sloupci „ng_from“ a „ng_to“ překrývá s intervalem zadaným parametry „date1“ a „date2“. Není-li parametr „date1“ platné datum, vrací funkce podmínku „0=1“, která nevyhoví žádnému záznamu. Není-li platným datem parametr „date2“, použije se místo něj datum „date1“, a obsahuje-li „date1“ čas, datum „date1“ zvětšené o jednu minutu.
Příklad:
DATECONDITION(ng_from, ng_to, 10.6.2013, 10.6.2013)
// Vrací „((ng_from >= '2013-06-10' AND ng_from < '2013-06-11' AND ng_to IS NULL) OR (ng_from < '2013-06-11' AND ng_to >= '2013-06-10'))“
DATECONDITION(ng_from, ng_to, 10.6.2013, 10.6.2013 18:30)
// Vrací „((ng_from >= '2013-06-10' AND ng_from < '2013-06-10 18:30' AND ng_to IS NULL) OR (ng_from < '2013-06-10 18:30' AND ng_to >= '2013-06-10'))“
DATECONDITION(ng_from, ng_to, 10.6.2013 15:00, 10.6.2013)
// Vrací „(((ng_from = '2013-06-10' OR (ng_from >= '2013-06-10 15:00' AND ng_from < '2013-06-11')) AND ng_to IS NULL) OR (ng_from < '2013-06-11' AND (ng_to = '2013-06-10' OR ng_to >= '2013-06-10 15:00')))“
DATECONDITION(ng_from, ng_to, 10.6.2013 15:00, 10.6.2013 18:30)
// Vrací „(((ng_from = '2013-06-10' OR (ng_from >= '2013-06-10 15:00' AND ng_from < '2013-06-10 18:30')) AND ng_to IS NULL) OR (ng_from < '2013-06-10 18:30' AND (ng_to = '2013-06-10' OR ng_to >= '2013-06-10 15:00')))“
string DATECONDITION2(string ng_from, string ng_to, DateTime date1, DateTime date2)
Použití: HTML, Skript
Popis: Funkce vrací SQL kód podmínky, která porovnává, zda se datumový interval definovaný databázovými sloupci „ng_from“ a „ng_to“ překrývá s intervalem zadaným parametry „date1“ a „date2“ včetně intervalu před datem „ng_from“. Typickým využitím je porovnávání platnosti cen – cena je platná od a do určitého data, přičemž „ng_to“ může být NULL, což značí neohraničenou dobu platnosti (cena platí od určitého data až do současnosti). Datum bez času v parametru „date2“ zahrnuje celý den. Není-li parametr „date1“ platné datum, vrací funkce podmínku „0=1“, která nevyhoví žádnému záznamu. Není-li platným datem parametr „date2“, použije se místo něj datum „date1“, a obsahuje-li „date1“ čas, datum „date1“ zvětšené o jednu minutu. Zápis datumových literálů se řídí databázovým serverem.
Příklad:
DATECONDITION2(ng_from, ng_to, 10.6.2013, 10.6.2013)
// Vrací „((ng_from < '2013-06-11' AND ng_to IS NULL) OR (ng_from < '2013-06-11' AND ng_to >= '2013-06-10'))“
DATECONDITION2(ng_from, ng_to, 10.6.2013 15:00, 10.6.2013)
// Vrací „((ng_from < '2013-06-11' AND ng_to IS NULL) OR (ng_from < '2013-06-11' AND (ng_to = '2013-06-10' OR ng_to >= '2013-06-10 15:00')))“
DATECONDITION2(ng_from, ng_to, 10.6.2013, 10.6.2013 18:30)
// Vrací „((ng_from < '2013-06-10 18:30' AND ng_to IS NULL) OR (ng_from < '2013-06-10 18:30' AND ng_to >= '2013-06-10'))“
DATECONDITION2(ng_from, ng_to, 10.6.2013 15:00, 10.6.2013 18:30)
// Vrací „((ng_from < '2013-06-10 18:30' AND ng_to IS NULL) OR (ng_from < '2013-06-10 18:30' AND (ng_to = '2013-06-10' OR ng_to >= '2013-06-10 15:00')))“
int DAYOFWEEK(DateTime date)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací číslo dne v týdnu z data zadaného parametrem „date“ jako celé číslo v rozsahu 1–7, kde 1 představuje pondělí a 7 neděli. Pozor: neděle je vždy 7, nikoli 0 (jak je tomu v systémovém výčtu DayOfWeek v .NET). Není-li parametr „date“ platné datum, vrací funkce prázdný řetězec.
Příklad:
DAYOFWEEK(15.2.2024)
// Vrací „4“ (čtvrtek)
DAYOFWEEK(17.2.2024)
// Vrací „6“ (sobota)
DAYOFWEEK(18.2.2024)
// Vrací „7“ (neděle – vždy 7, nikoli 0)
DAYOFWEEK(#today#)
// Vrací číslo aktuálního dne v týdnu
int DAYOFYEAR(DateTime date)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací číslo dne v roce z data zadaného parametrem „date“ jako celé číslo v rozsahu 1–365, případně 1–366 v přestupném roce. Není-li parametr „date“ platné datum, vrací funkce prázdný řetězec.
Příklad:
DAYOFYEAR(15.2.2024)
// Vrací „46“
DAYOFYEAR(#today#)
// Vrací číslo aktuálního dne v roce
void DELETEDATA(string dbname, string condition)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce nenávratně smaže data z databázové tabulky zadané parametrem „dbname“ za podmínky zadané parametrem „condition“. Tato funkce nepoužívá zápis do historie, nespouští skripty „OnBeforeDelete“ a „OnAfterDelete“ editačního formuláře, smazání se nezařadí do fronty synchronizace (do synchronizovaných instancí se proto nepřenese) a funkce je optimalizována pro hromadné mazání dat, které by jinak selhalo na uplynutí timeoutu, pokud by bylo spuštěno napřímo v databázi například pomocí programu „Microsoft SQL Server Management Studio“.
Parametrem „dbname“ musí být databázová tabulka editačního formuláře, případně ID editačního formuláře – funkce příslušný formulář vyhledává v systémové tabulce „stables“. Na systémové tabulky, které žádnému editačnímu formuláři nepatří – například na logovací tabulky „stables_stats“, „sviewpages_stats“, „squerybuilder_stats“, „sngef_stats“ a „sngscript_stats“ – funkci použít nelze; v takovém případě funkce nesmaže nic a vrátí hlášení „FORM ... NOT FOUND!“. Obsah logovacích tabulek maže program „SqlBackup.exe“ spouštěný s parametrem „/deletelogs“, viz příručka Utility.
Funkce maže okamžitě, mimo transakci skriptu – smazaná data nevrátí ani pozdější chyba skriptu. U uživatelů, uživatelských skupin a skupin oprávnění (tabulky „susers“, „susergroups“ a „srightsgroups“) smaže funkce spolu se záznamy i jejich vazby stejně jako editační formulář, a to v jedné transakci se smazáním záznamů; vazby smaže jen u záznamů, které se skutečně smazaly. U skupin oprávnění funkce vynuluje pole „Skupina oprávnění“ uživatelů, kteří smazanou skupinu měli; toto vynulování se na rozdíl od samotného smazání zapíše do historie změn uživatelů a zařadí do fronty synchronizace. Záznamy chráněné příznakem „system“ (například vestavěné uživatelské skupiny) funkce nesmaže, stejně jako editační formulář; v tabulce vzhledů „slayout“ nesmaže ani aktivní vzhled. Prázdnou podmínku funkce odmítne. Výsledek ohlásí zprávou, kterou po provedení skriptu zobrazí v dialogovém okně, a skript přitom nepřeruší: „OK“ po smazání všech záznamů splňujících podmínku, „NOT DELETED: n“, zůstane-li po mazání n záznamů splňujících podmínku (typicky kvůli cizímu klíči, který smazání blokuje, nebo jde o záznamy s příznakem „system“ či o aktivní vzhled), „Empty condition!“ při prázdné podmínce, „FORM ... NOT FOUND!“ při nenalezeném formuláři a text chyby, selže-li mazání. V testovacím běhu skriptu se funkce neprovádí.
Příklad:
DELETEDATA(ng_form, id < 123)
// Smaže všechny záznamy z tabulky „ng_form“ s ID menším než 123
DELETEDATA(ng_form, date > FORMATDATESQL(#today#))
// Smaže všechny záznamy z tabulky „ng_form“ s datem větším než dnešní datum
void DELETEHISTORY()
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce smaže z databáze historii všech editačních formulářů:
- starší než 6 měsíců,
- starší než X měsíců, pokud je X zadáno v nastavení editačního formuláře.
Funkce maže okamžitě, mimo transakci skriptu – smazanou historii nevrátí ani pozdější chyba skriptu. Po smazání zobrazí po provedení skriptu v dialogovém okně zprávu „OK“. V testovacím běhu skriptu se funkce neprovádí.
Příklad:
DELETEHISTORY()
// Smaže historii všech editačních formulářů dle nastavených pravidel
void DELETEHISTORY(string dbname)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce smaže z databáze historii editačního formuláře zadaného parametrem „dbname“ (identifikátor nebo ID editačního formuláře):
- starší než 6 měsíců,
- starší než X měsíců, pokud je X zadáno v nastavení editačního formuláře.
Funkce maže okamžitě, mimo transakci skriptu – smazanou historii nevrátí ani pozdější chyba skriptu. Po smazání zobrazí po provedení skriptu v dialogovém okně zprávu „OK“; nenajde-li editační formulář, zobrazí místo ní zprávu „FORM ... NOT FOUND!“. V testovacím běhu skriptu se funkce neprovádí.
Příklad:
DELETEHISTORY(susers)
// Smaže historii editačního formuláře „susers“ dle nastavených pravidel
void DELETEHISTORY(string dbname, string condition)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce smaže z databáze historii editačního formuláře zadaného parametrem „dbname“ (identifikátor nebo ID editačního formuláře) za podmínky zadané parametrem „condition“. Podmínka se vyhodnocuje nad tabulkou historie, může tedy používat její sloupce, například „changedid“, „date“ nebo „deleted“; počet měsíců nastavený v editačním formuláři se při ní neuplatní. Tato funkce je optimalizována pro hromadné mazání dat, které by jinak selhalo na uplynutí timeoutu, pokud by bylo spuštěno napřímo v databázi například pomocí programu „Microsoft SQL Server Management Studio“.
Funkce maže okamžitě, mimo transakci skriptu – smazanou historii nevrátí ani pozdější chyba skriptu. Prázdnou podmínku funkce odmítne. Výsledek ohlásí zprávou, kterou po provedení skriptu zobrazí v dialogovém okně, a skript přitom nepřeruší: „OK“ po úspěšném smazání, „Empty condition!“ při prázdné podmínce, „FORM ... NOT FOUND!“ při nenalezeném formuláři a text chyby, selže-li mazání. V testovacím běhu skriptu se funkce neprovádí.
Příklad:
DELETEHISTORY(susers, changedid = #id#)
// Smaže historii editačního formuláře „susers“ pro záznam s aktuálním ID
DELETEHISTORY(susers, changedid < 123)
// Smaže historii editačního formuláře „susers“ pro záznamy s ID menším než 123
void DISABLEAUTOFILL()
Použití: Poznámka editačního formuláře
Popis: Funkce zakáže webovému prohlížeči funkci automatického vyplňování formulářů u ovládacích prvků typu TextBox.
Příklad:
DISABLEAUTOFILL()
// Zakáže automatické vyplňování formulářů ve webovém prohlížeči
void DISABLEFORM()
Použití: Skript (na místě, kde se očekává zadání komentáře) v události „OnAfterOpen“ editačního formuláře
Popis: Funkce zakáže všechny ovládací prvky umístěné v editačním formuláři včetně tlačítek „Uložit“ a „Smazat“. V ostatních skriptech funkce nemá účinek. Použití funkce „DISABLEFORM“ má z pohledu uživatelů totožný efekt jako použití javascriptové funkce „controls_Disable“, je však bezpečnější u ovládacích prvků typu „File“ a „Image“. Tyto ovládací prvky standardně obsahují tlačítka pro upload souborové přílohy z klientské stanice na server – serverová funkce „DISABLEFORM“ tato tlačítka bezpečně odebere, kdežto javascriptová funkce „controls_Disable“ je pouze skryje.
Příklad:
DISABLEFORM()
// Zakáže všechny ovládací prvky v editačním formuláři včetně tlačítek „Uložit“ a „Smazat“
void DISABLEPAGETOOLS()
Použití: Poznámka nahlížecí stránky nebo editačního formuláře
Popis: Funkce zakáže plovoucí ikony na nahlížecí stránce nebo v editačním formuláři, které se zobrazují v pravém horním rohu.
Příklad:
DISABLEPAGETOOLS()
// Zakáže plovoucí ikony v pravém horním rohu stránky nebo formuláře
double DISTANCE(double lat1, double lon1, double lat2, double lon2)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací vzdálenost v kilometrech mezi dvěma zeměpisnými místy zadanými parametry „lat1“, „lon1“, „lat2“ a „lon2“. Parametry „lat1“ a „lat2“ jsou zeměpisné šířky, parametry „lon1“ a „lon2“ zeměpisné délky ve stupních. Vzdálenost se počítá po povrchu koule s rovníkovým poloměrem Země a výsledek se nezaokrouhluje.
Příklad:
DISTANCE(50.0723726721, 14.108998537, 50.0794492033, 14.4476009458)
// Vrací „24,2031494449185“
DISTANCE(#ng_lat1#, #ng_lon1#, #ng_lat2#, #ng_lon2#)
// Vrací vzdálenost v kilometrech mezi souřadnicemi z polí „ng_lat1“, „ng_lon1“, „ng_lat2“ a „ng_lon2“
void DIV(string id)
Použití: Název ovládacího prvku HTML – tělo ovládacího prvku musí zůstat prázdné
Popis: Funkce vygeneruje HTML tag „<div id="{id}">“, resp. zahájení nového divu. ID tagu definuje parametr „id“. Blok musí být vždy zakončen párovou funkcí „/DIV“.
Příklad:
DIV(D1)
// Vygeneruje "<div id="D1">"
void DIV(string id, bool visible)
Použití: Název ovládacího prvku HTML – tělo ovládacího prvku musí zůstat prázdné
Popis: Funkce vygeneruje HTML tag „<div id="{id}">“, resp. zahájení nového divu. ID tagu definuje parametr „id“, jeho viditelnost parametr „visible“. Při hodnotě „true“ (na velikosti písmen nezáleží) se styl nevypisuje; při jakékoli jiné hodnotě, například „false“, „0“ nebo „1“, dostane tag v uživatelském režimu styl „display:none“, v administrátorském režimu zůstává blok viditelný. Blok musí být vždy zakončen párovou funkcí „/DIV“.
Příklad:
DIV(D1, false)
// Vygeneruje v uživatelském režimu "<div id="D1" style="display:none">"
DIV(D1, true)
// Vygeneruje "<div id="D1">"
void /DIV
Použití: Název ovládacího prvku HTML – tělo ovládacího prvku musí zůstat prázdné
Popis: Funkce vygeneruje HTML tag „</div>“, resp. zakončení předchozího divu. Funkce je párová k funkci „DIV“ a musí být vždy uvedena na konci bloku. Funkci lze zapsat i se závorkami, například „/DIV(D1)“ – obsah závorek se nepoužije –, a rozpozná se i tehdy, když tělo ovládacího prvku není prázdné – obsah těla se pak nevypíše.
Příklad:
/DIV
// Vygeneruje "</div>"
double[] DoubleArray(double number1; double number2; ...)
Použití: Skript
Popis: Funkce deklaruje skriptovou proměnnou typu pole hodnot „Double“ z jednotlivých hodnot zadaných parametrem „number1“, „number2“, atd. Parametry funkce se oddělují pomocí středníku nebo tabulátoru. Volání funkce „DoubleArray“ musí dodržovat velká a malá písmena v názvu funkce.
Příklad:
DoubleArray(1.1;2.2;3.3)
// Deklaruje pole tří hodnot „Double“: 1,1, 2,2 a 3,3
string DROPZONE(string html, int width, int height, string accept, string control1 [, string control2...])
Použití: HTML editačního formuláře
Popis: Funkce v editačním formuláři vykreslí oblast (drop zónu) pro přetažení a nahrání souborů. Umožňuje v editačním formuláři vložit více souborů najednou, resp. vybrat a nahrát více souborových příloh současně — uživatel soubory buď přetáhne myší do vyznačené oblasti, nebo je vybere klasickým dialogem pro výběr souborů (lze vybrat i více souborů najednou). Parametr „html“ určuje obsah oblasti, „width“ a „height“ její rozměry v pixelech, „accept“ filtr přijímaných typů souborů a další parametry obsahují databázové názvy ovládacích prvků typu soubor, do kterých se nahrané soubory postupně uloží. Stejný účel (hromadné nahrání více souborů najednou) plní i funkce UPLOADBUTTON, která místo oblasti pro přetažení vykreslí tlačítko pro výběr souborů.
Parametr „accept“ může obsahovat přípony souborů („.jpg,.jpeg,.png“), MIME typy („application/pdf“, „image/*“) nebo „*“ pro libovolný typ souboru. Samotná hodnota „camera“ nabídne na mobilním zařízení pořízení fotografie fotoaparátem (přijímá obrázky); s příponami ji kombinovat nelze. Prázdný parametr „accept“ tlačítko pro výběr souborů nevykreslí – soubory lze pak do oblasti jen přetáhnout. Prázdný parametr „html“ vykreslí oblast bez popisku.
Příklady:
DROPZONE(Přetáhněte soubory sem, 500, 160, application/pdf, ng_priloha1, ng_priloha2)
CONTROL(Nahrát z galerie, DROPZONE(Drop zóna pro přetažení jednoho nebo více souborů, 150, 30, ".jpg,.jpeg,.png", ng_soubor1, ng_obrazek1), )
CONTROL(Vyfotit, DROPZONE(Drop zóna pro přetažení jednoho nebo více souborů, 150, 30, camera, ng_soubor1, ng_obrazek1), )
CONTROL(Vyfotit, DROPZONE(Drop zóna pro přetažení jednoho nebo více souborů, 150, 30, "image/*", ng_soubor1, ng_obrazek1), )
CONTROL(Přetáhnout, DROPZONE(Drop zóna pouze pro přetažení souborů, 150, 100, "", ng_soubor1, ng_obrazek1), )
CONTROL(Vyfotit, DROPZONE(Drop zóna, 150, 30, "*", ng_soubor1, ng_obrazek1), )
CONTROL(Vyfotit, DROPZONE("", 150, 30, "*", ng_soubor1, ng_obrazek1), )
string EMAIL(int id)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací e-mailovou adresu uživatele zadaného parametrem „id“. V JavaScriptu se zápis malými písmeny s prázdným parametrem („email()“) nevyhodnotí a zůstane zachován pro prohlížeč.
Příklad:
EMAIL(1)
// Vrací e-mailovou adresu uživatele s ID 1
EMAIL(#userid#)
// Vrací e-mailovou adresu aktuálně přihlášeného uživatele
string EMAIL(string loginname)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací e-mailovou adresu uživatele zadaného parametrem „loginname“. Je-li hodnota parametru celé číslo různé od nuly, hledá funkce uživatele podle ID, ne podle přihlašovacího jména. V JavaScriptu se zápis malými písmeny s prázdným parametrem („email()“) nevyhodnotí a zůstane zachován pro prohlížeč.
Příklad:
EMAIL(Administrator)
// Vrací e-mailovou adresu uživatele s přihlašovacím jménem „Administrator“
EMAIL(#loginname#)
// Vrací e-mailovou adresu aktuálně přihlášeného uživatele
string EMAILS(int id1 [, int id2])
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací seznam e-mailových adres uživatelů oddělených středníkem, jejichž ID je zadáno v parametrech funkce „id1“, „id2“ atd. Každý parametr může obsahovat i více hodnot oddělených středníkem nebo tabulátorem a ID lze kombinovat s přihlašovacími jmény; každý uživatel je ve výsledku nejvýše jednou. Adresy jsou ve výsledku v pořadí, v jakém je vrátí databáze, ne v pořadí parametrů, a uživatel bez e-mailové adresy v něm může zanechat prázdnou položku.
Příklad:
EMAILS(1, 2, 3)
// Vrací seznam e-mailových adres uživatelů s ID 1, 2 a 3 oddělených středníkem
string EMAILS(string loginname1 [, string loginname2])
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací seznam e-mailových adres uživatelů oddělených středníkem, jejichž přihlašovací jméno je zadáno v parametrech funkce „loginname1“, „loginname2“ atd. Každý parametr může obsahovat i více hodnot oddělených středníkem nebo tabulátorem a přihlašovací jména lze kombinovat s ID; každý uživatel je ve výsledku nejvýše jednou. Adresy jsou ve výsledku v pořadí, v jakém je vrátí databáze, ne v pořadí parametrů, a uživatel bez e-mailové adresy v něm může zanechat prázdnou položku. Hodnota, která je celým číslem různým od nuly, se vyhodnotí jako ID uživatele, ne jako přihlašovací jméno.
Příklad:
EMAILS(loginname1, loginname2, loginname3)
// Vrací seznam e-mailových adres uživatelů s přihlašovacími jmény „loginname1“, „loginname2“ a „loginname3“
string[] EmailArray(string email1; string email2; ...)
Použití: Skript
Popis: Funkce deklaruje skriptovou proměnnou typu pole hodnot „String“ z jednotlivých hodnot zadaných parametrem „email1“, „email2“, atd. Parametry funkce se oddělují středníkem nebo čárkou; prázdné parametry se vynechají a adresa zadaná se jménem kontaktu zůstane v prvku pole i se jménem (jméno obsahující čárku nebo středník musí být v uvozovkách, středník se v něm nahradí čárkou). Volání funkce „EmailArray“ musí dodržovat velká a malá písmena v názvu funkce. Funkce „EmailArray“ se využívá u seznamu e-mailů, protože kontakt uvedený v e-mailové adrese může obsahovat středník.
Příklad:
EmailArray("NetGenium; s.r.o." <info@netgenium.com>;"NetGenium; s.r.o." <info@netgenium.com>)
// Deklaruje pole dvou e-mailových adres obsahujících středník v názvu kontaktu
string EMAILLINK(string dbname, int id)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací HTML odkaz na databázový záznam zadaný parametry „dbname“ a „id“. Parametr „dbname“ určuje identifikátor nebo ID editačního formuláře, parametr „id“ je primární klíč databázového záznamu. Funkce se používá pro vložení odkazu na záznam do textu e-mailu. Adresa odkazu vychází z pole „Internetová adresa“ v Nastavení NET Genia, a není-li vyplněné, z pole „Intranetová adresa“; obsahuje-li pole více adres, vrací funkce jeden odkaz pro každou z nich a oddělí je zalomením řádku (značkou „br“). Adresu lze upravit externí funkcí „NETGenium.Url“. Editační formulář, který neexistuje, funkce neohlásí; je-li zadaný identifikátorem, vrátí odkaz s nulovým ID formuláře.
Příklad:
EMAILLINK(susers, 1)
// Vrací HTML odkaz na záznam s ID 1 v editačním formuláři „susers“
EMAILLINK(susers, #id#)
// Vrací HTML odkaz na aktuální záznam v editačním formuláři „susers“
string EQUALS(string compare1, string compare2, string yes, string no)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací hodnotu parametru „yes“, je-li hodnota parametru „compare1“ rovna hodnotě parametru „compare2“. V opačném případě vrací hodnotu parametru „no“. Hodnoty se porovnávají jako text s rozlišením velkých a malých písmen.
Příklad:
EQUALS(#loginname#, Administrator, 0, -1)
string EVAL(string expression)
Použití: HTML, JavaScript, Skript
Popis: Funkce rekurzivně vyhodnotí serverové funkce obsažené v textovém řetězci zadaném parametrem „expression“ a vrátí výsledný řetězec. Hodí se pro zpracování hodnot polí, která sama obsahují serverové funkce nebo výrazy – bez EVAL by byly tyto výrazy vráceny jako prostý text. Volání funkce musí dodržovat velká písmena v názvu („EVAL“); název zapsaný malými písmeny nebude vyhodnocen. Funkce vyhodnotí i serverové funkce, které do hodnoty pole nebo do dat načtených dotazem zapsal uživatel. Nad hodnotami, které může měnit běžný uživatel, se proto funkce nepoužívá; je určená pro hodnoty spravované administrátory.
Příklad:
EVAL(SQL("SELECT title FROM ng_firma WHERE id = 1"))
// Nejprve vyhodnotí SQL, pak případně i výsledek dotazu jako výraz
EVAL(#ng_vzorec#)
// Vyhodnotí serverové funkce obsažené v hodnotě pole „ng_vzorec“
EVAL(ADDDAYS(#today#, 7))
// Vrací datum za 7 dní od dnešního dne
void EVALATTACHMENTSTATUS(int file, string status, string message)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce zjišťuje, zda souborová příloha zadaná parametrem „file“ (ID přílohy) nabývá stavu definovaného parametrem „status“. Pokud ano, funkce vyvolá přerušení skriptu se zprávou definovanou v parametru „message“. Za parametrem „message“ lze uvést další dvojice stav a zpráva; uplatní se první dvojice, jejímž stavem příloha je. Stav přílohy NET Genium samo nenastavuje – zapisuje ho jen vlastní integrace, například externí funkce nebo služba napojená na antivirový systém, do sloupce „status“ systémové tabulky příloh „sfiles“. Příloha, které stav nikdo nezapsal, má prázdný stav, takže se na ni uplatní jen dvojice s prázdným stavem. Je-li parametr „file“ prázdný nebo „0“ (pole přílohy není vyplněné), funkce nic neověřuje a skript nepřeruší ani dvojicí s prázdným stavem. Typické využití je při kontrole přílohy antivirovým systémem; stavy „0“ a „1“ v příkladu jsou hodnoty, které zapisuje taková integrace. V testovacím běhu skriptu se funkce neprovádí.
Příklad:
EVALATTACHMENTSTATUS(#ng_priloha#, 0, Právě probíhá antivirová kontrola přiložených dokumentů. Odešlete prosím formulář znovu za několik málo vteřin)
EVALATTACHMENTSTATUS(#ng_priloha#, 1, V přiloženém dokumentu XYZ byla nalezena virová infekce. Tuto přílohu
odstraňte nebo použijte jinou)
void EVALCAPTCHA(string captcha, string message)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce testuje, zdali text zadaný parametrem „captcha“ odpovídá zobrazenému ověřovacímu kódu captcha, který byl v editačním formuláři zobrazen pomocí funkce „CAPTCHA“. Pokud se texty neshodují, funkce vyvolá přerušení skriptu s chybovou zprávu zadanou parametrem „message“. Funkce je svázána s funkcí „CAPTCHA“, bez níž by funkce „EVALCAPTCHA“ neměla smysl.
Poznámka: Toto řešení je zastaralé a pro nové implementace se nedoporučuje — společně s funkcí „CAPTCHA“, u které je důvod popsán podrobněji. K ochraně veřejných formulářů slouží funkce „GOOGLECAPTCHA“ a „EVALGOOGLECAPTCHA“.
Příklad:
EVALCAPTCHA(#ng_overovacikod#, Opište prosím ověřovací kód z obrázku.)
void EVALGOOGLECAPTCHA(string secretKey, string message, [string proxy])
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce testuje, zda je zaškrtnutý ovládací prvek, který byl zobrazen v editačním formuláři pomocí funkce „GOOGLECAPTCHA“ nebo „GOOGLECAPTCHAINVISIBLE“. Jako první parametr se uvádí unikátní klíč „secretKey“, který lze získat společně s klíčem „siteKey“ při registraci prvku Google reCAPTCHA u společnosti Google. Pokud ovládací prvek není zaškrtnut, funkce vyvolá přerušení skriptu s chybovou zprávou zadanou parametrem „message“. Je-li parametr „message“ prázdný, neúspěšné ověření se jen zapíše do logu a skript pokračuje; v administrátorském režimu skript přeruší kódy chyb, které vrátí ověřovací endpoint. Volitelný parametr „proxy“ je adresa proxy serveru, přes který se odešle ověřovací požadavek — uvádí se u serverů, které na internet přistupují přes proxy. Funkce je svázána s funkcí „GOOGLECAPTCHA“, bez níž by funkce „EVALGOOGLECAPTCHA“ neměla smysl.
Poznámka: Ověření probíhá přes původní (legacy) ověřovací endpoint společnosti Google a vyhodnocuje se pouze to, zda kontrola prošla, nebo neprošla. Funkce nepracuje se skóre, které vracejí klíče typu score — podporuje pouze klíče typu Challenge (v2) a Invisible (v2), tedy klíče vkládané do formuláře funkcemi „GOOGLECAPTCHA“ a „GOOGLECAPTCHAINVISIBLE“.
Poznámka: Každý neúspěšný pokus se zapisuje do logu „Warnings“ v adresáři „Logs“ dané instance NET Genia — včetně důvodu, tedy chybějící odpovědi od služby, nebo chyby vrácené ověřovacím endpointem. V testovacím režimu návrháře skriptů se ověření neprovádí. Postup implementace je uveden v samostatné příručce Implementace Google reCAPTCHA.
Příklad:
EVALGOOGLECAPTCHA(d5f545g5ccd5f2c5df1, Zaškrtněte prosím pole CAPTCHA.)
double EXP(double number)
Použití: HTML, Skript (jen v číselném výrazu, např. v hodnotě přiřazované do číselné proměnné)
Popis: Funkce vrací hodnotu Eulerova čísla umocněnou na hodnotu zadanou parametrem „number“. Je-li název zapsán malými písmeny bezprostředně za tečkou, volání se nevyhodnotí a zůstane zachováno pro prohlížeč.
Příklad:
EXP(1.23)
// Vrací „3,42122953628967“
EXP(#A#)
string EXPORTIMAGES(string html)
Použití: HTML, JavaScript, Skript
Popis: Funkce vyexportuje inline obrázky z HTML kódu zadaného parametrem „html“, a nahradí všechny adresy souborových příloh ve tvaru „Download.aspx?abc“ (včetně odkazů na jiné soubory než obrázky) za data souborů zakódovaná pomocí „base64“.
Příklad:
A = String
A = EXPORTIMAGES(#ng_html#)
string EXPORTIMAGES(string html, int maxWidth, int maxHeight)
Použití: Skript
Popis: Funkce nahradí v HTML kódu zadaném parametrem „html“ adresy souborových příloh za data souborů zakódovaná pomocí „base64“, a to jen u obrázků vložených značkou „img“, jejichž atribut „src“ začíná adresou souborové přílohy ve tvaru „Download.aspx?abc“; odkazy na jiné soubory než obrázky ponechá beze změny. Obrázek, který má vyplněné oba atributy „width“ a „height“ a jehož rozměry přesahují hodnotu parametru „maxWidth“ nebo „maxHeight“, proporcionálně zmenší, a to i tehdy, když nejde o souborovou přílohu; obrázku souborové přílohy bez obou atributů je doplní se zmenšenými rozměry, přesahuje-li jeho skutečná velikost některý z limitů. Alespoň jeden z parametrů „maxWidth“ a „maxHeight“ musí být kladné číslo; jinak se funkce vyhodnotí jako varianta s parametry „dir“ a „url“. V testovacím běhu skriptu ani v demo režimu se funkce neprovádí.
Příklad:
A = String
A = EXPORTIMAGES(#ng_html#, 20, 15)
string EXPORTIMAGES(string html, string dir, string url)
Použití: Skript
Omezení: Funkce není dostupná v cloudové variantě NET Genium Online.
Popis: Funkce vyexportuje inline obrázky z HTML kódu zadaného parametrem „html“ do adresáře na disku zadaného parametrem „dir“ (neexistující adresář vytvoří) a vrací HTML kód, ve kterém jsou odkazy na obrázky nahrazeny adresami pod URL zadanou parametrem „url“. Adresy souborových příloh mimo atribut „src“ (například odkazy na jiné soubory než obrázky) vloží funkce do výsledku jako data zakódovaná pomocí „base64“ a do adresáře je neukládá. Obrázky budou pojmenovány podle pořadí, jak jsou postupně použity v HTML kódu. První obrázek se bude jmenovat např. „img01.jpg“, druhý „img02.jpg“ atd. Příponu souboru funkce odvodí jen u obrázků typu BMP, GIF, JPEG, PNG a TIFF; obrázek jiného typu se uloží bez přípony. Parametr „url“ představuje veřejně dostupnou URL, ze které bude možné tyto obrázky stáhnout. Podle prostředí instance může být adresář omezen na povolené adresáře; pokus o zápis mimo ně pak vyvolá výjimku. V testovacím běhu skriptu ani v demo režimu se funkce neprovádí.
Příklad:
A = String(#guid#)
B = String
B = EXPORTIMAGES(#ng_html#, #rootpath#Temp\#A#, https://www.netgenium.com/temp/#A#)
int EXPORTDATATOXMLATTACHMENT(string filename, string query1 [, string query2, ...])
Použití: Skript
Omezení: Funkce není dostupná v cloudové variantě NET Genium Online.
Popis: Funkce spustí jeden nebo více SQL SELECT dotazů a uloží výsledky jako XML souborovou přílohu s názvem zadaným parametrem „filename“. XML soubor je uložen jako DataSet s kořenovým elementem „NG“ a schématem (WriteSchema). Každý dotaz vytvoří samostatnou tabulku v DataSetu. Funkce vrací ID nově vytvořené souborové přílohy.
Příklad:
EXPORTDATATOXMLATTACHMENT(export.xml, "SELECT * FROM ng_zakaznik")
// Vrací ID XML přílohy s výsledky dotazu
EXPORTDATATOXMLATTACHMENT(export.xml, "SELECT * FROM ng_zakaznik", "SELECT * FROM ng_kontakt WHERE pid = #id#")
// Vrací ID XML přílohy se dvěma tabulkami
int EXPORTFORMDATATOXMLATTACHMENT(string filename [, string query1, string query2, ...])
Použití: Skript
Omezení: Funkce není dostupná v cloudové variantě NET Genium Online.
Popis: Funkce uloží aktuální data otevřeného editačního formuláře jako XML souborovou přílohu s názvem zadaným parametrem „filename“. Volitelně lze přidat další SQL SELECT dotazy jako další tabulky v DataSetu. Funkce vrací ID nově vytvořené souborové přílohy.
Příklad:
EXPORTFORMDATATOXMLATTACHMENT(data.xml)
// Vrací ID XML přílohy s daty aktuálního formuláře
EXPORTFORMDATATOXMLATTACHMENT(data.xml, "SELECT * FROM ng_polozka WHERE pid = #id#")
// Vrací ID XML přílohy s daty formuláře a výsledkem dotazu
void EXPORTDATATOXMLFILE(string path, string query1 [, string query2, ...])
Použití: Skript (na místě, kde se očekává zadání komentáře)
Omezení: Funkce není dostupná v cloudové variantě NET Genium Online.
Popis: Funkce spustí jeden nebo více SQL SELECT dotazů a uloží výsledky do XML souboru na disku se cestou zadanou parametrem „path“. Soubor musí mít příponu „xml“, jinak funkce vyvolá výjimku. Podle prostředí instance může být cesta omezena na povolené adresáře; pokus o zápis mimo ně pak vyvolá výjimku.
Příklad:
EXPORTDATATOXMLFILE(#rootpath#Temp\export.xml, "SELECT * FROM ng_zakaznik")
// Uloží výsledek dotazu do souboru export.xml
EXPORTDATATOXMLFILE(#rootpath#Temp\export.xml, "SELECT * FROM ng_zakaznik", "SELECT * FROM ng_kontakt")
// Uloží výsledky dvou dotazů jako dvě tabulky v XML
EXPORTDATATOXMLFILE(#rootpath#Temp\export.csv, "SELECT * FROM ng_zakaznik")
// Vyvolá výjimku – povolena je pouze přípona .xml
void EXPORTFORMDATATOXMLFILE(string path [, string query1, string query2, ...])
Použití: Skript (na místě, kde se očekává zadání komentáře)
Omezení: Funkce není dostupná v cloudové variantě NET Genium Online.
Popis: Funkce uloží aktuální data otevřeného editačního formuláře jako XML soubor na disku se cestou zadanou parametrem „path“. Volitelně lze přidat další SQL SELECT dotazy jako další tabulky. Soubor musí mít příponu „xml“. Podle prostředí instance může být cesta omezena na povolené adresáře; pokus o zápis mimo ně pak vyvolá výjimku.
Příklad:
EXPORTFORMDATATOXMLFILE(#rootpath#Temp\data.xml)
// Uloží data aktuálního formuláře do souboru data.xml
EXPORTFORMDATATOXMLFILE(#rootpath#Temp\data.xml, "SELECT * FROM ng_polozka WHERE pid = #id#")
// Uloží data formuláře a výsledek dotazu jako dvě tabulky v XML
Chování společné pro funkce EXPORTDATATOXMLATTACHMENT, EXPORTFORMDATATOXMLATTACHMENT, EXPORTDATATOXMLFILE a EXPORTFORMDATATOXMLFILE:
- Parametr s dotazem, který neprojde kontrolou zápisu dotazu popsanou u funkce „SQL“, funkce vynechá. Skončí-li dotaz chybou, funkce ho vynechá také a chyba se zapíše jen do logu; výsledný soubor pak příslušnou tabulku neobsahuje.
- Funkce EXPORTDATATOXMLFILE a EXPORTFORMDATATOXMLFILE vyžadují v parametru „path“ cestu obsahující zpětné lomítko, jinak vyvolají výjimku. Neexistující adresář vytvoří a existující soubor přepíšou.
object FIRST(object[] array)
Použití: Skript
Popis: Funkce vrací první hodnotu skriptové proměnné zadané parametrem „array“, je-li proměnná polem hodnot. Není-li proměnná polem hodnot, pak funkce vrací hodnotu proměnné. Neobsahuje-li pole hodnot žádný prvek, vrací funkce prázdný řetězec.
Příklad:
FIRST(#A#)
DateTime FIRSTDAYINMONTH(DateTime date)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací datum prvního dne v měsíci z data zadaného parametrem „date“. Pro neplatné datum vrací prázdný řetězec.
Příklad:
FIRSTDAYINMONTH(15.2.2013)
// Vrací „01.02.2013“
FIRSTDAYINMONTH(#today#)
DateTime FIRSTDAYINQUARTAL(DateTime date)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací datum prvního dne ve čtvrtletí (kvartálu) z data zadaného parametrem „date“. Pro neplatné datum vrací prázdný řetězec. Funkce je dostupná také pod alternativním názvem „FIRSTDAYINQUARTER“ (anglický zápis).
Příklad:
FIRSTDAYINQUARTAL(15.2.2013)
// Vrací „01.01.2013“
FIRSTDAYINQUARTER(15.5.2013)
// Vrací „01.04.2013“ (alternativní název)
FIRSTDAYINQUARTAL(#today#)
DateTime FIRSTDAYINWEEK(DateTime date)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací datum prvního dne v týdnu (pondělí bez ohledu na jazyk uživatele) z data zadaného parametrem „date“. Pro neplatné datum vrací prázdný řetězec.
Příklad:
FIRSTDAYINWEEK(15.2.2013)
// Vrací „11.02.2013“
FIRSTDAYINWEEK(#today#)
DateTime FIRSTDAYINYEAR(DateTime date)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací datum prvního dne v roce z data zadaného parametrem „date“. Pro neplatné datum vrací prázdný řetězec.
Příklad:
FIRSTDAYINYEAR(15.2.2013)
// Vrací „01.01.2013“
FIRSTDAYINYEAR(#today#)
double FLOOR(double number)
Použití: HTML, Skript (jen v číselném výrazu, např. v hodnotě přiřazované do číselné proměnné)
Popis: Funkce vrací nejvyšší celé číslo, které je menší nebo rovno hodnotě zadané parametrem „number“. Je-li název zapsán malými písmeny bezprostředně za tečkou, volání se nevyhodnotí a zůstane zachováno pro prohlížeč.
Příklad:
FLOOR(-1.23)
// Vrací „-2“
FLOOR(1.23)
// Vrací „1“
void FLUSHFILE(string path)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Omezení: Funkce není dostupná v cloudové variantě NET Genium Online.
Popis: Funkce odešle soubor na disku zadaný parametrem „path“ prohlížeči jako stažení (download). Název souboru je automaticky odvozen z cesty. Podle prostředí instance může být cesta omezena na povolené adresáře; pokus o přístup mimo ně pak vyvolá výjimku. Neexistující soubor vyvolá výjimku. Mimo zpracování požadavku na stránku se funkce neprovede.
Příklad:
FLUSHFILE(#rootpath#Temp\report.pdf)
// Zahájí stažení souboru report.pdf v prohlížeči uživatele
void FLUSHFILE(string path, string filename)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Omezení: Funkce není dostupná v cloudové variantě NET Genium Online.
Popis: Funkce odešle soubor na disku zadaný parametrem „path“ prohlížeči jako stažení (download) s vlastním názvem souboru zadaným parametrem „filename“. Podle prostředí instance může být cesta omezena na povolené adresáře; pokus o přístup mimo ně pak vyvolá výjimku. Neexistující soubor vyvolá výjimku. Mimo zpracování požadavku na stránku se funkce neprovede.
Příklad:
FLUSHFILE(#rootpath#Temp\abc123.tmp, Výsledek exportu.pdf)
// Zahájí stažení souboru s názvem „Výsledek exportu.pdf“
FLUSHFILE(#rootpath#Temp\#ng_guid#.xml, export_#today#.xml)
// Stáhne dočasný soubor s dynamickým názvem
string FORMATCURRENCY(double number)
Použití: HTML, JavaScript, Skript
Popis: Funkce formátuje číslo zadané parametrem „number“ do textové podoby – s oddělovačem tisíců a desetinným oddělovačem podle jazyka aktuálně přihlášeného uživatele (v češtině mezera a desetinná čárka, v angličtině čárka a desetinná tečka) a zaokrouhlené na dvě desetinná místa.
Příklad:
FORMATCURRENCY(1100)
// Vrací „1 100,00“
FORMATCURRENCY(1100.5)
// Vrací „1 100,50“
FORMATCURRENCY(1100.5412)
// Vrací „1 100,54“
string FORMATCURRENCY(double number, string symbol)
Použití: HTML, JavaScript, Skript
Popis: Funkce formátuje číslo zadané parametrem „number“ do textové podoby – s oddělovačem tisíců a desetinným oddělovačem podle jazyka aktuálně přihlášeného uživatele (v češtině mezera a desetinná čárka, v angličtině čárka a desetinná tečka), zaokrouhlené na dvě desetinná místa, a se symbolem zadaným parametrem „symbol“. Umístění symbolu se rovněž řídí jazykem uživatele – v češtině je symbol za číslem, v angličtině před číslem.
Příklad:
FORMATCURRENCY(1100, Kč)
// Vrací „1 100,00 Kč“
FORMATCURRENCY(1100.5, Kč)
// Vrací „1 100,50 Kč“
FORMATCURRENCY(1100.5412, Kč)
// Vrací „1 100,54 Kč“
Začíná-li parametr „symbol“ formátem desetinného čísla ve složených závorkách (například „{0.00}Kč“), funkce ho ignoruje a použije jen text za závorkou.
string FORMATDATATABLE(string query)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací výsledek dotazu zadaného parametrem „query“ formátovaný do tabulky. Skončí-li dotaz chybou, vrací funkce text chyby.
Příklad:
FORMATDATATABLE("SELECT * FROM susers ORDER BY id")
FORMATDATATABLE("SELECT * FROM susers WHERE loginname = FORMATSTRINGSQL(#loginname#) ORDER BY id")
string FORMATDATATABLE(string query, string title)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací výsledek dotazu zadaného parametrem „query“ formátovaný do tabulky, a s titulkem zadaným parametrem „title“. Má-li titulek tvar „|titulek|text“, zobrazí se v uživatelském režimu titulek bez svislítek a při prázdném výsledku dotazu vrátí funkce místo tabulky text za druhým svislítkem (při tvaru „|titulek|“ prázdný řetězec). Skončí-li dotaz chybou, vrací funkce text chyby.
Příklad:
FORMATDATATABLE("SELECT * FROM susers ORDER BY id", Uživatelé)
FORMATDATATABLE("SELECT * FROM susers WHERE loginname = FORMATSTRINGSQL(#loginname#) ORDER BY id", Aktuální uživatel)
string FORMATDATATABLE(string query, string title, string width)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací výsledek dotazu zadaného parametrem „query“ formátovaný do tabulky s titulkem zadaným parametrem „title“ stejně jako varianta se dvěma parametry. Parametr „width“ určuje šířku tabulky v pixelech (např. „600“) nebo v procentech (např. „100%“).
Příklad:
FORMATDATATABLE("SELECT * FROM susers ORDER BY id", Uživatelé, 100%)
string FORMATDATAVIEW(string query)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací výsledek dotazu zadaného parametrem „query“ formátovaný do tabulky. Skončí-li dotaz chybou, vrací funkce text chyby.
Příklad:
FORMATDATAVIEW("SELECT * FROM susers ORDER BY id")
FORMATDATAVIEW("SELECT * FROM susers WHERE loginname = FORMATSTRINGSQL(#loginname#) ORDER BY id")
string FORMATDATAVIEW(string query, string title)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací výsledek dotazu zadaného parametrem „query“ formátovaný do tabulky, a s titulkem zadaným parametrem „title“. Má-li titulek tvar „|titulek|text“, zobrazí se v uživatelském režimu titulek bez svislítek a při prázdném výsledku dotazu vrátí funkce místo tabulky text za druhým svislítkem (při tvaru „|titulek|“ prázdný řetězec). Skončí-li dotaz chybou, vrací funkce text chyby.
Příklad:
FORMATDATAVIEW("SELECT * FROM susers ORDER BY id", Uživatelé)
FORMATDATAVIEW("SELECT * FROM susers WHERE loginname = FORMATSTRINGSQL(#loginname#) ORDER BY id", Aktuální uživatel)
string FORMATDATAVIEW(string query, string title, string width)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací výsledek dotazu zadaného parametrem „query“ formátovaný do tabulky s titulkem zadaným parametrem „title“ stejně jako varianta se dvěma parametry. Parametr „width“ určuje šířku tabulky v pixelech (např. „600“) nebo v procentech (např. „100%“).
Příklad:
FORMATDATAVIEW("SELECT * FROM susers ORDER BY id", Uživatelé, 100%)
string FORMATDATE(DateTime date)
Použití: HTML, JavaScript, Skript
Popis: Funkce formátuje datum zadané parametrem „date“ do textové podoby na základě výchozí šablony „D“ a jazykového nastavení aktuálně přihlášeného uživatele. Pro neplatné datum vrací prázdný řetězec.
Příklad:
FORMATDATE(#today#)
// Vrací například „úterý 2. dubna 2019“
string FORMATDATE(DateTime date, string template)
Použití: HTML, JavaScript, Skript
Popis: Funkce formátuje datum zadané parametrem „date“ do textové podoby na základě šablony definované parametrem „template“ a jazykového nastavení aktuálně přihlášeného uživatele. Pro angličtinu se používá americká angličtina (en-US): dlouhé datum začíná názvem dne a název měsíce předchází dni („Tuesday, February 29, 2000“); čas se i v angličtině zobrazuje vždy ve 24hodinovém formátu. Pořadí dne a měsíce v krátkém datu se nebere z jazyka, ale z formátu data instance (dd/mm/yyyy nebo mm/dd/yyyy) v Nastavení NET Genia; oddělovač dne, měsíce a roku určuje jazyk uživatele. Pro neplatné datum vrací prázdný řetězec. Mezi šablony patří (příklady pro českého uživatele):
- „d“: 29.02.2000
- „D“: úterý 29. února 2000
- „f“: úterý 29. února 2000 12:34
- „F“: úterý 29. února 2000 12:34:00
- „g“: 29.02.2000 12:34
- „G“: 29.02.2000 12:34:00
- „r“: Tue, 29 Feb 2000 12:34:00 GMT
- „s“: 2000-02-29T12:34:00
- „t“: 12:34
- „T“: 12:34:00
- „y“: únor 2000
- „dddd, MMMM dd yyyy“: úterý, února 29 2000
- „dd-MM-yy“: 29-02-00
- „w“: 9
- „ww“: 09
- „www“: 2000 / 09
Příklad:
FORMATDATE(#today#, dd.MM.yyyy)
FORMATDATE(#today#, s)
string FORMATDATES(string value, bool dayPrefix, bool weekNumber)
Použití: HTML, JavaScript, Skript
Popis: Funkce nahradí všechny výskyty datumů v textovém řetězci zadaném parametrem „value“ za datum ve formátu data aktuálně přihlášeného uživatele (např. „14.11.2014“). Rozpoznávají se jen data zapsaná dvěma čísly a čtyřmístným rokem, oddělenými tečkou nebo lomítkem; pořadí dne a měsíce se řídí formátem data přihlášeného uživatele. Parametr „dayPrefix“ indikuje, zda se před každé datum vloží zkrácený název dne. Parametr „weekNumber“ indikuje, zda se za každé datum vloží číslo týdne. Mají-li oba parametry hodnotu „false“, vrací funkce text beze změny.
Příklad:
FORMATDATES(abc #today# def, true, true)
// Vrací „abc pá 14.11.2014 (46. týden) def“
FORMATDATES(abc #today# def, true, false)
// Vrací „abc pá 14.11.2014 def“
FORMATDATES(abc #today# def, false, true)
// Vrací „abc 14.11.2014 (46. týden) def“
string FORMATDATESQL(DateTime date)
Použití: HTML, JavaScript, Skript
Popis: Funkce formátuje datum zadané parametrem „date“ do textové podoby určené pro použití v podmínce databázového dotazu například ve spojení s funkcí „SQL“, a na základě zvyklostí aktuální databáze. Není-li parametr „date“ platné datum, vrací funkce datum 1. 1. 1800.
Příklad:
FORMATDATESQL(#today#)
SQL("SELECT name FROM sholiday WHERE date_ = FORMATDATESQL(1.1.2019)")
string FORMATDIFFERENCES(string compare1, string compare2)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací tabulku se dvěma sloupci, kde v prvním sloupci jsou na jednotlivých řádcích zobrazeny hodnoty oddělené středníkem z parametru „compare1“, a ve druhém sloupci jsou stejným způsobem zobrazené hodnoty z parametru „compare2“. Hodnoty obou parametrů se porovnají jako dva seznamy řádků: shodné řádky se zobrazí vedle sebe beze změny, u změněného řádku se červeně zvýrazní jen změněná slova a vložená nebo vynechaná hodnota se zobrazí červeně proti prázdné buňce. Oddělovačem hodnot je středník i konec řádku. Hodnoty se zobrazí jako text, značky HTML se v nich nevykreslí. První sloupec má název „A“, druhý „B“.
Příklad:
FORMATDIFFERENCES(Text1;Druhytext2, Text1;Text2)
string FORMATDIFFERENCES(string compare1, string compare2, string header1, string header2)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací tabulku se dvěma sloupci, kde v prvním sloupci jsou na jednotlivých řádcích zobrazeny hodnoty oddělené středníkem z parametru „compare1“, a ve druhém sloupci jsou stejným způsobem zobrazené hodnoty z parametru „compare2“. Hodnoty obou parametrů se porovnají jako dva seznamy řádků: shodné řádky se zobrazí vedle sebe beze změny, u změněného řádku se červeně zvýrazní jen změněná slova a vložená nebo vynechaná hodnota se zobrazí červeně proti prázdné buňce. Oddělovačem hodnot je středník i konec řádku. Hodnoty se zobrazí jako text, značky HTML se v nich nevykreslí. První sloupec má název definovaný parametrem „header1“, druhý parametrem „header2“. Jsou-li oba názvy shodné, doplní se k nim „(1)“ a „(2)“.
Příklad:
FORMATDIFFERENCES(Text1;Druhytext2, Text1;Text2, První, Druhý)
string FORMATDIFFERENCES(string compare1, string compare2, string header1, string header2, string title)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací tabulku se dvěma sloupci, kde v prvním sloupci jsou na jednotlivých řádcích zobrazeny hodnoty oddělené středníkem z parametru „compare1“, a ve druhém sloupci jsou stejným způsobem zobrazené hodnoty z parametru „compare2“. Hodnoty obou parametrů se porovnají jako dva seznamy řádků: shodné řádky se zobrazí vedle sebe beze změny, u změněného řádku se červeně zvýrazní jen změněná slova a vložená nebo vynechaná hodnota se zobrazí červeně proti prázdné buňce. Oddělovačem hodnot je středník i konec řádku. Hodnoty se zobrazí jako text, značky HTML se v nich nevykreslí. První sloupec má název definovaný parametrem „header1“, druhý parametrem „header2“; jsou-li oba názvy shodné, doplní se k nim „(1)“ a „(2)“. Celá tabulka má nadpis definovaný parametrem „title“.
Příklad:
FORMATDIFFERENCES(Text1;Druhytext2, Text1;Text2, První, Druhy, Rozdíly)
string FORMATDOUBLE(double number)
Použití: HTML, JavaScript, Skript
Popis: Funkce formátuje číslo zadané parametrem „number“ do textové podoby – s oddělovačem tisíců a desetinným oddělovačem podle jazyka aktuálně přihlášeného uživatele (v češtině mezera a desetinná čárka, v angličtině čárka a desetinná tečka).
Příklad:
FORMATDOUBLE(1100)
// Vrací „1 100“
FORMATDOUBLE(1100.5)
// Vrací „1 100,5“
FORMATDOUBLE(1100.5412)
// Vrací „1 100,5412“
string FORMATDOUBLE(double number, string symbol)
Použití: HTML, JavaScript, Skript
Popis: Funkce formátuje číslo zadané parametrem „number“ do textové podoby – s oddělovačem tisíců a desetinným oddělovačem podle jazyka aktuálně přihlášeného uživatele (v češtině mezera a desetinná čárka, v angličtině čárka a desetinná tečka), a se symbolem zadaným parametrem „symbol“.
Příklad:
FORMATDOUBLE(1100, kg)
// Vrací „1 100 kg“
FORMATDOUBLE(1100.5, kg)
// Vrací „1 100,5 kg“
FORMATDOUBLE(1100.5412, kg)
// Vrací „1 100,5412 kg“
Začíná-li parametr „symbol“ formátem desetinného čísla ve složených závorkách (například „{0.00}kg“), funkce číslo zaokrouhlí a zformátuje podle tohoto formátu a za číslo připojí jen text za závorkou. Oddělovač tisíců se v tom případě nevkládá a desetinným oddělovačem je tečka nebo čárka podle toho, který z těchto znaků formát obsahuje; obsahuje-li oba, nebo žádný, použije se desetinný oddělovač podle jazyka uživatele.
FORMATDOUBLE(1100.5412, {0.00}kg)
// Vrací „1100.54 kg“
FORMATDOUBLE(1100.5412, "{0,00}kg")
// Vrací „1100,54 kg“
string FORMATDOUBLESQL(double number)
Použití: HTML, JavaScript, Skript
Popis: Funkce formátuje číslo zadané parametrem „number“ do textové podoby určené pro použití v podmínce databázového dotazu například ve spojení s funkcí „SQL“, a na základě zvyklostí aktuální databáze.
Příklad:
SQL("SELECT COUNT(*) FROM sstatistics2 WHERE session > FORMATDOUBLESQL(1000.1234)")
string FORMATINTARRAYSQL(string array)
Použití: HTML, JavaScript, Skript
Popis: Funkce formátuje seznam nenulových čísel oddělených středníkem zadaných parametrem „array“ do textové podoby určené pro použití v podmínce databázového dotazu například ve spojení s funkcí „SQL“, a na základě zvyklostí aktuální databáze. Pokud seznam čísel neobsahuje ani jednu nenulovou číselnou hodnotu, je vrácena hodnota „0“.
Příklad:
SQL("SELECT loginname FROM susers WHERE id IN (FORMATINTARRAYSQL(1;2))")
string FORMATINTSQL(int number)
Použití: HTML, JavaScript, Skript
Popis: Funkce formátuje číslo zadané parametrem „number“ do textové podoby určené pro použití v podmínce databázového dotazu například ve spojení s funkcí „SQL“, a na základě zvyklostí aktuální databáze. Hodnota, která není celé číslo – včetně čísla s desetinnou částí a čísla mimo rozsah datového typu –, se převede na „0“.
Příklad:
SQL("SELECT loginname FROM susers WHERE id = FORMATINTSQL(1)")
string FORMATLONGARRAYSQL(string array)
Použití: HTML, JavaScript, Skript
Popis: Funkce formátuje seznam nenulových velkých čísel oddělených středníkem zadaných parametrem „array“ do textové podoby určené pro použití v podmínce databázového dotazu například ve spojení s funkcí „SQL“, a na základě zvyklostí aktuální databáze. Pokud seznam čísel neobsahuje ani jednu nenulovou číselnou hodnotu, je vrácena hodnota „0“.
Příklad:
SQL("SELECT loginname FROM susers WHERE id IN (FORMATLONGARRAYSQL(1;2))")
string FORMATLONGSQL(long number)
Použití: HTML, JavaScript, Skript
Popis: Funkce formátuje číslo zadané parametrem „number“ do textové podoby určené pro použití v podmínce databázového dotazu například ve spojení s funkcí „SQL“, a na základě zvyklostí aktuální databáze. Hodnota, která není celé číslo – včetně čísla s desetinnou částí a čísla mimo rozsah datového typu –, se převede na „0“.
Příklad:
SQL("SELECT loginname FROM susers WHERE id = FORMATLONGSQL(1)")
string FORMATNUMBERINWORDS(double number)
Použití: HTML, JavaScript, Skript
Popis: Funkce formátuje číslo zadané parametrem „number“ do textové podoby uvedené slovy v jazyce aktuálně přihlášeného uživatele. Číslo se zaokrouhlí na celé číslo; hodnota přesně v polovině se zaokrouhlí na nejbližší sudé číslo (bankovní zaokrouhlení – 2,5 na 2, 3,5 na 4). Znaménko se nevypisuje – záporné číslo se vypíše stejně jako kladné.
Příklad:
FORMATNUMBERINWORDS(123456)
// Vrací „sto dvacet tři tisíc čtyři sta padesát šest“
FORMATNUMBERINWORDS(123456.5)
// Vrací „sto dvacet tři tisíc čtyři sta padesát šest“
string FORMATSTRING(string template [, string variable0, ...])
Použití: HTML, JavaScript, Skript
Popis: Funkce formátuje text zadaný parametrem „template“ podle zvyklostí složeného formátování v jazyce C#. Proměnné, jejichž výskyt bude nahrazen za hodnoty proměnných, se deklarují ve složených závorkách, a jsou číslované od nuly. Hodnoty se do šablony dosazují jako text, takže formátovací řetězce čísel a dat (například „{0:N2}“) nemají účinek; k formátování čísel a dat slouží funkce „FORMATDOUBLE“ a „FORMATDATE“. Obsahuje-li šablona chybu (například odkaz na hodnotu, která není zadaná), vrací funkce šablonu beze změny.
Příklad:
FORMATSTRING({0} + {1} = {2}, 1, 2, 3)
// Vrací „1 + 2 = 3“
string FORMATSTRINGSQL(string text)
Použití: HTML, JavaScript, Skript
Popis: Funkce formátuje textový řetězec zadaný parametrem „text“ do textové podoby určené pro použití v podmínce databázového dotazu například ve spojení s funkcí „SQL“, a na základě zvyklostí aktuální databáze – začínající znakem „N“ v případě databáze MSSQL, umístěný v apostrofech, a s escapovanými apostrofy, které se vyskytují uvnitř textu za zdvojené apostrofy.
Příklad:
SQL("SELECT id FROM susers WHERE loginname = FORMATSTRINGSQL(Administrator)")
string FORMATTABLE(string column1, string values1 [, string column2, string values2, ...])
Použití: HTML, Skript
Popis: Funkce vrací HTML kód tabulky formátované v univerzálním vzhledu určeném například pro emailové zprávy. Parametr „column1“ definuje název prvního sloupce tabulky, parametr „values1“ definuje hodnoty oddělené středníkem určené pro tento sloupec tabulky. Počet sloupců tabulky není omezen, pouze je potřeba další parametry funkce uvádět v párech – název sloupce spolu s hodnotami v tomto sloupci. Jako oddělovač hodnot je použitý středník, proto jednotlivé hodnoty ve sloupci nemohou středník obsahovat jako podřetězec. Názvy sloupců i hodnoty mohou být vícejazyčné (ve tvaru „text#en:překlad“) a zobrazí se v jazyce aktuálně přihlášeného uživatele. Počet řádků tabulky určuje počet hodnot v prvním sloupci; přebývající hodnoty dalších sloupců se nezobrazí a chybějící hodnoty zůstanou prázdné.
Příklad:
FORMATTABLE(A, 1;2;3, B, 4;5;6)
FORMATTABLE(A, #A#, B, #B#)
| A | B |
|---|---|
| 1 | 4 |
| 2 | 5 |
| 3 | 6 |
string FORMATTIME(int minutes)
Použití: HTML, JavaScript, Skript
Popis: Funkce formátuje počet minut zadaný parametrem „minutes“ do textové podoby ve formátu „HH:mm“. Počet hodin se po 24 hodinách nezalamuje (1500 minut vrací „25:00“). Hodnota, která není celé číslo – včetně čísla s desetinnou částí a čísla mimo rozsah datového typu –, se převede na 0 a funkce vrací „00:00“.
Příklad:
FORMATTIME(1156)
// Vrací „19:16“
FORMATTIME(-150)
// Vrací „-02:30“
string FORMATTIME2(double seconds)
Použití: HTML, JavaScript, Skript
Popis: Funkce formátuje počet vteřin zadaný parametrem „seconds“ do textové podoby ve formátu „HH:mm:ss“. Počet hodin se po 24 hodinách nezalamuje a desetinnou část vteřin připojí funkce za tečku, nejvýše tři číslice (FORMATTIME2(1156.5) vrací „00:19:16.5“).
Příklad:
FORMATTIME2(1156)
// Vrací „00:19:16“
FORMATTIME2(-150)
// Vrací „-00:02:30“
string FORMNAME(int form)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací celý název editačního formuláře zadaného parametrem „form“ včetně názvu aplikační skupiny a aplikace; jako oddělovač mezi těmito třemi názvy se použije řetězec „ / “.
Příklad:
FORMNAME(#form#)
string FORMNAME(int form, string separator)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací celý název editačního formuláře zadaného parametrem „form“ včetně názvu aplikační skupiny a aplikace. Jako oddělovač mezi těmito třemi názvy se použije textový řetězec zadaný parametrem „separator“.
Příklad:
FORMNAME(#form#, " | ")
void FULLAJAXMODE()
Použití: Poznámka editačního formuláře, Poznámka nahlížecí stránky
Popis: Funkce přepne stránku do režimu, ve kterém se místo odeslání formuláře (submit) používají ajaxové požadavky. Uložení, smazání i kliknutí na tlačítko pak stránku nepřekreslí celou, takže zůstane zachovaná pozice posunutí i stav okna. Ajaxová odpověď nese celý dokument, ze kterého klient vymění obsah značky „body“ a znovu zavolá funkci „body_onload()“.
Z toho plynou požadavky na uživatelský JavaScript. Nejsou-li splněné, stránka se nebude chovat korektně:
- Kód ovládacího prvku „JavaScript“ se rozdělí na deklarace funkcí, které se vloží do hlavičky stránky a spustí se jednou, a na ostatní příkazy, které se spustí při načtení stránky a znovu po každém ajaxovém požadavku. Tyto příkazy proto musí být opakovaně spustitelné — připojení obsluhy události, vložení nového uzlu do stránky nebo přičtení k proměnné se jinak provede při každém požadavku znovu. Opakovanému provedení zabrání příznak, například „if (!window.mujPrvek) { window.mujPrvek = true; ... }“.
- Deklarace „let“, „const“ a „class“ na první úrovni skončí při druhém spuštění chybou, protože deklarují totéž jméno znovu. Místo nich je nutné použít „var“, nebo hodnotu přiřadit do objektu „window“.
- Značka „script“ uvnitř obsahu ovládacích prvků „HTML“ a „RichText“ se po ajaxovém požadavku nespustí, protože se obsah vkládá vlastností „innerHTML“. Kód proto patří do ovládacího prvku „JavaScript“.
- Funkce „document.write“ nefunguje — dokument je v okamžiku spuštění uživatelského kódu už uzavřený a zápis by jeho obsah přepsal.
- Obsluha událostí „window.onload“ a „window.onunload“ se vyvolá jen při prvním načtení stránky, po ajaxovém požadavku už ne.
- Odkaz na ovládací prvek se nesmí ukládat do proměnné pro pozdější použití — po ajaxovém požadavku jsou v dokumentu nové uzly a uložený odkaz míří na uzel, který ve stránce už není. Prvek je nutné vždy znovu dohledat funkcí „el()“.
Příklad:
FULLAJAXMODE()
string GANTT(DateTime from, DateTime to, int R, int G, int B)
Použití: Nahlížecí tabulka
Popis: Funkce zobrazí Ganttův diagram na řádce nahlížecí tabulky (DataGrid). Počáteční datum diagramu určuje parametr „from“, koncové datum určuje parametr „to“. Zbarvení diagramu určují hodnoty barev parametrů „R“, „G“ a „B“. Pro zobrazení diagramu je nutné, aby volání funkce „GANTT“ bylo uloženo v hodnotě ovládacího prvku „TextBox“ s datovým typem „String“, nastaveného „Jen ke čtení“ a jako „Skryté pole“; v ovládacím prvku „History“ se diagram nezobrazí. Hodnota ovládacího prvku přitom musí začínat přesně textem „GANTT(“ a končit uzavírací závorkou. Je-li parametr „to“ prázdný nebo ho nelze převést na datum, použije se jako koncové datum datum z parametru „from“. Koncové datum bez času zahrnuje celý den a je-li „to“ dřívější než „from“, data se prohodí. Nelze-li parametr „from“ převést na datum, diagram se na řádce nezobrazí. Hodnoty „R“, „G“ a „B“ mimo rozsah 0 až 255 se omezí na nejbližší mez.
Příklad:
GANTT(01.01.2013, 01.02.2013, 25, 25, 112)
string GETCOOKIE(string key)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací hodnotu cookie definovanou parametrem „key“. Hodnotu cookie dodává internetový prohlížeč a funkce ji vrací bez kódování; do HTML se proto vkládá přes funkci „HTMLENCODE“.
Příklad:
GETCOOKIE(abc)
string GOOGLECAPTCHA(string siteKey, [string url])
Použití: HTML v editačním formuláři
Popis: Funkce vloží do HTML kódu editačního formuláře ověřovací kód Google reCAPTCHA, který slouží pro odlišení skutečných uživatelů od robotů. Vložený ověřovací kód v sobě obsahuje unikátní klíč domény zadaný parametrem „siteKey“, který lze získat při registraci Google reCAPTCHA u společnosti Google. Volitelný parametr „url“ je adresa skriptu Google reCAPTCHA vkládaného do stránky; není-li uveden, použije se výchozí adresa „https://www.google.com/recaptcha/api.js“. Funkce je svázána s funkcí „EVALGOOGLECAPTCHA“, bez níž by funkce „GOOGLECAPTCHA“ neměla smysl.
Poznámka: Funkce pracuje s klíčem typu Challenge (v2), dříve označovaným jako „reCAPTCHA v2 Checkbox“, a jeho ověření funkcí „EVALGOOGLECAPTCHA“ probíhá přes původní (legacy) ověřovací endpoint společnosti Google. Výsledkem ověření je pouze informace, zda kontrola prošla, nebo neprošla — funkce nepracuje se skóre, tedy s číselným vyjádřením pravděpodobnosti, že formulář odeslal člověk. Klíče typu score, které dnes společnost Google doporučuje, tato funkce nepodporuje.
Postup implementace — vytvoření klíčů u společnosti Google i zapojení ovládacích prvků ve formuláři — je uveden v samostatné příručce Implementace Google reCAPTCHA.
Příklad:
GOOGLECAPTCHA(5ghjhddfg54cddry5tvggfffg)
string GOOGLECAPTCHAINVISIBLE(string siteKey, string button, [string url, string position])
Použití: HTML v editačním formuláři
Popis: Funkce vloží do HTML kódu editačního formuláře ověřovací kód Google reCAPTCHA, který slouží pro odlišení skutečných uživatelů od robotů. Vložený ověřovací kód v sobě obsahuje unikátní klíč domény zadaný parametrem „siteKey“, který lze získat při registraci Google reCAPTCHA u společnosti Google. Parametr „button“ je identifikátor skrytého tlačítka, které obsahuje funkci „EVALGOOGLECAPTCHA“ — zapisuje se ve tvaru „BT“ a databázové ID tlačítka, například „BT216“. Tlačítko je spuštěno na straně serveru při zpracování odpovědi od Google. Volitelný parametr „url“ je adresa skriptu Google reCAPTCHA vkládaného do stránky; není-li uveden, použije se výchozí adresa „https://www.recaptcha.net/recaptcha/api.js“, která je dostupná i v sítích blokujících doménu google.com. Volitelný parametr „position“ určuje umístění odznaku a může nabývat hodnot bottomright, bottomleft a inline. Funkce je svázána s funkcí „EVALGOOGLECAPTCHA“, bez níž by funkce „GOOGLECAPTCHAINVISIBLE“ neměla smysl.
Poznámka: Funkce pracuje s klíčem typu Invisible (v2) a jeho ověření funkcí „EVALGOOGLECAPTCHA“ probíhá přes původní (legacy) ověřovací endpoint společnosti Google. Výsledkem ověření je pouze informace, zda kontrola prošla, nebo neprošla — funkce nepracuje se skóre a klíče typu score nepodporuje.
Kontrolu spouští javascriptová funkce „evalGoogleCaptcha()“, zapsaná do klientské události samostatného viditelného tlačítka; ochrana tedy vyžaduje dvě tlačítka — viditelné, které kontrolu spustí, a skryté, které odpověď ověří. Postup implementace je uveden v samostatné příručce Implementace Google reCAPTCHA.
Příklad:
GOOGLECAPTCHAINVISIBLE(5ghjhddfg54cddry5tvggfffg, BT123)
object[] GROUP(object[] array)
Použití: Skript
Popis: Funkce vrací pole hodnot skriptové proměnné typu pole hodnot, ve kterém jsou odstraněny duplicity. Funkce se zapisuje jen jako celá hodnota kroku přiřazení („GROUP(#A#)“) a jejím výsledkem je vždy pole hodnot; není-li proměnná polem hodnot, vrací pole s jediným prvkem – hodnotou proměnné. Proměnnou, do které se výsledek přiřazuje, je nutné předem deklarovat, jinak skript skončí chybou. Tato proměnná musí mít stejný datový typ jako proměnná zadaná parametrem „array“ – hodnoty se na její datový typ nepřevádějí.
Příklad:
GROUP(#A#)
void HIDEFORM(string message)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce skryje obsah editačního formuláře nebo nahlížecí stránky, a vypíše zprávu zadanou parametrem „message“. Zprávu lze zadat vícejazyčně a nebezpečné značky HTML se z ní odstraní.
Příklad:
HIDEFORM("Děkujeme, že jste nám odeslali Vaši odpověď.")
void HIDEFORM(string message, bool fullscreen)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce skryje obsah editačního formuláře nebo nahlížecí stránky a vypíše zprávu zadanou parametrem „message“ stejně jako varianta s jedním parametrem. Má-li parametr „fullscreen“ hodnotu „true“, zobrazí se zpráva přes celou plochu stránky. V editačním formuláři s prioritním HTML kódem (ovládací prvek HTML se zaškrtnutým polem „Prioritní HTML kód umístěný před formulářem“, který vykreslí neprázdný obsah) se zpráva přes celou plochu stránky zobrazí vždy, i s hodnotou „false“ a ve variantě s jedním parametrem.
Příklad:
HIDEFORM("Děkujeme, že jste nám odeslali Vaši odpověď.", true)
string HOURCONDITION(string ng_date, int hour1, int hour2)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací SQL kód podmínky, která je určena na porovnávání, zda sloupec s názvem „ng_date“ (obsahem sloupce je datum) leží v časovém intervalu mezi hodinami „hour1“ a „hour2“. Porovnává se číslo hodiny včetně obou mezí, podmínka s hodinami „8“ a „20“ proto zahrne i časy od 20:00 do 20:59. Hodnota „hour1“ nesmí být větší než „hour2“ – podmínka s intervalem přes půlnoc (například od 22 do 6) nevrátí žádný záznam a je nutné ji složit ze dvou podmínek (od „hour1“ do 23 a od 0 do „hour2“), z nichž musí platit alespoň jedna.
Příklad:
Použití v podmínce dotazu:
[(ID)] [rovná se] [OK#crlf#HOURCONDITION(ng_date, 8, 20)]
Před OK#crlf# nesmí být mezera
string HTMLDECODE(string text)
Použití: HTML, JavaScript, Skript
Popis: Funkce nahradí všechny sekvence znaků (character entities) obsažené v parametru „text“ za odpovídající HTML znaky.
Příklad:
HTMLDECODE(<h1>Administrator</h1>)
// Vrací „<h1>Administrator</h1>“
HTMLDECODE(<p>Ahoj jmenuji se <br>NET Genium</p>)
// Vrací „<p>Ahoj jmenuji se <br>NET Genium</p>“
string HTMLENCODE(string text)
Použití: HTML, JavaScript, Skript
Popis: Funkce nahradí všechny HTML znaky obsažené v parametru „text“ za odpovídající sekvenci znaků (character entities).
Příklad:
HTMLENCODE(<h1>Administrator</h1>)
// Vrací „<h1>Administrator</h1>“
HTMLENCODE(<p>Ahoj jmenuji se <br>NET Genium</p>)
// Vrací „<p>Ahoj jmenuji se <br>NET Genium</p>“
string HTML2TEXT(string html, bool simplehtml)
Použití: HTML, JavaScript, Skript
Popis: Funkce převede textový řetězec ve formátu HTML do podoby prostého textu. Parametr „simplehtml“ udává, zda se má zachovat základní formátování textu pomocí HTML značek „b“, „strong“, „i“, „em“, „u“, „sub“, „sup“ a „blockquote“ a obrázky (značka „img“). S hodnotou „false“ vrací funkce prostý text, který používá „\r\n“ jako oddělovač řádek. S hodnotou „true“ vrací zjednodušené HTML: řádky oddělí značkou „br“, znaky „&“, „<“, „>“ a dvojitou uvozovku zapíše jako entity HTML a obrázek zachová jen tehdy, je-li jeho adresa odkazem na přílohu NET Genia nebo začíná-li na „http://“, „https://“, „ftp://“, „ftps://“ nebo „data:“. Řádek tabulky převede funkce na jeden řádek textu, obsah neprázdných buněk oddělí pomlčkou obklopenou mezerami a za tabulku vloží prázdný řádek. Předformátovaný text (značka „pre“) si ponechá konce řádků a odsazení a opakované mezery zachová jako pevné mezery.
Příklad:
HTML2TEXT(<div><b>abc</b></div>, true)
// Vrací „<b>abc</b>“
string HTML2TEXT(string html)
Použití: HTML, JavaScript, Skript
Popis: Funkce převede textový řetězec ve formátu HTML do podoby prostého textu, který používá „\r\n“ jako oddělovač řádek. Tabulky a předformátovaný text převádí stejně jako varianta s parametrem „simplehtml“.
Příklad:
HTML2TEXT(<div>abc</div>)
// Vrací „abc“
string IFF(string expression, string yes, string no)
Použití: HTML, JavaScript, Skript
Popis: Funkce vyhodnotí, zda platí matematický výraz zadaný parametrem „expression“. Pokud výraz platí, je vrácena hodnota zadaná parametrem „yes“, v opačném případě je vrácena hodnota zadaná parametrem „no“. Funkce pracuje výhradně s čísly (ne s textovými hodnotami) a podporuje operátory „<“, „<=“, „>=“, „>“ a „=“. Pořadí vyhodnocování operátorů: nejprve „<=“ (pak „<“), pak „>=“ (pak „>“), nakonec „=“. Mezery ve výrazu jsou ignorovány (oříznuty). Pokud výraz neobsahuje žádný porovnávací operátor, vrací funkce vždy hodnotu parametru „no“. Hodnota, kterou nelze převést na číslo (například text), se porovnává jako 0 – porovnání dvou textů proto vyjde jako rovnost. Texty porovnává funkce „EQUALS“, data funkce „COMPAREDATE“.
Příklad:
IFF(-1.5 <= 2, Platí, Neplatí)
// Vrací „Platí“
IFF(10 > 5, Větší, Menší nebo rovno)
// Vrací „Větší“
IFF(3 = 3, Rovná se, Nerovná se)
// Vrací „Rovná se“
IFF(#A# >= #B#, ANO, NE)
// Vrací „ANO“ nebo „NE“ podle hodnot skriptových proměnných A a B
IFF(0 = 1, Nikdy, Vždy)
// Vrací „Vždy“ (podmínka 0 = 1 není splněna)
IFF(bez_operatoru, Ano, Ne)
// Vrací „Ne“ – žádný operátor › podmínka není vyhodnotitelná
void IMPORTFORMDATAFROMXMLFILE(string path [, string column1, string column2, ...])
Použití: Skript (na místě, kde se očekává zadání komentáře)
Omezení: Funkce není dostupná v cloudové variantě NET Genium Online.
Popis: Funkce načte XML soubor z disku zadaný parametrem „path“ (který byl typicky vygenerován funkcí EXPORTFORMDATATOXMLFILE) a importuje data z prvního řádku první tabulky DataSetu do aktuálně otevřeného editačního formuláře. Systémové sloupce a sloupce, které formulář neobsahuje, se přeskočí. Volitelné parametry „column1“, „column2“, ... omezují import pouze na zadané sloupce; bez nich jsou importovány všechny sloupce. Neobsahuje-li soubor žádný ze zadaných sloupců, neimportuje se nic. Po importu je soubor automaticky smazán, a to i tehdy, když se nic neimportovalo; skončí-li funkce chybou (například soubor bez dat nebo s neplatným obsahem XML), soubor zůstane. Podle prostředí instance může být cesta omezena na povolené adresáře; pokus o přístup mimo ně pak vyvolá výjimku.
Příklad:
IMPORTFORMDATAFROMXMLFILE(#rootpath#Temp\data.xml)
// Importuje všechna data ze souboru data.xml do aktuálního formuláře
IMPORTFORMDATAFROMXMLFILE(#rootpath#Temp\data.xml, ng_jmeno, ng_prijmeni, ng_email)
// Importuje pouze sloupce ng_jmeno, ng_prijmeni a ng_email
IMPORTFORMDATAFROMXMLFILE(#rootpath#Temp\data.xml)
// Vyvolá výjimku, neprojde-li cesta validací nebo neobsahuje-li soubor žádná data; neexistující soubor se tiše přeskočí
int INDEXOF(string text, string subtext)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací pozici podřetězce zadaného parametrem „subtext“ v řetězci zadaném parametrem „text“ počínaje indexem „0“. Není-li takový výskyt nalezen, vrací hodnotu „-1“. Zápis „indexOf“ se nevyhodnotí a zůstane zachován pro prohlížeč; ostatní podoby zápisu (INDEXOF, indexof) fungují.
Příklad:
INDEXOF(Dobrý den, den)
// Vrací „6“
string INT2TIME(int minutes)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací textový řetězec ve formátu „HH:mm“ vyjádřený z počtu minut zadaného parametrem „minutes“. Počet hodin se po 24 hodinách nezalamuje (1500 minut vrací „25:00“) a záporný počet minut vrací čas se znaménkem minus (např. „-01:30“).
Příklad:
INT2TIME(480)
// Vrací „08:00“
INT2TIME(0)
// Vrací „00:00“
int[] IntegerArray(int count)
Použití: Skript
Popis: Funkce deklaruje skriptovou proměnnou typu pole hodnot „Integer“, a vytvoří pole o velikosti tolika prvků, kolik je zadáno parametrem „count“. Tyto prvky naplní hodnotami postupně od jedničky, každý prvek má v sobě uloženou hodnotu o jedna vyšší než předcházející prvek. Volání funkce „IntegerArray“ musí dodržovat velká a malá písmena v názvu funkce a musí tvořit celou hodnotu přiřazovanou do proměnné. Záporná hodnota parametru „count“ ukončí skript chybou, nula nebo nečíselná hodnota vytvoří prázdné pole.
Příklad:
IntegerArray(5)
string JTSK2WGS(double x, double y)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací konverzi hodnot souřadného systému JTSK zadaných parametry „x“ a „y“ do systému WGS. Výsledkem je zeměpisná délka a za ní zeměpisná šířka, oddělené středníkem. Desetinný oddělovač obou hodnot odpovídá jazyku přihlášeného uživatele – uživateli s českým jazykem desetinná čárka, uživateli s anglickým jazykem desetinná tečka.
Příklad:
JTSK2WGS(x, y)
// Vrací „zeměpisná délka;zeměpisná šířka“
void LABELPOSITION(string position)
Použití: Poznámka databázového ovládacího prvku v editačním formuláři
Popis: Funkce určí umístění názvu databázového ovládacího prvku. Hodnota „inside“ zobrazí název uvnitř ovládacího prvku, hodnota „up“ nad ovládacím prvkem; hodnota se zapisuje malými písmeny. Ovládací prvky, které název uvnitř zobrazit neumějí (např. RichTextBox, MultiListBox, Radio, CheckBox, File, Image nebo DatePicker), ho při hodnotě „inside“ zobrazí nad sebou.
Příklad:
LABELPOSITION(inside)
LABELPOSITION(up)
void LABELSINSIDE()
Použití: Poznámka editačního formuláře, Poznámka nahlížecí stránky
Popis: Funkce zobrazí popisky ovládacích prvků uvnitř ovládacích prvků, takže editační formulář nebo nahlížecí stránka nemá levý sloupec s názvy ovládacích prvků. Na nahlížecí stránce zobrazí ovládací prvek RichTextBox popisek nad polem.
Příklad:
LABELSINSIDE()
string LANGUAGE(string loginname)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací kód jazyka uloženého u uživatele zadaného parametrem „loginname“, typicky „cs“, „de“, „en“, „fr“ nebo „sk“. Nemá-li uživatel jazyk nastavený, vrací prázdný řetězec.
Příklad:
LANGUAGE(Administrator)
LANGUAGE(#loginname#)
object LAST(object[] array)
Použití: Skript
Popis: Funkce vrací poslední hodnotu skriptové proměnné zadané parametrem „array“, je-li proměnná polem hodnot. Není-li proměnná polem hodnot, pak funkce vrací hodnotu proměnné. Neobsahuje-li pole hodnot žádný prvek, funkce vrací prázdný řetězec.
Příklad:
LAST(#A#)
DateTime LASTDAYINMONTH(DateTime date)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací datum posledního dne v měsíci z data zadaného parametrem „date“. Pro neplatné datum vrací prázdný řetězec.
Příklad:
LASTDAYINMONTH(15.2.2013)
// Vrací „28.02.2013“
LASTDAYINMONTH(#today#)
DateTime LASTDAYINQUARTAL(DateTime date)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací datum posledního dne ve čtvrtletí (kvartálu) z data zadaného parametrem „date“. Pro neplatné datum vrací prázdný řetězec. Funkce je dostupná také pod alternativním názvem „LASTDAYINQUARTER“ (anglický zápis).
Příklad:
LASTDAYINQUARTAL(15.2.2013)
// Vrací „31.03.2013“
LASTDAYINQUARTER(15.5.2013)
// Vrací „30.06.2013“ (alternativní název)
LASTDAYINQUARTAL(#today#)
DateTime LASTDAYINWEEK(DateTime date)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací datum posledního dne v týdnu (neděle; týden začíná pondělím) z data zadaného parametrem „date“. Pro neplatné datum vrací prázdný řetězec.
Příklad:
LASTDAYINWEEK(15.2.2013)
// Vrací „17.02.2013“
LASTDAYINWEEK(#today#)
DateTime LASTDAYINYEAR(DateTime date)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací datum posledního dne v roce z data zadaného parametrem „date“. Pro neplatné datum vrací prázdný řetězec.
Příklad:
LASTDAYINYEAR(15.2.2013)
// Vrací „31.12.2013“
LASTDAYINYEAR(#today#)
void LAYOUT(int id)
Použití: Poznámka editačního formuláře, Poznámka nahlížecí stránky
Popis: Funkce nastaví vzhled aktuálního editačního formuláře nebo nahlížecí stránky podle definice uložené v tabulce „slayout“. Spolu se vzhledem převezme i jeho okraje „Formulář – Okraje“ a přepíše jimi okraje nastavené funkcí „MARGINS“, která je v poznámce zapsaná před ní – funkce se vyhodnocují v pořadí, v jakém jsou v poznámce zapsané. Funkci „MARGINS“ je proto nutné uvést až za funkcí „LAYOUT“. Parametr „id“ určuje identifikátor konkrétního layoutu, který bude na formulář nebo nahlížecí stránku aplikován. Použitím této funkce lze dynamicky měnit výchozí vzhled aplikovaný na celou aplikaci bez nutnosti zásahu do jeho definice.
Příklad:
LAYOUT(2)
// Vzhled 2 s vlastním levým okrajem
LAYOUT(2) MARGINS(auto, auto, auto, 100)
void LEFTALIGNMENT
Použití: Poznámka editačního formuláře nebo název ovládacího prvku HTML (tělo ovládacího prvku musí zůstat prázdné)
Popis: Funkce zahájí blok ovládacích prvků, které mají název ovládacího prvku v levém sloupci zarovnaný doleva. V uživatelském režimu se tlačítka, nahlížecí tabulky DataGrid a LiteDataGrid a vizuální ovládací prvky Calendar, TimeTable, Planner, Kanban, Chart, Map a Tree, které nejsou přichycené k předchozímu ovládacímu prvku, zobrazují v bloku bez levého sloupce s názvem, od levého okraje formuláře.
Příklad:
// V poznámce editačního formuláře se funkce zapisuje se závorkami
LEFTALIGNMENT()
// V názvu ovládacího prvku HTML se zapisuje bez závorek, zápis „LEFTALIGNMENT()“ se v něm neuplatní
LEFTALIGNMENT
void /LEFTALIGNMENT
Použití: Název ovládacího prvku HTML – tělo ovládacího prvku musí zůstat prázdné
Popis: Funkce zakončí blok ovládacích prvků, které mají název ovládacího prvku v levém sloupci zarovnaný doleva.
Příklad:
/LEFTALIGNMENT
int LENGTH(string text)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací délku (počet znaků) textového řetězce zadaného parametrem „text“.
Příklad:
LENGTH(Administrator)
// Vrací „13“
LENGTH(#loginname#)
LENGTH(#A#)
void LOADDATAGRIDSETTINGS(int query, int form, int id)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce načte dříve uložené nastavení datagridu pro dotaz zadaný parametrem „query“ (ID dotazu) z úložiště záznamu zadaného parametry „form“ (ID formuláře) a „id“ (ID záznamu) a aplikuje ho na aktuální filtr přihlášeného uživatele. Filtry sloupců se uplatní jen u sloupců, které má uživatel v nahlížecí tabulce zobrazené; uživateli, který tabulku ještě nezobrazil, se při uložených filtrech sloupců nejdřív nastaví výchozí sloupce. U anonymního uživatele se filtry sloupců, zaškrtnutí hledání v jednotlivých sloupcích a podmínky složeného filtru zapíší jeho účtu, který sdílejí všichni anonymní návštěvníci; filtry sloupců a zaškrtnutí hledání se pak uplatní u všech z nich. Není-li k záznamu uložené žádné nastavení, funkce nastavení uživatele nezmění. Typické použití je pro sdílení nastavení filtru v rámci konkrétního záznamu. Funkce čte z tabulek volitelné aplikace „DataGrid Settings“, kterou je nutné do NET Genia naimportovat, viz příručka Nastavení NET Genia.
Příklad:
LOADDATAGRIDSETTINGS(#lastqueryid#, #pform#, #pid#)
// Načte nastavení uložené k aktuálnímu záznamu a aplikuje ho na aktuálního uživatele
double LOG10(double number)
Použití: HTML, Skript (jen v číselném výrazu, např. v hodnotě přiřazované do číselné proměnné)
Popis: Funkce vrací logaritmus o základu 10 z hodnoty zadané parametrem „number“. Hodnoty zadané parametrem „number“ mohou být jakákoliv nezáporná čísla (i desetinná). Je-li název zapsán malými písmeny bezprostředně za tečkou, volání se nevyhodnotí a zůstane zachováno pro prohlížeč.
Příklad:
LOG10(1.123)
// Vrací „0,0503797562614578“
LOG10(0)
// Vrací „-nekonečno“
void LOGERROR(string message)
Použití: HTML, JavaScript, Skript
Popis: Funkce zapíše chybovou zprávu „message“ do aktuálního logovacího souboru NET Genia. Je-li v Nastavení NET Genia vyplněná platná servisní e-mailová adresa mimo doménu „netgenium.com“, odešle funkce zprávu na ni také e-mailem, tutéž zprávu nejvýš jednou za hodinu; v testovacím běhu skriptu se e-mail neodešle.
Příklad:
LOGERROR(Import dat se nezdařil.)
void LOGNOTICE(string message)
Použití: HTML, JavaScript, Skript
Popis: Funkce zapíše informační zprávu „message“ do aktuálního logovacího souboru NET Genia.
Příklad:
LOGNOTICE(Import dat byl dokončen.)
void LOGSERVICE(string service)
Použití: Skript
Popis: Funkce zaloguje úspěšné provedení služby s názvem „service“ do databázové tabulky „ng_sluzbawindows“. Zápis se provede okamžitě, mimo transakci skriptu, proto je vhodné funkci volat až na posledním řádku skriptu – jinak se služba zaloguje jako funkční i tehdy, když skript později selže. Neexistuje-li v portálu formulář s tabulkou „ng_sluzbawindows“, funkce nic neprovede; přehled a upozornění zajišťuje aplikace postavená nad touto tabulkou. Funkce nalezne využití převážně při naplánovaném spouštění skriptů pomocí naplánovaných úloh systému Windows. Funkce zapíše čas zalogování a čas příštího očekávaného spuštění, který leží 1 den (1440 minut) po zalogování; podle tohoto času aplikace vyhodnotí, zda služba běží.
Příklad:
LOGSERVICE(RunScript)
void LOGSERVICE(string service, int interval)
Použití: Skript
Popis: Funkce zaloguje úspěšné provedení služby s názvem „service“ do databázové tabulky „ng_sluzbawindows“. Zápis se provede okamžitě, mimo transakci skriptu, proto je vhodné funkci volat až na posledním řádku skriptu – jinak se služba zaloguje jako funkční i tehdy, když skript později selže. Neexistuje-li v portálu formulář s tabulkou „ng_sluzbawindows“, funkce nic neprovede; přehled a upozornění zajišťuje aplikace postavená nad touto tabulkou. Funkce nalezne využití převážně při naplánovaném spouštění skriptů pomocí naplánovaných úloh systému Windows. Funkce zapíše čas zalogování a čas příštího očekávaného spuštění, který leží o počet minut zadaný parametrem „interval“ po zalogování; podle tohoto času aplikace vyhodnotí, zda služba běží.
Příklad:
LOGSERVICE(RunScript, 720)
void LOGVERBOSE(string message)
Použití: HTML, JavaScript, Skript
Popis: Funkce zaloguje textový řetězec „message“ do souboru „Logs\yyyy-MM-dd.log“. Na začátku řádky je uvedeno slovo VERBOSE, dále aktuální datum a čas ve formátu „yyyy-MM-dd HH:mm:ss“, a pak následuje textový řetězec „message“.
Příklad:
LOGVERBOSE(abc)
DateTime LONG2DATE(long value)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací datum a čas odpovídající číselné hodnotě zadané parametrem „value“ v podobě, jakou vrací funkce „DATE2LONG“ – jde o počet stonanosekundových intervalů od 1.1.0001 (hodnota „ticks“ v .NET), nikoli o unixový čas. Výsledek je ve formátu data a času aktuálně přihlášeného uživatele; čas 00:00 se nevypisuje. Pro hodnotu „0“, nečíselnou hodnotu a hodnotu, která neodpovídá platnému datu, vrací funkce prázdný řetězec.
Příklad:
LONG2DATE(630822816000000000)
// Vrací „01.01.2000“
long[] LongArray(long number1; long number2; ...)
Použití: Skript
Popis: Funkce deklaruje skriptovou proměnnou typu pole hodnot „Long“ z jednotlivých hodnot zadaných parametrem „number1“, „number2“, atd. Parametry funkce se oddělují pomocí středníku nebo tabulátoru. Volání funkce „LongArray“ musí dodržovat velká a malá písmena v názvu funkce.
Příklad:
LongArray(1;2;3)
// Deklaruje pole tří hodnot „Long“
string LOWER(string text)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací textový řetězec zadaný parametrem „text“, ve kterém jsou všechny znaky převedeny na malá písmena.
Příklad:
LOWER(NET Genium)
// Vrací „net genium“
string LOWRES(string text1, string text2)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací textový řetězec zadaný parametrem „text1“, pokud je uživatel přihlášen do NET Genia na mobilním zařízení s nízkým rozlišením (při přihlašování je zvolen „Malý displej“). V případě, že není splněna výše uvedená podmínka, funkce vrací řetězec zadaný parametrem „text2“. Funkce má využití při nastavování rozměrů ovládacích prvků v editačním formuláři pro různé typy zařízení (mobilní a nemobilní).
Příklad:
LOWRES(abc, def)
// Vrací „abc“ pro mobilní zařízení s nízkým rozlišením
// Vrací „def“ pro nemobilní zařízení nebo mobilní zařízení s velkým rozlišením
void LOWRESOLUTION()
Použití: Poznámka editačního formuláře
Popis: Funkce nastaví nízké rozlišení mobilního zařízení tak, aby se editační formuláře zobrazovaly optimalizované pro nízké rozlišení i v anonymním režimu. Standardně je možnost výběru nízkého resp. velkého rozlišení umístěna na hlavní stránce v přihlašovacím okně, u anonymních editačních formulářů ale tento způsob není relevantní. Nízké rozlišení se uplatní jen na mobilním zařízení. Funkce ho zapne každému uživateli, který formulář otevře, a to až do konce jeho session – i po opuštění formuláře a i tehdy, když uživatel zvolil při přihlášení „Velký displej“.
Příklad:
LOWRESOLUTION()
void MARGINS(string top, string right, string bottom, string left)
Použití: Poznámka editačního formuláře, Poznámka nahlížecí stránky
Popis: Funkce nastaví velikost okrajů editačního formuláře nebo nahlížecí stránky. Hodnoty parametrů „top“, „right“, „bottom“ a „left“ se uvádí v pixelech, nebo mohou obsahovat hodnotu „auto“, která značí výchozí hodnotu. Funkce se uplatní jen se všemi čtyřmi parametry. Hodnotu „auto“ je nutné zapsat malými písmeny, jiný zápis se vyhodnotí jako 0. Za číslo lze připojit jednotku „px“. Je-li v poznámce zapsaná i funkce „LAYOUT“, musí být funkce „MARGINS“ uvedena až za ní, jinak okraje přepíše vzhled zvolený funkcí „LAYOUT“.
Příklad:
MARGINS(auto, auto, auto, 100)
object MAX(object[] array)
Použití: Skript
Popis: Funkce vrací nejvyšší hodnotu skriptové proměnné zadané parametrem „array“, je-li proměnná polem hodnot. Není-li proměnná polem hodnot, vrací funkce hodnotu proměnné; u proměnné typu „String“ ji převede na počet minut (viz níže). Funkce pracuje s čísly, s časovými údaji ve formátu „HH:mm“ i s datem (v tom případě vrací nejpozdější datum). Prázdné prvky pole funkce vynechá. Neobsahuje-li pole žádný neprázdný prvek, vrací funkce „0“. Desetinné číslo vrací funkce s desetinnou tečkou. Datum vrací ve formátu data a času přihlášeného uživatele se sekundami; čas „00:00:00“ se vynechá a nulové sekundy se nevypíšou.
Hodnoty proměnné typu „String“ bere funkce jako časové údaje ve formátu „HH:mm“ a výsledek vrací jako počet minut, a to i u proměnné, která není polem hodnot. Text v jiném tvaru – včetně čísla uloženého v proměnné typu „String“ – se počítá jako 0; pro čísla je proto nutné použít proměnnou typu „Integer“, „Long“ nebo „Double“.
Příklad:
MAX(#A#)
// Vrací nejvyšší hodnotu pole, např. pro pole [1, 2, 3, 4, 5] vrací „5“
double MEASUREWORKDAYS(DateTime startdate, DateTime enddate)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací počet pracovních dnů z časového úseku zadaného parametry „startdate“ a „enddate“. Funkce zohledňuje státní svátky evidované v základní aplikaci „Nastavení“. Do úseku se počítají oba krajní dny bez ohledu na čas, svátek jen na část dne se započte jako 0,5 dne a je-li „startdate“ pozdější než „enddate“, vrací funkce „0“. Je-li některé z dat neplatné, vrací funkce prázdný řetězec.
Příklad:
MEASUREWORKDAYS(1.1.2000, 1.2.2000)
// Vrací „22“
MEASUREWORKDAYS(#ng_od#, #ng_do#)
// Vrací počet pracovních dnů mezi daty z polí „ng_od“ a „ng_do“
double MEASUREWORKDAYS(string value, string period)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací počet pracovních dnů v období, do kterého patří hodnota zadaná parametrem „value“. Parametr „period“ určuje období a nabývá jedné z hodnot:
- „d“ – den zadaný datem v parametru „value“ (vrací 1 pro pracovní den, 0,5 pro den, kdy je svátek jen část dne, jinak 0)
- „w“ – týden zadaný v parametru „value“ ve tvaru „rok / číslo týdne“ (např. „2026 / 13“)
- „m“ – kalendářní měsíc zadaný v parametru „value“ ve tvaru „rok / měsíc“ (např. „2026 / 03“)
- „q“ – kalendářní čtvrtletí zadané v parametru „value“ ve tvaru „rok / číslo čtvrtletí“ (např. „2026 / 02“)
- „y“ – kalendářní rok zadaný číslem roku v parametru „value“
U období „d“ vrací funkce pro neplatné datum prázdný řetězec; u ostatních období vrátí hodnota v jiném tvaru buď nesprávný výsledek bez chybového hlášení (například datum u období „w“, „m“ nebo „q“), nebo skončí chybou (například datum u období „y“ nebo měsíc mimo rozsah 1–12 u období „m“). Funkce zohledňuje státní svátky evidované v základní aplikaci „Nastavení“.
Příklad:
MEASUREWORKDAYS(#today#, d)
// Vrací 1, je-li dnešek pracovní den
MEASUREWORKDAYS(2026 / 03, m)
// Vrací počet pracovních dnů v březnu 2026
MEASUREWORKDAYS(2026, y)
// Vrací počet pracovních dnů v roce 2026
double MEASUREWORKHOURS(DateTime startdate, DateTime enddate)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací počet pracovních hodin z časového úseku zadaného parametry „startdate“ a „enddate“. Funkce nezapočítá víkendy a dny se státním svátkem evidovaným v základní aplikaci „Nastavení“, a to ani se svátkem jen na část dne, který považuje celý za nepracovní; pracovní doba je stanovena na 24 hodin denně. Koncové datum s časem 00:00 (nebo bez času) se bere jako konec téhož dne, takže se do úseku započte celý. Je-li některé z dat neplatné, vrací funkce prázdný řetězec; je-li „startdate“ pozdější než konec úseku, vrací „0“.
Příklad:
MEASUREWORKHOURS(1.1.2000, 1.2.2000)
// Vrací „528“
double MEASUREWORKHOURS(DateTime startdate, DateTime enddate, int starthour, int endhour)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací počet pracovních hodin z časového úseku zadaného parametry „startdate“ a „enddate“. Funkce zohledňuje pracovní dobu zadanou parametry „starthour“ a „endhour“ a nezapočítá víkendy a dny se státním svátkem evidovaným v základní aplikaci „Nastavení“, a to ani se svátkem jen na část dne, který považuje celý za nepracovní. Parametr „starthour“ může nabývat hodnot 0 až 23 a parametr „endhour“ hodnot 1 až 24; hodnota mimo rozsah se nahradí hodnotou 0, resp. 24. Počáteční čas před „starthour“ se posune na „starthour“ a koncový čas po „endhour“ se zkrátí na „endhour“; koncové datum s časem 00:00 (nebo bez času) se bere jako konec pracovní doby téhož dne, takže se do úseku započte celý. Je-li některé z dat neplatné, vrací funkce prázdný řetězec; je-li „startdate“ pozdější než konec úseku (konec po hodině „endhour“ se bere jako „endhour“ téhož dne) nebo „starthour“ větší než „endhour“, vrací „0“.
Příklad:
MEASUREWORKHOURS(13.2.2026 9:30, 13.2.2026 12:00, 8, 18)
// Vrací „2,5“
object MIN(object[] array)
Použití: Skript
Popis: Funkce vrací nejnižší hodnotu skriptové proměnné zadané parametrem „array“, je-li proměnná polem hodnot. Není-li proměnná polem hodnot, vrací funkce hodnotu proměnné; u proměnné typu „String“ ji převede na počet minut (viz níže). Funkce pracuje s čísly, s časovými údaji ve formátu „HH:mm“ i s datem (v tom případě vrací nejstarší datum). Prázdné prvky pole funkce vynechá. Neobsahuje-li pole žádný neprázdný prvek, vrací funkce „0“. Desetinné číslo vrací funkce s desetinnou tečkou. Datum vrací ve formátu data a času přihlášeného uživatele se sekundami; čas „00:00:00“ se vynechá a nulové sekundy se nevypíšou.
Hodnoty proměnné typu „String“ bere funkce jako časové údaje ve formátu „HH:mm“ a výsledek vrací jako počet minut, a to i u proměnné, která není polem hodnot. Text v jiném tvaru – včetně čísla uloženého v proměnné typu „String“ – se počítá jako 0; pro čísla je proto nutné použít proměnnou typu „Integer“, „Long“ nebo „Double“.
Příklad:
MIN(#A#)
// Vrací nejnižší hodnotu pole, např. pro pole [1, 2, 3, 4, 5] vrací „1“
string MINUTES2TIME(int minutes)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací textový řetězec ve formátu „HH:mm“ vyjádřený z počtu minut zadaného parametrem „minutes“. Počet hodin se po 24 hodinách nezalamuje (1500 minut vrací „25:00“) a záporný počet minut vrací čas se znaménkem minus (např. „-01:30“).
Příklad:
MINUTES2TIME(480)
// Vrací „08:00“
MINUTES2TIME(0)
// Vrací „00:00“
int MONTH(DateTime date)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací číslo měsíce z data zadaného parametrem „date“. Pro neplatné datum vrací prázdný řetězec.
Příklad:
MONTH(15.2.2013)
// Vrací „2“
MONTH(#now#)
string NGDPH()
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací aktuální sazby DPH České republiky oddělené středníkem; za sazbami je vždy uvedena nulová sazba „0“. Sazby jiných zemí vrací funkce „NGVATRATES“.
Příklad:
NGDPH()
double NGDPH(int rate)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací sazbu DPH České republiky definovanou parametrem „rate“. Parametr je definován číslem 2 pro zvýšenou sazbu DPH, číslem 1 pro sníženou sazbu DPH, číslem 3 pro druhou a číslem 4 pro třetí sníženou sazbu DPH (nemá-li je Česká republika, vrací funkce 0) a číslem 0 pro nulovou sazbu DPH.
Příklad:
NGDPH(1)
// Vrací aktuální sníženou sazbu DPH, např. „12“
string NGDPH(DateTime date)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací sazby DPH České republiky oddělené středníkem ke dni uvedeném v parametru „date“; za sazbami je vždy uvedena nulová sazba „0“. Datum se čte podle formátu data přihlášeného uživatele; pro datum, které nelze rozpoznat, vrací funkce prázdný řetězec.
Příklad:
NGDPH(1.1.2000)
// Vrací sazby DPH oddělené středníkem platné k danému dni, např. „22;5;0“
double NGDPH(int rate, DateTime date)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací sazbu DPH České republiky definovanou parametrem „rate“. Parametr je definován číslem 2 pro zvýšenou sazbu DPH, číslem 1 pro sníženou sazbu DPH, číslem 3 pro druhou a číslem 4 pro třetí sníženou sazbu DPH (nemá-li je Česká republika, vrací funkce 0) a číslem 0 pro nulovou sazbu DPH. Sazba je určena ke dni uvedeném v parametru „date“. Datum se čte podle formátu data přihlášeného uživatele; pro datum, které nelze rozpoznat, vrací funkce prázdný řetězec. Parametr „date“ lze zadat i jako rok („2024“) nebo rok a měsíc ve tvaru „2024 / 03“; použije se první den roku, resp. měsíce. Hodnota o čtyřech znacích se přitom vždy čte jako rok a hodnota ve tvaru „rrrr / mm“ jako rok a měsíc; neodpovídají-li platnému roku (1 až 9999) a měsíci (1 až 12), například „2024 / 13“, vrací funkce „0“.
Příklad:
NGDPH(2, 1.1.2000)
// Vrací zvýšenou sazbu DPH k danému dni, např. „22“
double NGDPH(double base, string type1, double rate, string type2)
Použití: HTML, JavaScript, Skript
Popis: Funkce spočítá v závislosti na parametru „type2“ buď částku, nebo hodnotu DPH. Pro výpočet je použita základní částka definovaná parametrem „base“ zaokrouhlená na dvě desetinná místa a sazba DPH definovaná parametrem „rate“. Parametr „type1“ specifikuje blíže hodnotu parametru „base“.
Možné hodnoty parametru „type1“:
- bezdph – parametr 1 je suma bez DPH
- sdph – parametr 1 je suma s DPH
Možné hodnoty parametru „type2“:
- bezdph – vypočítá základ daně
- dph – vypočítá hodnotu DPH
- zdph – vypočítá hodnotu DPH dopočtenou tak, aby částka s DPH byla zaokrouhlená nahoru na celé číslo
- dph1 – vypočítá hodnotu DPH, je-li sazba „rate“ větší než 0 a nejvýše 15 % (snížená sazba); jinak vrací 0
- zdph1 – vypočítá hodnotu DPH dopočtenou tak, aby částka s DPH byla zaokrouhlená nahoru na celé číslo, je-li sazba „rate“ větší než 0 a nejvýše 15 %; jinak vrací 0
- dph2 – vypočítá hodnotu DPH, je-li sazba „rate“ větší než 15 % a menší než 100 % (zvýšená sazba); jinak vrací 0
- zdph2 – vypočítá hodnotu DPH dopočtenou tak, aby částka s DPH byla zaokrouhlená nahoru na celé číslo, je-li sazba „rate“ větší než 15 % a menší než 100 %; jinak vrací 0
- sdph – vypočítá částku s DPH
- zsdph – vypočítá částku s DPH zaokrouhlenou nahoru na celé číslo
- zsdph-1 – vypočítá částku s DPH zaokrouhlenou matematicky na celé číslo
- zsdph-2 – vypočítá částku s DPH zaokrouhlenou na 50 haléřů (záporné částky souměrně podle absolutní hodnoty)
Zaokrouhlení nahoru u hodnot „zdph“, „zdph1“, „zdph2“ a „zsdph“ znamená zaokrouhlení směrem ke kladným číslům, takže záporná částka s DPH se zaokrouhlí směrem k nule (například -112,40 na -112).
Je-li parametr „type1“ roven „sdph“, lze jako parametr „type2“ použít jen hodnoty „bezdph“, „dph“, „dph1“, „dph2“ a „sdph“; ostatní hodnoty vrací 0. Na velikosti písmen hodnot parametrů „type1“ a „type2“ nezáleží; jiná hodnota parametru „type1“ nebo „type2“ vrací 0.
Volitelný pátý parametr s hodnotou „true“ přepne výpočet pro parametr „type1“ rovný „bezdph“ do režimu vyúčtování DPH: hodnoty „dph“, „zdph“, „dph1“, „zdph1“, „dph2“ a „zdph2“ vrací 0, hodnoty „bezdph“, „sdph“ a „zsdph“ vrací hodnotu DPH zaokrouhlenou na dvě desetinná místa, „zsdph-1“ hodnotu DPH zaokrouhlenou matematicky na celé číslo a „zsdph-2“ hodnotu DPH zaokrouhlenou na 50 haléřů.
Příklad:
NGDPH(-10.55, bezdph, 19, sdph)
// Vrací „-12,55“
NGDPH(100, sdph, NGDPH(1), dph)
string ngef(string id, string arg0, string arg1, string arg2, ...)
Použití: HTML, JavaScript, Skript
Popis: Funkce spustí externí funkci zadanou parametrem „id“, a vrací její návratovou hodnotu. Parametry „arg0“, „arg1“, „arg2“ atd. jsou do externí funkce předány jako „string[] args“.
Parametr „id“ součástí pole „args“ není. Pole „args“ obsahuje pouze parametry uvedené za parametrem „id“, a má tedy vždy o jeden prvek méně, než kolik parametrů má samotné volání funkce „ngef“. Parametr „arg0“ odpovídá prvku „args[0]“, parametr „arg1“ prvku „args[1]“ a tak dále. Je-li funkce „ngef“ volána pouze s parametrem „id“, je pole „args“ prázdné a jeho vlastnost „Length“ má hodnotu nula.
Všechny parametry jsou do externí funkce předány jako text, a to i tehdy, mají-li podobu čísla nebo data. Vynechaný parametr je předán jako prázdný řetězec a počet prvků pole „args“ tím není dotčen.
Detailní popis externích funkcí je uveden v samostatné příručce Externí funkce.
Příklad:
ngef(MyFirstFunction, A, B, C, 1, 2, 3, 1.1.2000, ...)
ngef(MyFirstFunction, A, B, C)
// id = „MyFirstFunction“, args.Length = 3
// args[0] = „A“, args[1] = „B“, args[2] = „C“
ngef(MyFirstFunction)
// id = „MyFirstFunction“, args.Length = 0
ngef(MyFirstFunction, A, , C)
// id = „MyFirstFunction“, args.Length = 3
// args[0] = „A“, args[1] = „“, args[2] = „C“
string ngef2(string id, string arg0, string arg1, string arg2, ...)
Použití: Vizuální ovládací prvky
Popis: Funkce spustí externí funkci zadanou parametrem „id“ ve vizuálním ovládacím prvku, a vrací její návratovou hodnotu. Parametry „arg0“, „arg1“, „arg2“ atd. jsou do externí funkce předány jako „string[] args“. Pro samotné spuštění externí funkce je nutné, aby volání funkce „ngef2“ bylo uloženo v hodnotě ovládacího prvku „TextBox“ nebo „TextArea“, nastaveného „Jen ke čtení“ a jako „Skryté pole“. Ovládací prvky „TextBox“ a „TextArea“, které mají jako výchozí hodnotu nastavené volání externí funkce „ngef2“, a zároveň mají zaškrtnuté vyplnění výchozí hodnoty při každém otevření editačního formuláře, mohou mít v databázi prázdnou hodnotu, a přesto se při zobrazení záznamu mimo editační formulář (například v nahlížecí tabulce, stromu, kalendáři, výběrovém dialogu, exportu, tiskové šabloně nebo v těle e-mailu; ne však v exportu se zaškrtnutým polem „Zakázat vyhodnocení externích funkcí“ ani v exportu pro zpětný import z Excelu) vyhodnotí externí funkce nastavená jako výchozí hodnota. Výchozí hodnota se takto použije jen tehdy, neobsahuje-li proměnné (znak „#“). Při volání funkce „ngef2“ se automaticky přidá poslední parametr s ID zobrazovaného záznamu; v externí funkci je tedy ID zobrazovaného záznamu posledním prvkem pole „args“ a pole má o jeden prvek více, než kolik parametrů je za parametrem „id“ uvedeno v zápisu volání. Počet a pořadí parametrů se jinak shoduje s funkcí „ngef“. Vyhodnotí se jen hodnota, která tvoří jediné volání funkce „ngef2“. Parametry se externí funkci předají doslovně, takže se v nich vnořená volání funkcí ani proměnné nevyhodnotí; hodnotu, která jediným voláním není nebo obsahuje dvojitou uvozovku v parametru, který není celý uzavřený do dvojitých uvozovek, zobrazí NET Genium jako text. Hodnotu ovládacího prvku jen ke čtení, jehož výchozí hodnota začíná voláním „ngef2“, nelze ve formuláři změnit pomocí JavaScriptu. Zapisuje-li volání „ngef2“ do ovládacího prvku skript, je nutné u prvku zaškrtnout pole „Zakázat změnu hodnoty pomocí JavaScriptu“, jinak může hodnotu ve formuláři změnit uživatel.
Příklad:
ngef2(MyFirstFunction, A, B, C, 1, 2, 3, 1.1.2000, 123, ...)
ngef2(MyFirstFunction, A, B)
// id = „MyFirstFunction“, args.Length = 3
// args[0] = „A“, args[1] = „B“, args[2] = ID zobrazovaného záznamu
string NGVAT()
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací seznam všech států oddělených středníkem, pro které lze použít funkci „NGVAT“ s parametry.
Příklad:
NGVAT()
// Vrací ""Afghanistan;Albania;Algeria;American Samoa;Andorra;Angola;Anguilla;Antarctica;Antigua and Barbuda;Argentina;Armenia;
Aruba;Australia;Austria;Azerbaijan;Bahamas;Bahrain;Bangladesh;Barbados;Belarus;Belgium;Belize;Benin;Bermuda;Bhutan;Bolivia;
Bosnia and Herzegovina;Botswana;Bouvet Island;Brazil;British Indian Ocean Territories;Brunei Darussalam;
Bulgaria;Burkina Faso;Burundi;Cambodia;Cameroon;Canada;Cape Verde;Cayman Islands;Central African Republic;Chad;
Chile;China, People's Republic of;Christmas Island;Cocos Islands;Colombia;Comoros;Congo;Cook Islands;Costa Rica;
Cote D'ivoire;Croatia;Cuba;Cyprus;Czech Republic;Denmark;Djibouti;Dominica;Dominican Republic;East Timor;
Ecuador;Egypt;El Salvador;Equatorial Guinea;Eritrea;Estonia;Ethiopia;Falkland Islands;Faroe Islands;Fiji;Finland;
France;French Guiana;French Polynesia;French Southern Territories;FYROM;Gabon;Gambia;Georgia;
Germany;Ghana;Gibraltar;Greece;Greenland;Grenada;Guadeloupe;Guam;Guatemala;Guinea;Guinea-Bissau;Guyana;Haiti;
Heard Island And Mcdonald Islands;Honduras;Hong Kong;Hungary;Iceland;India;Indonesia;
Iran;Iraq;Ireland;Israel;Italy;Jamaica;Japan;Jordan;Kazakhstan;Kenya;Kiribati;Korea, Democratic People's Republic of;
Korea, Republic of;Kuwait;Kyrgyzstan;Lao Peoples Democratic Republic;Latvia;Lebanon;Lesotho;Liberia;
Libyan Arab Jamahiriya;Liechtenstein;Lithuania;Luxembourg;Macau;Madagascar;Malawi;Malaysia;Maldives;Mali;
Malta;Marshall Islands;Martinique;Mauritania;Mauritius;Mayotte;Mexico;Micronesia;Moldova;Monaco;
Mongolia;Montenegro;Montserrat;Morocco;Mozambique;Myanmar;Namibia;Nauru;Nepal;Netherlands;Netherlands Antilles;New Caledonia;
New Zealand;Nicaragua;Niger;Nigeria;Niue;Norfolk Island;Northern Mariana Islands;Norway;Oman;Pakistan;
Palau;Panama;Papua New Guinea;Paraguay;Peru;Philippines;Pitcairn;Poland;Portugal;Puerto Rico;Qatar;Reunion;Romania;
Russian Federation;Rwanda;Saint Helena;Saint Kitts and Nevis;Saint Lucia;Saint Pierre and Miquelon;
Saint Vincent and The Grenadines;Samoa;San Marino;Sao Tome and Principe;Saudi Arabia;Senegal;Serbia;Seychelles;
Sierra Leone;Singapore;Slovakia;Slovenia;Solomon Islands;Somalia;South Africa;South Georgia and Sandwich Islands;
Spain;Sri Lanka;Sudan;Suriname;Svalbard and Jan Mayen;Swaziland;Sweden;Switzerland;Syrian Arab Republic;Taiwan;Tajikistan;
Tanzania;Thailand;Togo;Tokelau;Tonga;Trinidad and Tobago;Tunisia;Turkey;Turkmenistan;Turks and Caicos Islands;Tuvalu;
Uganda;Ukraine;United Arab Emirates;United Kingdom;Uruguay;USA;Uzbekistan;Vanuatu;Vatican City State;Venezuela;Vietnam;
Virgin Islands (British);Virgin Islands (U.S.);Wallis And Futuna Islands;Western Sahara;Yemen;
Zaire;Zambia;Zimbabwe""
double NGVAT(double base, DateTime date, string country, string dic)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací vypočtenou částku DPH, kterou je třeba zaplatit při dodávce zboží do státu zadaného parametrem „country“. Parametr „base“ definuje peněžní základ. Parametr „date“ definuje datum zdanitelného plnění a parametr „dic“ definuje DIČ odběratele. Datum se čte podle formátu data přihlášeného uživatele; pro datum, které nelze rozpoznat, vrací funkce prázdný řetězec. Pokud odběratel nemá přidělené DIČ, parametr bude prázdný. Vrácená částka není zaokrouhlená a její desetinný oddělovač odpovídá jazyku přihlášeného uživatele.
Stát se zadává názvem ze seznamu, který vrací funkce „NGVAT“ bez parametrů, nebo dvoupísmenným kódem podle ISO 3166-1 (CZ, DE, ...). Funkce vrací DPH v základní sazbě České republiky pro Českou republiku a pro stát, který je k datu zdanitelného plnění členem Evropské unie, pokud je parametr „dic“ prázdný. V ostatních případech, včetně neznámého státu, vrací 0.
Příklad:
NGVAT(1500.20, #today#, Germany, DE123456789)
NGVAT(1500.20, #today#, DE, DE123456789)
string NGVATRATES(string country)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací sazby DPH oddělené středníkem v dané zemi (CZ, DE, HU, SK, ...) zadané parametrem „country“, platné k dnešnímu dni. Za sazbami je vždy uvedena nulová sazba „0“. Desetinná sazba se vypíše s desetinným oddělovačem podle jazyka přihlášeného uživatele. Je-li parametr „country“ prázdný, použije se Česká republika. Funkce zná sazby jen členských států Evropské unie a kód země je nutné zapsat velkými písmeny; pro jiný stát nebo kód zapsaný malými písmeny vrací funkce prázdný řetězec.
Příklad:
NGVATRATES(DE)
// Vrací sazby DPH platné v Německu k dnešnímu dni, např. „19;7;0“
string NGVATRATES(string country, DateTime date)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací sazby DPH oddělené středníkem v dané zemi (CZ, DE, HU, SK, ...) zadané parametrem „country“, a k danému datu zadaném parametrem „date“. Datum se čte podle formátu data přihlášeného uživatele; pro datum, které nelze rozpoznat, vrací funkce prázdný řetězec. Řecko lze zadat kódem GR i EL. Desetinná sazba se vypíše s desetinným oddělovačem podle jazyka přihlášeného uživatele. Je-li parametr „country“ prázdný, použije se Česká republika. Funkce zná sazby jen členských států Evropské unie a kód země je nutné zapsat velkými písmeny; pro jiný stát nebo kód zapsaný malými písmeny vrací funkce prázdný řetězec.
Příklad:
NGVATRATES(DE, 5.5.2012)
// Vrací „19;7;0“
void NOBACKGROUND
Použití: Poznámka editačního formuláře nebo název ovládacího prvku HTML (tělo ovládacího prvku musí zůstat prázdné)
Popis: Funkce zahájí blok ovládacích prvků, které nepoužívají barevné pozadí v levém sloupci s názvem ovládacího prvku. V uživatelském režimu se tlačítka, nahlížecí tabulky DataGrid a LiteDataGrid a vizuální ovládací prvky Calendar, TimeTable, Planner, Kanban, Chart, Map a Tree, které nejsou přichycené k předchozímu ovládacímu prvku, zobrazují v bloku bez levého sloupce s názvem, od levého okraje formuláře. Zahájený blok, který není ukončen pomocí funkce „/NOBACKGROUND“, ukotví tlačítka „Uložit“, „Smazat“ a „Zpět“. Tato tlačítka pak nebudou plovoucí a budou se zobrazovat vždy až na konci editačního formuláře.
Příklad:
// V poznámce editačního formuláře se funkce zapisuje se závorkami
NOBACKGROUND()
// V názvu ovládacího prvku HTML se zapisuje bez závorek, zápis „NOBACKGROUND()“ se v něm neuplatní
NOBACKGROUND
void /NOBACKGROUND
Použití: Název ovládacího prvku HTML – tělo ovládacího prvku musí zůstat prázdné
Popis: Funkce zakončí blok ovládacích prvků, které nepoužívají barevné pozadí v levém sloupci s názvem ovládacího prvku.
Příklad:
/NOBACKGROUND
void OBSOAS(int form, int id)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce načte záznam zadaný parametrem „id“ v editačním formuláři zadaném parametrem „form“, a spustí skripty OnBeforeSave, a následně OnAfterSave.
- Parametr „form“ může obsahovat ID i identifikátor editačního formuláře, parametr „id“ jedno ID nebo seznam ID oddělených středníkem; neexistující záznamy se přeskočí.
- Každý záznam se zpracuje a potvrdí samostatně (skript „OnBeforeSave“ s uložením záznamu v jedné transakci, skript „OnAfterSave“ v další), takže ho pozdější chyba volajícího skriptu nevrátí. Chyba ve skriptu „OnBeforeSave“ nebo „OnAfterSave“ zpracovávaného záznamu naopak ukončí volající skript – zbývající záznamy se nezpracují a dříve zpracované zůstanou uložené. Skončí-li chybou až skript „OnAfterSave“, zůstane uložený i zpracovávaný záznam.
- Funkce čte jen potvrzená data. Zápisy volajícího skriptu, které mají skripty záznamu vidět, je nutné předem potvrdit funkcí „COMMIT()“.
- Funkce nedoplňuje výchozí hodnoty a neprovádí validaci formuláře. Respektuje zákaz spouštění skriptů na formuláři i funkci „SKIPSAVE()“; navigace naplánovaná ve skriptech záznamu se neprovede. Skripty naplánované funkcí „SCHEDULESCRIPT“ ve skriptu „OnAfterSave“ zpracovávaného záznamu se provedou hned po jeho uložení a jejich chyba volající skript nepřeruší, jen se zapíše do logového souboru „Errors.log“; skripty naplánované ve skriptu „OnBeforeSave“ se neprovedou.
- V testovacím režimu ani v demo režimu (soubor „Config\Demo.txt“) se funkce neprovede.
- Volání funkce nad týmž formulářem z jeho vlastních skriptů „OnBeforeSave“ nebo „OnAfterSave“ se zacyklí.
Příklad:
A = StringArray(SQL("SELECT id FROM ng_form",;))
Cyklus: Pro každé A
OBSOAS(123, #A#)
Další...
int OCR2FILE(string path, string type)
Použití: Skript
Omezení: Funkce není dostupná v cloudové variantě NET Genium Online.
Popis: Funkce převede metodou OCR text ze souboru zadaného parametrem „path“, a vytvoří z něho novou souborovou přílohu definovanou parametrem „type“. Převod vždy provádí OCR server, a to i u souborů MS Word a Excel; nativní převod těchto souborů nabízejí jen funkce OCR2TEXT a OCR2HTML. Vytvoří-li OCR server více souborů, je výsledkem příloha ve formátu ZIP. V testovacím běhu skriptu se funkce neprovádí. Zdrojový soubor je definován parametrem „path“ – plnou cestou k souboru na disku. Výsledkem funkce je ID nově vytvořené souborové přílohy. Podporované typy výstupů jsou „doc“, „docx“, „htm“, „pdf“, „rtf“, „txt“, „xlsx“, „xml“.
Příklad:
OCR2FILE(#rootpath#Temp\zdroj.xlsx, pdf)
int OCR2FILE(string path, string type, string url)
Použití: Skript
Omezení: Funkce není dostupná v cloudové variantě NET Genium Online.
Popis: Funkce převede metodou OCR text ze souboru zadaného parametrem „path“, a vytvoří z něho novou souborovou přílohu definovanou parametrem „type“. Převod vždy provádí OCR server, a to i u souborů MS Word a Excel; nativní převod těchto souborů nabízejí jen funkce OCR2TEXT a OCR2HTML. Vytvoří-li OCR server více souborů, je výsledkem příloha ve formátu ZIP. V testovacím běhu skriptu se funkce neprovádí. Zdrojový soubor je definován parametrem „path“ – plnou cestou k souboru na disku. Výsledkem funkce je ID nově vytvořené souborové přílohy. Podporované typy výstupů jsou „doc“, „docx“, „htm“, „pdf“, „rtf“, „txt“, „xlsx“, „xml“. Samotné OCR rozpoznávání je prováděno samostatnou webovou aplikací na adrese definované parametrem „url“.
Příklad:
OCR2FILE(#rootpath#Temp\zdroj.xlsx, xlsx, https://www.netgenium.com/netgenium_with_ocr)
int OCR2FILE(int file, string type)
Použití: Skript
Popis: Funkce převede metodou OCR text ze souborové přílohy zadané parametrem „file“, a vytvoří z ní novou souborovou přílohu definovanou parametrem „type“. Převod vždy provádí OCR server, a to i u souborů MS Word a Excel; nativní převod těchto souborů nabízejí jen funkce OCR2TEXT a OCR2HTML. Vytvoří-li OCR server více souborů, je výsledkem příloha ve formátu ZIP. V testovacím běhu skriptu se funkce neprovádí. Zdrojová souborová příloha je definována parametrem „file“ – ID souborové přílohy. Výsledkem funkce je ID nově vytvořené souborové přílohy. Podporované typy výstupů jsou „doc“, „docx“, „htm“, „pdf“, „rtf“, „txt“, „xlsx“, „xml“.
Příklad:
OCR2FILE(#ng_priloha#, docx)
int OCR2FILE(int file, string type, string url)
Použití: Skript
Popis: Funkce převede metodou OCR text ze souborové přílohy zadané parametrem „file“, a vytvoří z ní novou souborovou přílohu definovanou parametrem „type“. Převod vždy provádí OCR server, a to i u souborů MS Word a Excel; nativní převod těchto souborů nabízejí jen funkce OCR2TEXT a OCR2HTML. Vytvoří-li OCR server více souborů, je výsledkem příloha ve formátu ZIP. V testovacím běhu skriptu se funkce neprovádí. Zdrojová souborová příloha je definována parametrem „file“ – ID souborové přílohy. Výsledkem funkce je ID nově vytvořené souborové přílohy. Podporované typy výstupů jsou „doc“, „docx“, „htm“, „pdf“, „rtf“, „txt“, „xlsx“, „xml“. Samotné OCR rozpoznávání je prováděno samostatnou webovou aplikací na adrese definované parametrem „url“.
Příklad:
OCR2FILE(#ng_priloha#, pdf, https://www.netgenium.com/netgenium_with_ocr)
Chování společné pro všechny varianty funkce OCR2FILE:
- Typ výstupu lze zadat i s tečkou na začátku (např. „.pdf“).
- U variant s parametrem „path“ může být podle prostředí instance cesta k souboru omezena na povolené adresáře; pokus o přístup mimo ně pak vyvolá výjimku.
- Neexistuje-li zdrojový soubor, vrací funkce „0“.
- Selže-li převod u varianty bez parametru „url“, vrací funkce prázdný řetězec.
- Selže-li převod na samostatné webové aplikaci zadané parametrem „url“, vyvolá funkce výjimku.
- Vyplněný parametr „url“, který není úplnou adresou se schématem „http“ nebo „https“, vyvolá výjimku „OCR2FILE(...) ERROR Invalid URL“; prázdný parametr „url“ přenechá převod OCR serveru.
- V cloudové variantě NET Genium Online funkce touto výjimkou odmítne i adresu, která vede na samotný server nebo do vnitřní sítě nebo jejíž název nelze přeložit; přesměrování přitom nesleduje.
- OCR server rozpoznává text vždy jako český; jazyk rozpoznávání nelze zvolit.
string OCR2HTML(string path)
Použití: HTML, JavaScript, Skript
Omezení: Funkce není dostupná v cloudové variantě NET Genium Online.
Popis: Funkce převede metodou OCR text ze souboru zadaného parametrem „path“, a vrací ho jako textový řetězec ve formátu HTML. Převod ze souborů MS Word nebo Excel je prováděn nativně, v ostatních případech využívá OCR server. Zdrojový soubor je definován parametrem „path“ – plnou cestou k souboru na disku.
Příklad:
OCR2HTML(#rootpath#Temp\zdroj.xlsx)
string OCR2HTML(string path, string url)
Použití: HTML, JavaScript, Skript
Omezení: Funkce není dostupná v cloudové variantě NET Genium Online.
Popis: Funkce převede metodou OCR text ze souboru zadaného parametrem „path“, a vrací ho jako textový řetězec ve formátu HTML. Převod ze souborů MS Word nebo Excel je prováděn nativně, v ostatních případech využívá OCR server. Zdrojový soubor je definován parametrem „path“ – plnou cestou k souboru na disku. Samotné OCR rozpoznávání je prováděno samostatnou webovou aplikací na adrese definované parametrem „url“.
Příklad:
OCR2HTML(#rootpath#Temp\zdroj.xlsx, https://www.netgenium.com/netgenium_with_ocr)
string OCR2HTML(int file)
Použití: HTML, JavaScript, Skript
Popis: Funkce převede metodou OCR text ze souborové přílohy zadané parametrem „file“, a vrací ho jako textový řetězec ve formátu HTML. Převod ze souborů MS Word nebo Excel je prováděn nativně, v ostatních případech využívá OCR server. Zdrojová souborová příloha je definována parametrem „file“ – ID souborové přílohy.
Příklad:
OCR2HTML(#ng_priloha#)
string OCR2HTML(int file, string url)
Použití: HTML, JavaScript, Skript
Popis: Funkce převede metodou OCR text ze souborové přílohy zadané parametrem „file“, a vrací ho jako textový řetězec ve formátu HTML. Převod ze souborů MS Word nebo Excel je prováděn nativně, v ostatních případech využívá OCR server. Zdrojová souborová příloha je definována parametrem „file“ – ID souborové přílohy. Samotné OCR rozpoznávání je prováděno samostatnou webovou aplikací na adrese definované parametrem „url“.
Příklad:
OCR2HTML(#ng_priloha#, https://www.netgenium.com/netgenium_with_ocr)
Chování společné pro všechny varianty funkce OCR2HTML:
- U variant s parametrem „path“ může být podle prostředí instance cesta k souboru omezena na povolené adresáře; pokus o přístup mimo ně ve skriptu vyvolá výjimku, jinde funkce místo výsledku vrátí text chyby.
- Jako adresa samostatné webové aplikace se parametr „url“ použije jen tehdy, začíná-li na „http://“ nebo „https://“; taková adresa, která není platnou úplnou adresou, vyvolá při převodu na samostatné webové aplikaci výjimku „OCR2HTML(...) ERROR Invalid URL“.
- Selže-li převod na samostatné webové aplikaci, vyvolá funkce výjimku.
- V cloudové variantě NET Genium Online funkce odmítne adresu samostatné webové aplikace, která vede na samotný server nebo do vnitřní sítě nebo jejíž název nelze přeložit, a vyvolá výjimku „OCR2HTML(...) ERROR Invalid URL“; přesměrování přitom nesleduje.
- Proměnné zapsané v témže textu se na úrovni volání ani na nadřazených úrovních výrazu nedosadí (dosadí se jen proměnné v parametrech jiných funkcí mimo dvojité uvozovky, které samy volání funkce neobsahují) a zůstanou v něm v zápisu „#...#“; volání funkce proto patří do samostatného textu, například do vlastního kroku skriptu.
- Převádí-li soubor OCR server, rozpoznává text vždy jako český; jazyk rozpoznávání nelze zvolit.
- Není-li zadaná adresa samostatné webové aplikace a převod přes OCR server se nepodaří, převede funkce soubor PDF přímo na prostý text; u ostatních formátů vrací prázdný řetězec.
string OCR2TEXT(string path)
Použití: HTML, JavaScript, Skript
Omezení: Funkce není dostupná v cloudové variantě NET Genium Online.
Popis: Funkce převede metodou OCR text ze souboru zadaného parametrem „path“, a vrací ho jako prostý textový řetězec bez HTML formátování. Převod ze souborů MS Word nebo Excel je prováděn nativně, v ostatních případech využívá OCR server. Zdrojový soubor je definován parametrem „path“ – plnou cestou k souboru na disku.
Příklad:
OCR2TEXT(#rootpath#Temp\zdroj.xlsx)
string OCR2TEXT(string path, string url)
Použití: HTML, JavaScript, Skript
Omezení: Funkce není dostupná v cloudové variantě NET Genium Online.
Popis: Funkce převede metodou OCR text ze souboru zadaného parametrem „path“, a vrací ho jako prostý textový řetězec bez HTML formátování. Převod ze souborů MS Word nebo Excel je prováděn nativně, v ostatních případech využívá OCR server. Zdrojový soubor je definován parametrem „path“ – plnou cestou k souboru na disku. Samotné OCR rozpoznávání je prováděno samostatnou webovou aplikací na adrese definované parametrem „url“.
Příklad:
OCR2TEXT(#rootpath#Temp\zdroj.xlsx, https://www.netgenium.com/netgenium_with_ocr)
string OCR2TEXT(int file)
Použití: HTML, JavaScript, Skript
Popis: Funkce převede metodou OCR text ze souborové přílohy zadané parametrem „file“, a vrací ho jako prostý textový řetězec bez HTML formátování. Převod ze souborů MS Word nebo Excel je prováděn nativně, v ostatních případech využívá OCR server. Zdrojová souborová příloha je definována parametrem „file“ – ID souborové přílohy.
Příklad:
OCR2TEXT(#ng_priloha#)
string OCR2TEXT(int file, string url)
Použití: HTML, JavaScript, Skript
Popis: Funkce převede metodou OCR text ze souborové přílohy zadané parametrem „file“, a vrací ho jako prostý textový řetězec bez HTML formátování. Převod ze souborů MS Word nebo Excel je prováděn nativně, v ostatních případech využívá OCR server. Zdrojová souborová příloha je definována parametrem „file“ – ID souborové přílohy. Samotné OCR rozpoznávání je prováděno samostatnou webovou aplikací na adrese definované parametrem „url“.
Příklad:
OCR2TEXT(#ng_priloha#, https://www.netgenium.com/netgenium_with_ocr)
Chování společné pro všechny varianty funkce OCR2TEXT:
- U variant s parametrem „path“ může být podle prostředí instance cesta k souboru omezena na povolené adresáře; pokus o přístup mimo ně ve skriptu vyvolá výjimku, jinde funkce místo výsledku vrátí text chyby.
- Jako adresa samostatné webové aplikace se parametr „url“ použije jen tehdy, začíná-li na „http://“ nebo „https://“; taková adresa, která není platnou úplnou adresou, vyvolá při převodu na samostatné webové aplikaci výjimku „OCR2TEXT(...) ERROR Invalid URL“.
- Selže-li převod na samostatné webové aplikaci, vyvolá funkce výjimku.
- V cloudové variantě NET Genium Online funkce odmítne adresu samostatné webové aplikace, která vede na samotný server nebo do vnitřní sítě nebo jejíž název nelze přeložit, a vyvolá výjimku „OCR2TEXT(...) ERROR Invalid URL“; přesměrování přitom nesleduje.
- Proměnné zapsané v témže textu se na úrovni volání ani na nadřazených úrovních výrazu nedosadí (dosadí se jen proměnné v parametrech jiných funkcí mimo dvojité uvozovky, které samy volání funkce neobsahují) a zůstanou v něm v zápisu „#...#“; volání funkce proto patří do samostatného textu, například do vlastního kroku skriptu.
- Převádí-li soubor OCR server, rozpoznává text vždy jako český; jazyk rozpoznávání nelze zvolit.
- Není-li zadaná adresa samostatné webové aplikace a převod přes OCR server se nepodaří, převede funkce soubor PDF přímo na prostý text; u ostatních formátů vrací prázdný řetězec.
string PADLEFT(string text, int totalwidth, string pad)
Použití: HTML, JavaScript, Skript
Popis: Funkce doplní textový řetězec zadaný parametrem „text“ zleva znakem zadaným parametrem „pad“ na délku zadanou parametrem „totalwidth“. Parametr „pad“ musí být právě jeden znak (mezeru je nutné uzavřít do dvojitých uvozovek), jinak se volání nevyhodnotí. Text, který je stejně dlouhý nebo delší než „totalwidth“, vrací funkce beze změny.
Příklad:
PADLEFT(x, 5, 0)
// Vrací „0000x“
string PADRIGHT(string text, int totalwidth, string pad)
Použití: HTML, JavaScript, Skript
Popis: Funkce doplní řetězec zadaný parametrem „text“ zprava znakem zadaným parametrem „pad“ na délku zadanou parametrem „totalwidth“. Parametr „pad“ musí být právě jeden znak (mezeru je nutné uzavřít do dvojitých uvozovek), jinak se volání nevyhodnotí. Text, který je stejně dlouhý nebo delší než „totalwidth“, vrací funkce beze změny.
Příklad:
PADRIGHT(x, 5, 0)
// Vrací „x0000“
string PAGEIDENTIFIER(string page)
Použití: HTML, JavaScript, Skript
Popis: Funkce převede text zadaný parametrem „page“ (typicky název webové stránky) na identifikátor: odstraní diakritiku, písmena převede na malá a každý úsek znaků, které nejsou písmenem ani číslicí, nahradí jednou pomlčkou; na konec identifikátoru pomlčku nevloží a na začátek jen tehdy, začíná-li text znakem, který není písmenem ani číslicí. Webovou stránku funkce nevyhledává.
Příklad:
PAGEIDENTIFIER(Kalendář akcí)
// Vrací „kalendar-akci“
string PAGEIDENTIFIER2(string page)
Použití: HTML, JavaScript, Skript
Popis: Funkce převede text zadaný parametrem „page“ (typicky název webové stránky) na identifikátor: odstraní diakritiku, znaky, které nejsou písmenem ani číslicí, vynechá a první písmeno každého slova převede na velké; ostatní písmena ponechá beze změny. Webovou stránku funkce nevyhledává.
Příklad:
PAGEIDENTIFIER2(Kalendář akcí)
// Vrací „KalendarAkci“
double POWER(double number)
Použití: HTML, Skript (jen v číselném výrazu, např. v hodnotě přiřazované do číselné proměnné)
Popis: Funkce vrací druhou mocninu čísla zadaného parametrem „number“.
Příklad:
POWER(-1.23)
// Vrací „1,5129“
POWER(5)
// Vrací „25“
POWER(#A#)
int PRINTATTACHMENT(int button, int id)
Použití: Skript
Omezení: Funkce není dostupná v cloudové variantě NET Genium Online.
Popis: Funkce spustí tisk definovaný na ovládacím prvku zadaném parametrem „button“, výslednou tiskovou sestavu uloží jako novou souborovou přílohu, a vrátí ID této přílohy. Parametr „button“ značí ID tlačítka, které obsluhuje tisk, a parametr „id“ značí ID databázového záznamu, který má být vytištěn. Tlačítko musí být ovládacím prvkem „Button“ editačního formuláře a záznam musí v databázi existovat, jinak funkce vrací „0“. Má-li tlačítko skript, funkce ho před tiskem provede a podle nastavení tlačítka přitom záznam uloží; skript tlačítka i uložení záznamu se potvrdí samostatně, takže je pozdější chyba volajícího skriptu nevrátí. Skriptové proměnné tiskové šablony se převezmou ze skriptu tlačítka; nemá-li tlačítko žádné kroky skriptu, převezmou se z volajícího skriptu. Nemá-li tlačítko tiskovou šablonu, provede se jen jeho skript a funkce vrací „0“. Volby tlačítka „Otevřít formulář pro zadání nové e-mailové zprávy“ a „Otevřít editační formulář“ funkce nepoužije; zaškrtnuté pole „1 vnořený záznam = 1 list (XLS) / 1 dokument (DOC)“ ponechá v šabloně MS Excel jen jeden list a šablonu MS Word vytiskne do jednoho dokumentu. V testovacím běhu skriptu a ve skriptu, ve kterém demo režim potlačuje zápisy, vrací funkce „0“ a nic neprovede.
Příklad:
PRINTATTACHMENT(123, 1)
void PRINTCOLUMNS(int[] cids)
Použití: Poznámka databázového dotazu
Popis: Funkce omezí seznam načítaných sloupců při tisku do tiskové šablony. Sloupce určené k načtení se definují jako pole identifikátorů, kde ID sloupce je stejné jako ID ovládacího prvku, kterým je sloupec definován (např. ID TextBoxu). Funkce se uplatní jen u řádkového dotazu bez omezení počtu načítaných záznamů; u statistického (agregačního) dotazu, u dotazu s vyplněným polem „Načíst pouze prvních“ a v instanci bez platného licenčního klíče (mimo NET Genium Online) nemá účinek. Kromě zadaných sloupců se vždy načtou ID a vlastník záznamu (sloupce „id“ a „userid“) tabulky dotazu i všech připojených tabulek. ID ovládacích prvků lze oddělit čárkou i středníkem; ovládací prvek, který neleží v tabulce dotazu ani v žádné připojené tabulce, se ignoruje.
Příklad:
PRINTCOLUMNS(1, 2, 3)
void PROTECTFORM(int form, int id, string message)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce ověří, zda je záznam zadaný parametrem „id“ v editačním formuláři zadaném parametrem „form“ zamčený. Pokud ano, vyvolá přerušení zadané parametrem „message“. Zprávu lze zadat vícejazyčně. Za parametr „message“ se automaticky doplní text „Záznam ID {2} je uzamčen uživatelem {0} do {1}.“, kde {0} představuje přihlašovací jméno uživatele, který záznam zamkl, {1} čas, do kterého je záznam uzamčen (u zámku, který nekončí dnes, včetně data), a {2} ID záznamu. Má-li záznam zamčený sám uživatel, který skript spustil (například v jiném okně), doplní se místo toho text „Záznam ID {2} máte otevřený v jiném okně nebo prohlížeči a zůstane uzamčený do {1}.“ V testovacím spuštění skriptu se funkce neprovede. Volání funkce má smysl pouze v případě, kdy je formulář nastaven pro uzamykání záznamů. Funkce se vyhodnocuje ještě před spuštěním skriptu spolu s celým komentářovým řádkem, na kterém je zapsána – zapisuje se proto na samostatný komentářový řádek, jinak by se ostatní funkce na témže řádku provedly dvakrát.
Příklad:
PROTECTFORM(1, 1, Není dovolena editace záznamu.)
// Vrací například „Není dovolena editace záznamu. Záznam ID 1 je uzamčen uživatelem Administrator do 12:30.“
void PROTECTSCRIPT(int form, int n, string message)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce ověří, zda je spuštěn skript zadaný parametrem „form“ a „n“. Pokud ano, vyvolá přerušení zadané parametrem „message“. Zprávu lze zadat vícejazyčně. Parametry „form“ a „n“ je možné zjistit v administrátorském režimu v tooltipu, který se zobrazí po zastavení ukazatele myši nad odkazem „Upravit skript“. Za spuštěný se považuje skript tlačítka a skripty „OnBeforeSave“ a „OnBeforeDelete“. Funkce se vyhodnocuje ještě před spuštěním skriptu spolu s celým komentářovým řádkem, na kterém je zapsána – zapisuje se proto na samostatný komentářový řádek, jinak by se ostatní funkce na témže řádku provedly dvakrát.
Příklad:
PROTECTSCRIPT(1, 10, Není dovoleno spuštění skriptu ABC. Vyčkejte prosím na jeho dokončení.)
string QRPAYMENTCODE(string account, string countrycode, double amount, string currency, string vs, string ss, string ks)
Použití: HTML, JavaScript, Skript
Popis: Funkce vygeneruje řetězec QR platebního kódu ve standardu SPD (Short Payment Descriptor) pro platbu převodem. Vrací text kódu, nikoli obrázek. Parametry:
- „account“ – číslo bankovního účtu ve formátu IBAN, nebo v národním formátu „předčíslí-číslo/kód banky“ (např. „19-2000145399/0800“), jaký se používá v České republice a na Slovensku; účet jiné země je nutné zadat jako IBAN. Hodnota, která začíná dvěma písmeny, se použije jako IBAN bez kontroly platnosti.
- „countrycode“ – dvoupísmenný kód země (např. „CZ“), podle kterého se číslo účtu v národním formátu převede na IBAN; prázdná hodnota znamená „CZ“ a kód, který není tvořen dvěma písmeny, vyvolá při převodu čísla účtu v národním formátu chybu
- „amount“ – částka; v kódu je vždy uvedena se dvěma desetinnými místy
- „currency“ – kód měny (např. „CZK“, „EUR“)
- „vs“ – variabilní symbol
- „ss“ – specifický symbol
- „ks“ – konstantní symbol
Prázdný variabilní, specifický a konstantní symbol jsou ve výsledném kódu vynechány. Zprávu pro příjemce funkce nepodporuje.
Příklad:
QRPAYMENTCODE(CZ6508000000192000145399, CZ, 1500, CZK, 1234567890, , 0308)
// Vrací „SPD*1.0*ACC:CZ6508000000192000145399*AM:1500.00*CC:CZK*X-VS:1234567890*X-KS:0308“
QRPAYMENTCODE(#ng_ucet#, CZ, #ng_castka#, CZK, #ng_vs#, , )
// Vygeneruje QR platební kód z hodnot polí formuláře
string READURL(string text)
Použití: HTML, JavaScript, Skript
Popis: Funkce načte obsah webové stránky definované parametrem „text“, a vrací její obsah. Funkce načítá jen adresy se schématem „http“ nebo „https“; v cloudové variantě NET Genium Online navíc odmítne adresy vedoucí na samotný server a do vnitřní sítě i adresy, jejichž název nelze přeložit, a nesleduje přesměrování (vrátí obsah odpovědi s přesměrováním). Odmítnutá adresa vyvolá výjimku „READURL(...) ERROR Invalid URL“, a to i v testovacím běhu skriptu; v prvku HTML tím zastaví načtení stránky. Nepodaří-li se stránku načíst (například server vrátí chybovou odpověď nebo je adresa nedostupná), vrací funkce prázdný řetězec. Obsah stránky se čte v kódování UTF-8.
Příklad:
READURL(https://www.netgenium.com)
void RECYCLEPOOL(string applicationpool)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Omezení: Funkce není dostupná v cloudové variantě NET Genium Online.
Popis: Funkce recykluje aplikační pool zadaný parametrem „applicationpool“. Skript, ve kterém je uvedena funkce „RECYCLEPOOL“, musí být spouštěn výhradně pomocí programu „RunScript.exe“.
Příklad:
RECYCLEPOOL(DefaultAppPool)
void REDUCEATTACHMENT(int file, int quality)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce změní kvalitu obrázku zadaného parametrem „file“ na hodnotu zadanou parametrem „quality“ (rozsah 1–99) a uloží soubor do formátu „jpg“. Pokud je soubor v jiném formátu (bmp, gif, jpe, jpeg, png), je automaticky zkonvertován na „jpg“ a záznam v databázi příloh je odpovídajícím způsobem aktualizován. Soubory v jiných formátech než obrazových jsou ignorovány. Soubor s obrazovou příponou, který nelze načíst jako obrázek, zůstane beze změny. Parametr „quality“ musí být v rozsahu 1–99; hodnoty 0 a 100 funkci deaktivují.
Příklad:
REDUCEATTACHMENT(#ng_obrazek#, 25)
// Sníží kvalitu obrázku na 25 % a uloží jako JPG
REDUCEATTACHMENT(#ng_obrazek#, 75)
// Sníží kvalitu obrázku na 75 % (kompromis mezi kvalitou a velikostí)
REDUCEATTACHMENT(#ng_png#, 90)
// PNG soubor bude zkonvertován na JPG s kvalitou 90 %
void REDUCEATTACHMENT(int file, int maxwidth, int maxheight)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce zmenší obrázek zadaný parametrem „file“ tak, aby nepřesáhl maximální šířku „maxwidth“ a výšku „maxheight“ v pixelech (zachovává poměr stran), a uloží do formátu „jpg“. Pro zmenšení obrázku bude použita nejvyšší možná kvalita. Zmenšuje-li se obrázek podle parametru „maxwidth“ nebo „maxheight“ s hodnotou přesně 120 a má-li poměr stran menší než 1,5, vytvoří se místo toho rychlý náhled. Funkce zpracovává pouze obrazové formáty: bmp, gif, jpe, jpeg, jpg, png. Soubory v jiných formátech jsou ignorovány. Soubor s obrazovou příponou, který nelze načíst jako obrázek, zůstane beze změny. Zmenšuje-li se obrázek v jiném formátu než jpg, je automaticky zkonvertován a záznam v databázi příloh aktualizován. Nepřesahuje-li obrázek zadané rozměry, zůstane soubor beze změny, včetně formátu. Hodnota 0 v parametru „maxwidth“ nebo „maxheight“ nastavuje daný rozměr jako neomezený.
Příklad:
REDUCEATTACHMENT(#ng_obrazek#, 500, 500)
// Zmenší obrázek tak, aby byl maximálně 500×500 pixelů (zachová poměr stran)
REDUCEATTACHMENT(#ng_fotografie#, 1920, 0)
// Omezí šířku na 1920 px, výška není omezena
void REDUCEATTACHMENT(int file, int maxwidth, int maxheight, bool highquality)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce zmenší obrázek zadaný parametrem „file“ tak, aby nepřesáhl maximální šířku „maxwidth“ a výšku „maxheight“ v pixelech (zachovává poměr stran), a uloží do formátu „jpg“. Parametr „highquality“ nastavený na „true“ značí, že pro zmenšení obrázku bude použita nejvyšší možná kvalita. V opačném případě bude použita standardní (rychlejší, ale méně kvalitní) interpolace. Zmenšuje-li se obrázek podle parametru „maxwidth“ nebo „maxheight“ s hodnotou přesně 120 a má-li poměr stran menší než 1,5, vytvoří se místo toho rychlý náhled. Funkce zpracovává pouze obrazové formáty: bmp, gif, jpe, jpeg, jpg, png. Soubor s obrazovou příponou, který nelze načíst jako obrázek, zůstane beze změny. Nepřesahuje-li obrázek zadané rozměry, zůstane soubor beze změny, včetně formátu; převod na formát „jpg“ nastane jen při zmenšení.
Příklad:
REDUCEATTACHMENT(#ng_obrazek#, 500, 500, true)
// Zmenší obrázek na max. 500×500 px s nejvyšší možnou kvalitou
REDUCEATTACHMENT(#ng_obrazek#, 500, 500, false)
// Zmenší obrázek na max. 500×500 px se standardní (rychlejší) kvalitou
string REMOVEDIACRITICS(string text)
Použití: HTML, JavaScript, Skript
Popis: Funkce odebere diakritiku z textového řetězce zadaného parametrem „text“.
Příklad:
REMOVEDIACRITICS(Příliš žluťoučký kůň pěl ďábelské ódy)
// Vrací „Prilis zlutoucky kun pel dabelske ody“
string REMOVEIFCONTAINS(string text [, string search1, string search2, ...])
Použití: HTML, JavaScript, Skript
Popis: Funkce vynuluje parametr „text“, pokud obsahuje podřetězec „search1“ nebo „search2“ nebo „search3“, atd. Prázdný podřetězec obsahuje každý text, takže s prázdným hledaným podřetězcem vrací funkce vždy prázdný řetězec; dosazuje-li se hledaný podřetězec z proměnné, která může být prázdná, je třeba prázdnou hodnotu ošetřit.
Příklad:
REMOVEIFCONTAINS(Faktura je zaevidována, je)
// Vrací „“ (prázdný řetězec)
string REMOVEIFENDSWITH(string text [, string search1, string search2, ...])
Použití: HTML, JavaScript, Skript
Popis: Funkce vynuluje parametr „text“, pokud končí podřetězcem „search1“ nebo „search2“ nebo „search3“, atd. Prázdným podřetězcem končí každý text, takže s prázdným hledaným podřetězcem vrací funkce vždy prázdný řetězec; dosazuje-li se hledaný podřetězec z proměnné, která může být prázdná, je třeba prázdnou hodnotu ošetřit.
Příklad:
REMOVEIFENDSWITH(Faktura je zaevidována, váno, vány, vána)
// Vrací „“ (prázdný řetězec)
string REMOVEIFEQUALS(string text [, string search1, string search2, ...])
Použití: HTML, JavaScript, Skript
Popis: Funkce vynuluje parametr „text“, pokud se shoduje s podřetězcem „search1“ nebo „search2“ nebo „search3“, atd.
Příklad:
REMOVEIFEQUALS(Schváleno, Schváleno)
// Vrací „“ (prázdný řetězec)
string REMOVEIFSTARTSWITH(string text [, string search1, string search2, ...])
Použití: HTML, JavaScript, Skript
Popis: Funkce vynuluje parametr „text“, pokud začíná podřetězcem „search1“ nebo „search2“ nebo „search3“, atd. Prázdným podřetězcem začíná každý text, takže s prázdným hledaným podřetězcem vrací funkce vždy prázdný řetězec; dosazuje-li se hledaný podřetězec z proměnné, která může být prázdná, je třeba prázdnou hodnotu ošetřit.
Příklad:
REMOVEIFSTARTSWITH(Faktura je zaevidována, Fact, Fakt, Faak)
// Vrací „“ (prázdný řetězec)
string REMOVETAGS(string html)
Použití: HTML, JavaScript, Skript
Popis: Funkce odstraní všechny tagy z řetězce zadaného parametrem „html“. Spolu se značkami „title“, „script“ a „style“ odstraní i jejich obsah; entity HTML (například „<“) ponechá nedekódované.
Příklad:
REMOVETAGS(<p>abc</p><p>abc</p>)
// Vrací „abcabc“
string REMOVEWHITESPACES(string value)
Použití: HTML, JavaScript, Skript
Popis: Funkce odstraní z řetězce zadaného parametrem „value“ všechny bílé znaky (mezery, tabulátory, konce řádků i nezlomitelné mezery).
Příklad:
REMOVEWHITESPACES(a b c)
// Vrací „abc“
void RENAMEATTACHMENT(int file, string name)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce přejmenuje souborovou přílohu zadanou parametrem „file“ na jméno zadané parametrem „name“ bez přípony. Obsahuje-li parametr „name“ i příponu souboru, přípona se nezdvojí; text za poslední tečkou, který se s příponou souboru neshoduje, zůstane součástí jména. Znaky, které název souboru nesmí obsahovat (lomítko, zpětné lomítko, dvojtečka, hvězdička, otazník, dvojitá uvozovka, znaky menší a větší než a svislá čára), se z nového jména vypustí a tabulátor se nahradí mezerou; nezbude-li ze jména nic kromě přípony, příloha se nepřejmenuje.
Příklad:
RENAMEATTACHMENT(#ng_priloha#, Nové jméno souboru)
void RENAMEATTACHMENT(int file, string prefix, string postfix)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce přejmenuje souborovou přílohu zadanou parametrem „file“ na nové jméno, které vznikne spojením hodnoty parametru „prefix“, původního názvu souboru bez přípony, hodnoty parametru „postfix“, a následně přípony. Znaky, které název souboru nesmí obsahovat (lomítko, zpětné lomítko, dvojtečka, hvězdička, otazník, dvojitá uvozovka, znaky menší a větší než a svislá čára), se z nového jména vypustí a tabulátor se nahradí mezerou; nezbude-li ze jména nic kromě přípony, příloha se nepřejmenuje.
Příklad:
RENAMEATTACHMENT(#ng_priloha#, A-, -B)
string REPLACE(string text, string oldvalue, string newvalue)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací textový řetězec zadaný parametrem „text“, ve kterém byly nahrazeny všechny výskyty řetězce uloženého v parametru „oldvalue“ (vzor) řetězcem uloženým v parametru „newvalue“ (náhrada). V JavaScriptu se zápis malými písmeny nevyhodnotí a zůstane zachován pro prohlížeč.
Příklad:
REPLACE(Dobrý den NET Genium, e, é)
// Vrací „Dobrý dén NET Génium“
string REPLACEIFEQUALS(string compare1, string compare2, string text)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací hodnotu parametru „text“, je-li hodnota parametru „compare1“ rovna hodnotě parametru „compare2“. V opačném případě vrací hodnotu parametru „compare1“.
Příklad:
REPLACEIFEQUALS(abc, abc, def)
// Vrací „def“
string REPLACETAB(string items, string olditem, string newitem)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací seznam položek oddělených tabulátorem zadaný parametrem „items“, ve kterém byly nahrazeny všechny položky rovné parametru „olditem“ (vzor) za hodnotu zadanou parametrem „newitem“ (náhrada).
Příklad:
REPLACETAB(abc#tab#abcd#tab#def, abc, def)
// Vrací „def#tab#abcd#tab#def“
string REPLYBODY(string from, string to, DateTime date, string body)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací hodnotu parametru „body“ jako naformátovanou emailovou odpověď. Tělo odesílané emailové zprávy začíná volným řádkem, kam lze napsat text jako odpověď na doručený e-mail. Na dalším řádku je zobrazen aktuální čas odpovědi definovaný parametrem „date“, vypsaný vždy v anglickém formátu (např. „Tuesday, February 29, 2000 12:34 PM“), a odkaz na e-mailovou adresu uloženou v parametru „from“; textem odkazu je jméno odesílatele, je-li v adrese uvedeno, jinak samotná adresa. Tento parametr představuje e-mailovou adresu odesílatele původní zprávy. Na dalších řádcích se nachází text původní zprávy (parametr „body“) ohraničený po levé straně svislou čárou. Neobsahuje-li parametr „body“ znaky „<“ ani „>“, nahradí funkce v něm konce řádků CR LF zalomením řádku; jinak ho vloží beze změny jako HTML kód. Bílé znaky (mezery, tabulátory i konce řádků) na začátku a na konci parametru „body“ funkce v obou případech odstraní. Neplatné datum v parametru „date“ se vypíše jako „Monday, January 1, 0001 12:00 AM“. Parametr „to“ je emailová adresa příjemce původní zprávy a momentálně s ním funkce „REPLYBODY“ nepracuje.
Příklad:
REPLYBODY(info@netgenium.com, info@netgenium.com, #now#, body)
string REQUESTFORM(string name)
Použití: HTML, JavaScript, Skript
Popis: Funkce při uskutečnění HTML postbacku vrací hodnotu formulářového prvku zadaného parametrem „name“. Z vrácené hodnoty jsou odstraněny potenciálně nebezpečné HTML značky a mezery na začátku a na konci. Hodnotu dodává internetový prohlížeč a jinak ji funkce nekóduje; do HTML se proto vkládá přes funkci „HTMLENCODE“.
Příklad:
<input name="C5$tb" type="text" value="Nová faktura" id="C5_tb" style="width:110px;">
REQUESTFORM(C5$tb)
// Vrací „Nová faktura“
string REQUESTFORMVALUES(string control)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací všechna pole odeslaná z formuláře při aktuálním postbacku, každé na samostatném řádku ve tvaru „název: hodnota“. Parametr „control“ funkce nevyužívá, musí však být uveden. Hodnoty se nekódují; výsledek je určen především k ladění a nemá se vypisovat do HTML.
Příklad:
REQUESTFORMVALUES(1)
// Vrací např.
// ng-pk: 4f1c...
// C5$tb: Nová faktura
string REQUESTQUERYSTRING(string attribute)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací hodnotu atributu z aktuální URL. Název atributu je specifikován parametrem „attribute“. Vrácená hodnota je HTML kódovaná (např. znak „<“ se vrátí jako „<“); původní podobu vrátí funkce „HTMLDECODE“.
Příklad:
https://www.netgenium.com?id=123&next=true
REQUESTQUERYSTRING(id)
// Vrací „123“
void RESETDATAGRIDSETTINGS(int query)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce resetuje nastavení datagridu zadaného parametrem „query“ aktuálně přihlášenému uživateli tím, že zruší hledaný výraz, zruší zaškrtnutí hledání v jednotlivých sloupcích, nastaví hodnotu všech filtrů na „(Vše)“ a zruší i vlastní podmínky, které si uživatel k datagridu nastavil. U anonymního uživatele se filtry sloupců, zaškrtnutí hledání v jednotlivých sloupcích a podmínky složeného filtru zruší na jeho účtu, který sdílejí všichni anonymní návštěvníci.
Příklad:
RESETDATAGRIDSETTINGS(123)
void RESETUSERPASSWORD(string ng_checkbox, string from, string subject, string message)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce nastaví nové dočasné heslo všem uživatelům, kteří mají zaškrtnuté zaškrtávací pole zadané parametrem „ng_checkbox“ a vyplněnou e-mailovou adresu, a zaškrtnutí jim zruší. Místo identifikátoru zaškrtávacího pole lze zadat ID uživatelů oddělená středníkem (typicky označené řádky nahlížecí tabulky). Vestavěné účty s ID 1 a 2 funkce nikdy nezmění. Dočasné heslo uživatel obdrží e-mailem z adresy zadané parametrem „from“, s předmětem zadaným parametrem „subject“ a textem zadaným parametrem „message“, za kterým následuje přihlašovací jméno a heslo. Je-li v Nastavení NET Genia nastavená síla hesla, je nutné dočasné heslo poprvé použít k přihlášení do jednoho dne; prvním přihlášením s dočasným heslem lhůta zaniká a heslo platí, dokud ho uživatel nezmění, přičemž ke změně hesla je vyzván při každém přihlášení jménem a heslem; bez nastavené síly hesla zůstává dočasné heslo platné a ke změně hesla vyzván není. Funkci lze spouštět i naplánovanou úlohou.
- ID uživatelů lze oddělit středníkem i tabulátorem. Uživatel s neplatnou e-mailovou adresou se přeskočí.
- Nové heslo se uloží a e-mail odešle okamžitě pro každého uživatele zvlášť, mimo transakci skriptu, takže je pozdější chyba skriptu nevrátí.
- Předmět a text zprávy mohou být vícejazyčné; přeloží se do jazyka příjemce.
- Je-li parametrem seznam označených řádků nahlížecí tabulky, zůstanou po provedení funkce označené jen řádky uživatelů, kterým heslo odesláno nebylo.
Příklad:
RESETUSERPASSWORD(ng_oznacitproodeslanihesla, #ng_odesilatel#, #ng_predmet#, #ng_zprava#)
RESETUSERPASSWORD(ng_oznacitproodeslanihesla, noreply@netgenium.com, Expirace hesla, Změňte prosím své heslo.)
Příklad e-mailu:
Změňte prosím své heslo.
Přihlašovací jméno: novak.petr
Heslo: kR2FP50h
string RESOURCE(int index)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací položku ze seznamu zdrojů se zadaným číslem, resp. parametrem „index“. Zdroje se definují v souboru „Resources.txt“ v adresáři „NETGenium\Config\Resources\jazykové_nastavení“ podle jazyka přihlášeného uživatele; neexistuje-li soubor pro tento jazyk, použije se soubor z adresáře „en“. Každý řádek souboru má tvar „číslo=hodnota“, kde číslo je číslo položky; hodnotu lze uzavřít do rovných dvojitých uvozovek, které se odstraní. Neobsahuje-li soubor položku se zadaným číslem, vrací funkce text „číslo_NOT_TRANSLATED“. Změna souboru „Resources.txt“ se neprojeví okamžitě: soubor se načítá znovu nejdříve po hodině, takže se změna může projevit se zpožděním až přibližně dvou hodin; okamžitě se projeví po restartu aplikace.
Příklad obsahu souboru:
0="10 minut"
1="10 vteřin"
2="1 desetinné místo"
Příklad:
RESOURCE(2)
void RESTARTSERVICE(string service)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Omezení: Funkce není dostupná v cloudové variantě NET Genium Online.
Popis: Funkce restartuje službu zadanou parametrem „service“. Skript, ve kterém je uvedena funkce „RESTARTSERVICE“, musí být spouštěn výhradně pomocí programu „RunScript.exe“.
Příklad:
RESTARTSERVICE(CRMService)
void RESTOREFROMHISTORY(int form, int id)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce obnoví smazaný záznam z historie zadaný parametrem „id“ v editačním formuláři zadaném parametrem „form“ (ID formuláře). Parametr „id“ je ID záznamu v tabulce s historií, nikoliv původní ID smazaného záznamu; lze zadat i více ID oddělených středníkem. Záznam se obnoví pod svým původním ID. Řádek historie, který neoznačuje smazání, záznam už jednou obnovený, nebo záznam, jehož ID už v databázové tabulce existuje, se přeskočí. Každé obnovení se zapíše do databáze okamžitě a mimo transakci skriptu, takže ho pozdější chyba skriptu nevrátí. Ukládací skripty formuláře se při obnovení nespouštějí. Obnovený záznam se nezařadí do fronty synchronizace, takže se do synchronizovaných instancí nepřenese.
Příklad:
A = StringArray(SQL("SELECT id FROM ng_form_history WHERE deleted = 'x' AND date >= FORMATDATESQL(#today#)",;))
Cyklus: Pro každé A
RESTOREFROMHISTORY(123, #A#)
Další...
double ROUND(double number)
Použití: HTML, Skript (jen v číselném výrazu, např. v hodnotě přiřazované do číselné proměnné)
Popis: Funkce vrací zaokrouhlenou hodnotu z hodnoty zadané parametrem „number“. Polovina se zaokrouhluje směrem od nuly („ROUND(2.5)“ vrací „3“, „ROUND(-2.5)“ vrací „-3“). Pro číslo, jehož absolutní hodnota přesahuje přibližně 7,9 × 1028, skončí funkce chybou. Je-li název zapsán malými písmeny bezprostředně za tečkou, volání se nevyhodnotí a zůstane zachováno pro prohlížeč.
Příklad:
ROUND(-1.63)
// Vrací „-2“
ROUND(1.63)
// Vrací „2“
double ROUND(double number, int decimals)
Použití: HTML, Skript (jen v číselném výrazu, např. v hodnotě přiřazované do číselné proměnné; parametry se v něm oddělují středníkem: „ROUND(#A#; 2)“)
Popis: Funkce vrací zaokrouhlenou hodnotu z hodnoty zadané parametrem „number“, na počet desetinných míst zadaných parametrem „decimals“. Polovina se zaokrouhluje směrem od nuly a záporný parametr „decimals“ zaokrouhlí na desítky, stovky atd. („ROUND(1250, -2)“ vrací „1300“). Pro parametr „decimals“ mimo rozsah -28 až 28 a pro číslo, jehož absolutní hodnota před posunutím nebo po posunutí o zadaný počet desetinných míst přesáhne přibližně 7,9 × 1028, skončí funkce chybou. Je-li název zapsán malými písmeny bezprostředně za tečkou, volání se nevyhodnotí a zůstane zachováno pro prohlížeč.
Příklad:
ROUND(-1.636, 2)
// Vrací „-1,64“
ROUND(1.636, 2)
// Vrací „1,64“
void SAVEDATAGRIDSETTINGS(int query, int form, int id)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce uloží aktuální nastavení datagridu (filtry, hledání, podmínky) pro dotaz zadaného parametru „query“ přihlášeného uživatele do záznamu zadaného parametry „form“ (ID formuláře) a „id“ (ID záznamu). Uložené nastavení lze později obnovit funkcí LOADDATAGRIDSETTINGS. Funkce zapisuje do tabulek volitelné aplikace „DataGrid Settings“, kterou je nutné do NET Genia naimportovat, viz příručka Nastavení NET Genia. Nastavení se zapíše okamžitě, mimo transakci skriptu.
Příklad:
SAVEDATAGRIDSETTINGS(#lastqueryid#, #pform#, #pid#)
// Uloží aktuální nastavení filtru k aktuálnímu záznamu
string SCALEIMAGES(string html, int maxWidth, int maxHeight)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací HTML kód zadaný parametrem „html“ s upravenými rozměry obrázků. Obrázkům, které mají vyplněné atributy „width“ i „height“, a obrázkům vloženým přímo jako data („data:...;base64,...“) bez těchto atributů budou proporcionálně nastaveny atributy „width“ a „height“ v závislosti na parametrech „maxWidth“ a „maxHeight“. Ostatním obrázkům bez atributů „width“ a „height“ nastaví funkce styl „max-width“ a „max-height“ podle parametrů „maxWidth“ a „maxHeight“; obrázky s vyplněným jen jedním z obou atributů zůstanou beze změny. Hodnota „0“ znamená, že rozměr není omezen.
Příklad:
SCALEIMAGES(#ng_html#, 20, 15)
string SEARCHFILES(string subject, string content, int results)
Použití: HTML, JavaScript, Skript
Popis: Funkce vyhledá souborové přílohy dle zadaných kritérií, a vrací tabulku se třemi sloupci, kde v prvním sloupci se nachází název souborové přílohy, ve druhém její velikost, a ve třetím sloupci datum vytvoření. Souborové přílohy jsou hledány fulltextově dle jejich názvu definovaného parametrem „subject“ a dle obsahu, který definuje parametr „content“. Parametr „results“ určuje, kolik nalezených výskytů souborových příloh se má v tabulce zobrazit. Použití parametru „content“ má smysl pouze v případě, jsou-li souborové přílohy indexovány pomocí služby Indexing Service nebo Windows Search.
Příklad:
SEARCHFILES(NETGenium.gif, , 100)
SEARCHFILES(Název, Obsah, 100)
string SEARCHFILES(string subject, string content, int results, DateTime date1)
Použití: HTML, JavaScript, Skript
Popis: Funkce vyhledá souborové přílohy dle zadaných kritérií a vrací tabulku se třemi sloupci, kde v prvním sloupci se nachází název souborové přílohy, ve druhém její velikost, a ve třetím sloupci datum vytvoření. Souborové přílohy jsou hledány fulltextově dle jejich názvu definovaného parametrem „subject“ a dle obsahu, který definuje parametr „content“. Parametr „results“ určuje, kolik nalezených výskytů souborových příloh se má v tabulce zobrazit. Parametr „date1“ omezí hledání v indexu na přílohy s datem vytvoření větším nebo rovným zadanému datu; přílohy nalezené podle názvu („subject“) se k výsledku přidají bez ohledu na datum. Použití parametrů „content“ a „date1“ má smysl pouze v případě, jsou-li souborové přílohy indexovány pomocí služby Indexing Service nebo Windows Search.
Příklad:
SEARCHFILES(NETGenium.gif, , 100, 1.1.2013)
// Vrací přílohy s názvem obsahujícím „NETGenium.gif“ a k nim přílohy z indexu vytvořené od 1.1.2013
SEARCHFILES(Název, Obsah, 100, 1.1.2013)
string SEARCHFILES(string subject, string content, int results, DateTime date1, DateTime date2)
Použití: HTML, JavaScript, Skript
Popis: Funkce vyhledá souborové přílohy dle zadaných kritérií a vrací tabulku se třemi sloupci, kde v prvním sloupci se nachází název souborové přílohy, ve druhém její velikost, a ve třetím sloupci datum vytvoření. Souborové přílohy jsou hledány fulltextově dle jejich názvu definovaného parametrem „subject“ a dle obsahu, který definuje parametr „content“. Parametr „results“ určuje, kolik nalezených výskytů souborových příloh se má v tabulce zobrazit. Parametry „date1“ a „date2“ omezí hledání v indexu na přílohy s datem vytvoření mezi těmito dvěma zadanými daty včetně; přílohy nalezené podle názvu („subject“) se k výsledku přidají bez ohledu na datum. Použití parametrů „content“, „date1“ a „date2“ má smysl pouze v případě, jsou-li souborové přílohy indexovány pomocí služby Indexing Service nebo Windows Search.
Příklad:
SEARCHFILES(NETGenium.gif, , 100, 1.1.2013, 31.12.2013)
// Vrací přílohy s názvem obsahujícím „NETGenium.gif“ a k nim přílohy z indexu vytvořené od 1.1.2013 do 31.12.2013
SEARCHFILES(Název, Obsah, 100, 1.1.2013, 31.12.2013)
Chování společné pro všechny varianty funkce SEARCHFILES:
- Výsledek zahrnuje souborové přílohy celé instance bez ohledu na oprávnění k záznamům, ke kterým patří, a odkazy v tabulce umožní jejich stažení každému, kdo prvek HTML vidí.
- Název se hledá jako podřetězec názvu souboru; výsledky hledání podle názvu a hledání v indexu (podle obsahu a data vytvoření) se sčítají.
- Parametr „results“ omezuje počet vybraných souborových příloh bez určeného pořadí. Přílohy, jejichž soubor na disku chybí, se z výsledku vynechají, takže tabulka může obsahovat méně řádků. Datem vytvoření se rozumí datum vytvoření souboru na disku serveru.
string SEARCHNEXTID(string array, string id)
Použití: HTML, JavaScript, Skript
Popis: Funkce přijímá pole hodnot oddělených středníkem, které je zadané parametrem „array“. V tomto poli je vyhledána hodnota zadaná parametrem „id“, a funkce poté vrací hodnotu, která se v zadaném poli nachází bezprostředně za touto hodnotou. Pokud se zadaná hodnota „id“ v poli „array“ nenachází nebo se za zadanou hodnotou již žádná hodnota v poli nenachází, funkce vrací „0“. Pokud je hodnota „id“ rovna „0“, vrací funkce první hodnotu zadaného pole.
Příklad:
SEARCHNEXTID(1;2;3, 2)
// Vrací „3“
SEARCHNEXTID(1;2;3, 0)
// Vrací „1“
SEARCHNEXTID(dva;čtyři;šest, čtyři)
// Vrací „šest“
string SEARCHPREVID(string array, string id)
Použití: HTML, JavaScript, Skript
Popis: Funkce přijímá pole hodnot oddělených středníkem, které je zadané parametrem „array“. V tomto poli je vyhledána hodnota zadaná parametrem „id“, a funkce poté vrací hodnotu, která se v zadaném poli nachází bezprostředně před touto hodnotou. Pokud se zadaná hodnota „id“ v poli „array“ nenachází nebo se před zadanou hodnotou již žádná hodnota v poli nenachází, funkce vrací „0“. Pokud je hodnota „id“ rovna „0“, vrací funkce poslední hodnotu zadaného pole.
Příklad:
SEARCHPREVID(1;2;3, 2)
// Vrací „1“
SEARCHPREVID(1;2;3, 0)
// Vrací „3“
SEARCHPREVID(dva;čtyři;šest, čtyři)
// Vrací „dva“
string SECONDS2TIME(double seconds)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací textový řetězec ve formátu „HH:mm:ss“ vyjádřený z počtu vteřin zadaného parametrem „seconds“. Počet hodin se po 24 hodinách nezalamuje (90 000 vteřin vrací „25:00:00“) a záporný počet vteřin vrací čas se znaménkem minus. Desetinnou část vteřin připojí funkce za tečku, nejvýše tři číslice (SECONDS2TIME(1.5) vrací „00:00:01.5“).
Příklad:
SECONDS2TIME(480)
// Vrací „00:08:00“
SECONDS2TIME(0)
// Vrací „00:00:00“
void SENDCHATMESSAGE(string message)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce odešle chatovou zprávu, jejíž text je definován parametrem „message“. Zpráva je odeslána do všech relací s interaktivním přihlášením v prohlížeči kromě relací uživatele, pod kterým skript běží, a to i do relací, ve kterých uživatel delší dobu nepracuje; přihlášení tokenem, přes webové služby nebo přes Windows z adresy s parametrem „autologin“ zprávu nedostanou. Jako oznámení na mobilní telefon se tato zpráva neposílá. Zpráva se zapíše okamžitě, mimo transakci skriptu, takže ji pozdější chyba skriptu nevrátí.
Příklad:
SENDCHATMESSAGE(Hello)
void SENDCHATMESSAGE(string message, string loginname)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce odešle chatovou zprávu, jejíž text je definován parametrem „message“. Zpráva je odeslána uživateli, který je zadán parametrem „loginname“. Uživatel nemusí být aktuálně přihlášený, chatová zpráva se mu pak zobrazí po jeho dalším přihlášení. Zpráva se zapíše okamžitě, mimo transakci skriptu, takže ji pozdější chyba skriptu nevrátí.
Má-li uživatel zapnutá oznámení na mobilním telefonu nebo na počítači, dojde mu zpráva, kterou do 30 sekund nepřečte, i jako systémové oznámení s nejvýš prvními 300 znaky textu zprávy – a to i na zamčený displej. Zprávy s citlivými údaji (mzdy, nepřítomnost, zdravotní stav) je proto vhodné formulovat obecně, například „Máte nový požadavek ke schválení“. Detailní popis oznámení je uveden v samostatné příručce Chat a oznámení.
Příklad:
SENDCHATMESSAGE(Hello, Administrator)
string SENDMAILINVITATION(string from, string replyto, string to, string cc, string bcc, string subject, string body, string attachments, bool save, string summary, string location, DateTime start, DateTime end, string description [, string c0, string v0 [, string c1, string v1...]])
Použití: Skript
Popis: Funkce odešle pozvánku na schůzku prostřednictvím e-mailové adresy zadané parametrem „from“ na e-mailovou adresu zadanou parametrem „to“, a vrací UID pozvánky. Parametr „replyto“ značí, na kterou e-mailovou adresu se má na tuto pozvánku defaultně odpovědět. Parametr „summary“ definuje předmět schůzky, parametr „location“ pak místo konání schůzky. Parametry „start“ a „end“ označují začátek a konec schůzky. Parametr „description“ nabízí možnost vložení podrobnějšího i víceřádkového popisu dané schůzky; zapíše se jen do kalendářové části pozvánky. Ostatní parametry jsou vysvětleny u funkce „SCHEDULEMAILMESSAGE“.
- Předmět zprávy začíná slovem „Pozvánka:“ v jazyce přihlášeného uživatele, za kterým následuje hodnota parametru „subject“.
- Tělo e-mailu tvoří přehled schůzky (předmět, termín, místo a účastníci), za kterým následuje text parametru „body“. Účastníky jsou organizátor (adresa z parametru „from“, a je-li prázdný, přihlášený uživatel) a příjemci z parametrů „to“ a „cc“; příjemci skryté kopie („bcc“) se mezi účastníky nevypisují v přehledu ani v kalendářové části pozvánky.
- Není-li parametr „start“ platné datum, použije se aktuální čas; není-li platné datum v parametru „end“, skončí schůzka hodinu po začátku.
- Prázdné parametry „to“, „cc“ a „bcc“ i neplatné adresy příjemců se řeší stejně jako u funkce „SENDMAILMESSAGE“.
- Pozvánka odchází okamžitě, takže ji pozdější chyba skriptu nevrátí, a chybu při odeslání funkce nehlásí stejně jako funkce „SENDMAILMESSAGE“.
Příklad:
SENDMAILINVITATION(info@mojefirma.cz, , info@netgenium.com, , , E-mailová zpráva, Vážený pane..., 0, True, Předmět schůzky,
Místo konání, 25.4.2013 15:00, 25.4.2013 20:00, Popis schůzky)
string SENDMAILINVITATION2(string uid, string from, string replyto, string to, string cc, string bcc, string subject, string body, string attachments, bool save, string summary, string location, DateTime start, DateTime end, string description [, string c0, string v0 [, string c1, string v1...]])
Použití: Skript
Funkce je identická k funkci SENDMAILINVITATION, avšak prvním parametrem „uid“ přijímá UID pozvánky. Pozvánka se stejným UID aktualizuje schůzku, kterou adresát už v kalendáři má; prázdný parametr „uid“ vygeneruje nové UID. Funkce vrací použité UID, které je vhodné uložit k záznamu kvůli pozdějším změnám schůzky. Zpráva se odesílá stejně jako u funkce SENDMAILINVITATION, tedy přes SMTP server 1 a při jeho selhání přes SMTP server 2.
Příklad:
SENDMAILINVITATION2(#ng_uid#, info@mojefirma.cz, , info@netgenium.com, , , E-mailová zpráva, Vážený pane..., 0, True, Předmět schůzky,
Místo konání, 25.4.2013 15:00, 25.4.2013 20:00, Popis schůzky)
void SENDMAILMESSAGE(string from, string replyto, string to, string cc, string bcc, string subject, string body, string attachments, bool save [, string c0, string v0 [, string c1, string v1...]])
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce odešle e-mailovou zprávu z e-mailové adresy zadané parametrem „from“ na e-mailovou adresu zadanou parametrem „to“. Parametr „replyto“ značí, na kterou e-mailovou adresu se má na tento e-mail defaultně odpovědět. Ostatní parametry jsou vysvětleny u funkce „SCHEDULEMAILMESSAGE“.
Není-li parametr „from“ vyplněn, použije se e-mailová adresa a jméno přihlášeného uživatele. Je-li adresa odesílatele z jiné domény než výchozí odesílatel v nastavení NET Genia, odešle se zpráva z výchozího odesílatele (v cloudové variantě NET Genium Online vždy, bez ohledu na doménu); není-li vyplněn parametr „replyto“, použije se jako adresa pro odpověď adresa z parametru „from“. Detailní popis výchozího odesílatele je uveden v samostatné příručce Nastavení NET Genia. Začíná-li předmět vykřičníkem, za kterým následuje jiný znak než další vykřičník, vykřičník se z předmětu odstraní a zpráva vyžádá potvrzení o přečtení na adresu pro odpověď, a není-li zadaná, na adresu odesílatele. Zpráva odchází okamžitě, takže ji pozdější chyba skriptu nevrátí. Chybu při odeslání funkce nehlásí – nepodaří-li se zprávu odeslat, uloží se do adresáře „SMTP“. Je-li parametr „save“ roven hodnotě „True“, uloží se zpráva do tabulky odeslané pošty jen tehdy, když se ji podařilo odeslat. Nejsou-li vyplněné parametry „to“, „cc“ ani „bcc“, odešle se zpráva na servisní e-mailovou adresu z Nastavení NET Genia a do předmětu se vloží „NG NO-RCPT:“; neplatné adresy příjemců se vynechají. Jsou-li neplatné všechny zadané adresy příjemců, zpráva se na servisní e-mailovou adresu nepřesměruje a neodešle se ani později z adresáře „SMTP“. Tělo zprávy se odešle v jednotném formátu e-mailů NET Genia (písmo Arial o velikosti 10 bodů); začíná-li tělo přesně textem „<!DOCTYPE“, „<html“ nebo „<HTML“ (celý HTML dokument, typicky newsletter), odešle se beze změny.
Příklad:
SENDMAILMESSAGE(info@mojefirma.cz, , info@netgenium.com, , , E-mailová zpráva, Vážený pane..., 0, True)
SENDMAILMESSAGE(info@mojefirma.com, , info@netgenium.com, , , E-mailová zpráva, Vážený pane..., 1;#ng_priloha#, true)
void SENDMAILMESSAGE2(string from, string replyto, string to, string cc, string bcc, string subject, string body, string attachments, bool save [, string c0, string v0 [, string c1, string v1...]])
Použití: Skript (na místě, kde se očekává zadání komentáře)
Funkce je identická k funkci SENDMAILMESSAGE, avšak využívá druhý SMTP server – v nastavení NET Genia „SMTP Server 2“. Při jeho selhání se zpráva přes SMTP server 1 neodešle; uloží se do adresáře „SMTP“, odkud ji program „ResendEmlFiles.exe“ zkusí odeslat nejdříve přes SMTP server 1.
string SERIALIZEFORMDATA()
Použití: Skript
Popis: Funkce serializuje aktuální data formuláře do řetězce ve formátu XML. Výsledný XML řetězec obsahuje hodnoty všech polí formuláře v době volání funkce a lze jej uložit do databáze, přenést na jiný server nebo zpracovat dalšími funkcemi.
Příklad:
A = SERIALIZEFORMDATA()
void SETCOOKIE(string key, string value, DateTime expires)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce nastaví hodnotu cookie zadané parametrem „key“ na hodnotu definovanou parametrem „value“, s datem expirace definovaným parametrem „expires“. Parametr „SameSite“ bude nastaven na hodnotu „Strict“, parametr „Secure“ bude zvolen podle konfigurace NET Genia (konfigurační soubor „SecureCookies.txt“, „SSL.txt“, nebo zabezpečená komunikace přes protokol „https“), a parametr „HttpOnly“ bude nastaven na hodnotu „False“. Cookie se nastaví jen tehdy, obsahuje-li parametr „expires“ platné datum. Na rozdíl od ostatních funkcí s vedlejším účinkem se funkce provede i v testovacím běhu skriptu.
Příklad:
SETCOOKIE(abc, def, #today# + 6m)
void SETCONTROLNAME(int id, string name)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce dočasně změní nadpis nahlížecí tabulky (DataGrid, LiteDataGrid) nebo grafu (Chart) identifikovaného parametrem „id“ (ID prvku v databázi) tak, aby se při aktuálním renderování zobrazoval pod názvem zadaným parametrem „name“. Funguje na nahlížecí stránce i v editačním formuláři. Na nahlížecí stránce stejně změní i nadpis ovládacích prvků „History“, „DataSet“ a „Email“; názvy ostatních ovládacích prvků funkce nemění. Parametr „name“ může obsahovat vícejazyčný termín (přeloží se podle jazyka přihlášeného uživatele). Změna platí pouze po dobu zpracování aktuálního požadavku – popisek prvku v databázi se nemění. Ve spojení s funkcí SETQUERYCOLUMN umožňuje dynamicky měnit název datagridu nebo grafu podle zvoleného agregačního sloupce, takže není nutné zakládat duplicitní nahlížecí stránky lišící se jen názvem nebo agregovaným sloupcem.
Příklad:
SETCONTROLNAME(456, Objednávky zákazníka)
// Nahlížecí tabulka s ID 456 v editačním formuláři se zobrazí pod nadpisem „Objednávky zákazníka“
SETCONTROLNAME(551, Celkem Kč)
// Datagrid nebo graf s ID 551 se zobrazí pod nadpisem „Celkem Kč“
void SETDATAGRIDSELECTION(string control, string ids)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce nastaví v datagridu zadaném parametrem „control“ seznam primárních klíčů všech vybraných záznamů oddělených středníkem zadaných parametrem „ids“. Parametr „control“ značí název ovládacího prvku podle zvyklostí používaných v proměnných nebo tiskových šablonách:
- datagridX
- DGX
Parametrem „control“ může být i ID databázového dotazu datagridu; použije se první datagrid s tímto dotazem.
Příklad:
SETDATAGRIDSELECTION(datagrid1, 1;2;3)
SETDATAGRIDSELECTION(DG123, 1;2;3)
void SETQUERYCOLUMN(int query, string columns, string name, int columnId, string dateType)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce dočasně změní nastavení jednoho nebo více výstupních sloupců statistického (agregačního) databázového dotazu zadaného parametrem „query“ (ID dotazu) pro aktuální požadavek. Slouží k dynamickému přepínání sloupce, podle kterého datagrid nebo graf agreguje (nebo který zobrazuje), takže není nutné zakládat duplicitní nahlížecí stránky lišící se jen agregovaným sloupcem. Parametr „columns“ obsahuje indexy výstupních sloupců oddělené středníkem; indexování začíná nulou (první výstupní sloupec má index 0) a stejná změna se uplatní na všechny vyjmenované sloupce. Parametr „name“ mění zobrazovaný název sloupce, pokud není prázdný; prázdný řetězec „“ název ponechá beze změny. Název může obsahovat vícejazyčný termín. U sloupce, jehož definice má tvar „název@výraz@...“, nahradí parametr „name“ jen část před prvním znakem „@“ a výraz, kumulaci, filtr i řazení sloupce ponechá; obsahuje-li „name“ sám znak „@“, nahradí celou definici sloupce. Volitelný parametr „columnId“ (ID jiného ovládacího prvku) nahradí zdrojový sloupec – uplatní se jen tehdy, je-li nenulový a patří-li nový prvek do stejného formuláře jako původní sloupec; hodnota 0 zdrojový sloupec ponechá beze změny. Volitelný parametr „dateType“ změní časovou agregaci datumového klíčového sloupce na „day“, „week“, „month“, „quarter“ nebo „year“ (uplatní se jen u sloupce, který je už seskupený podle dne, týdne, měsíce, kvartálu nebo roku; sloupec seskupený podle hodin parametr nezmění). Funkce musí být spuštěna před vykreslením nebo vyhodnocením daného dotazu; změna se neukládá do jeho definice.
Příklad:
SETQUERYCOLUMN(491, 1, Datum)
// U dotazu s ID 491 nastaví název sloupce s indexem 1 (druhý výstupní sloupec) na „Datum“
SETQUERYCOLUMN(491, 1, Datum, 1220)
// Navíc nahradí zdrojový sloupec ovládacím prvkem s ID 1220 (musí být ze stejného formuláře)
SETQUERYCOLUMN(491, 1;2;3;4;5, "", 1220)
// U sloupců 1 až 5 ponechá názvy beze změny, ale nahradí jejich zdrojový sloupec prvkem s ID 1220
SETQUERYCOLUMN(491, 1, "", 0, month)
// Ponechá název i zdrojový sloupec, jen změní časovou agregaci na měsíční
SETQUERYCOLUMN(491, 1, Den, 1220, day)
// Nastaví název na „Den“, nahradí zdrojový sloupec prvkem s ID 1220 a změní agregaci na denní
void SETVARIABLE(string variable, string value)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce nastaví hodnotu proměnné zadané parametrem „variable“ na hodnotu definovanou parametrem „value“. Proměnná se zadává názvem velkými písmeny bez závorek (například „A“ nebo „AB“); s jiným zápisem názvu funkce nic neprovede. Proměnná musí být předem deklarovaná, jinak skript skončí chybou. Hodnota se převede podle datového typu proměnné stejně jako při přiřazení hodnoty ve skriptu – u číselné proměnné se hodnota vyhodnotí jako aritmetický výraz (například „1+2“ dá 3), text za výrazem se zahodí a prázdná hodnota dá nulu; hodnota, kterou jako číslo vyhodnotit nelze, celé číslo mimo rozsah datového typu a nerozpoznané datum ukončí skript chybou.
Příklad:
SETVARIABLE(A, abc)
void SCHEDULEBACK()
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce naplánuje otevření předchozí stránky ihned po úspěšném provedení skriptu. Funkce se provede jen v těchto skriptech editačního formuláře: ve skriptech tlačítek typu „Skript“ a tlačítek ze záložky „Tlačítko“ databázových ovládacích prvků, ve skriptech „OnBeforeSave“ a „OnAfterSave“ po uložení tlačítkem „Uložit“, „Uložit a nový“, „Uložit a pokračovat v editaci“ nebo „Synchronizovat“, ve skriptech „OnBeforeDelete“ a „OnAfterDelete“ po smazání záznamu a ve skriptu „OnAfterOpen“ v uživatelském režimu. V ostatních skriptech se neprovede.
Příklad:
SCHEDULEBACK()
void SCHEDULEBACK(string message)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce naplánuje otevření předchozí stránky ihned po úspěšném provedení skriptu. Po otevření předchozí stránky je uživateli zobrazena zpráva v dialogovém okně zadaná parametrem „message“. Text zprávy lze zadat vícejazyčně.
Příklad:
SCHEDULEBACK(abc)
SCHEDULEBACK("Zpráva, která obsahuje čárku.")
void SCHEDULEBACK(string message, bool dialog)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce naplánuje otevření předchozí stránky ihned po úspěšném provedení skriptu. Po otevření předchozí stránky je uživateli zobrazena zpráva zadaná parametrem „message“ buď v dialogovém okně, nebo pouze jako červeně zvýrazněný text zobrazený ve spodní části stránky. Text zprávy lze zadat vícejazyčně.
Příklad:
SCHEDULEBACK(abc, false)
SCHEDULEBACK("Zpráva, která obsahuje čárku.", false)
void SCHEDULEDEFAULTVALUE(string dbname, string value)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce naplánuje vyplnění hodnoty zadané parametrem „value“ do ovládacího prvku definovaného identifikátorem „dbname“ při otevření editačního formuláře ihned po úspěšném provedení skriptu. Je-li parametrem „dbname“ hodnota „pid“ nebo „pform“, funkce nevyplní ovládací prvek, ale určí rodičovský záznam („pid“), resp. editační formulář rodičovského záznamu („pform“) nového záznamu, který se po provedení skriptu otevře – typicky funkcí „SCHEDULEFORM“ nebo tlačítkem typu „Otevřít editační formulář“. Ve skriptu „OnBeforeOpen“ se rodičovský záznam takto nastavit nedá – nový záznam otevřený tlačítkem „Uložit a nový“ převezme rodičovský záznam právě uloženého záznamu.
Příklad:
SCHEDULEDEFAULTVALUE(ng_stav, Dokončeno)
void SCHEDULEDEFAULTVALUE(string dbname, string dbtype, string value)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce naplánuje vyplnění hodnoty zadané parametrem „value“ do ovládacího prvku definovaného identifikátorem „dbname“ při otevření editačního formuláře ihned po úspěšném provedení skriptu. Parametr „dbtype“ určuje databázový typ hodnoty zadané parametrem „value“. Parametr „dbtype“ musí obsahovat přesně jednu z hodnot „String“, „Integer“, „Long“, „Double“ nebo „Date“; s prázdným nebo jiným typem funkce ovládací prvek nevyplní. Pro textovou hodnotu stačí varianta bez parametru „dbtype“, která používá databázový typ „String“. Je-li parametrem „dbname“ hodnota „pid“ nebo „pform“, funkce nevyplní ovládací prvek, ale určí rodičovský záznam („pid“), resp. editační formulář rodičovského záznamu („pform“) nového záznamu, který se po provedení skriptu otevře. Ve skriptu „OnBeforeOpen“ se rodičovský záznam takto nastavit nedá – nový záznam otevřený tlačítkem „Uložit a nový“ převezme rodičovský záznam právě uloženého záznamu.
Příklad:
SCHEDULEDEFAULTVALUE(ng_datum, Date, #today# - 20)
void SCHEDULEDEFAULTVALUES(string dbname1, string dbname2, ... , string values)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce naplánuje vyplnění hodnot oddělených středníkem zadaných parametrem „values“ do ovládacích prvků zadaných identifikátory „dbname1“, „dbname2“, atd... při otevření editačního formuláře ihned po úspěšném provedení skriptu. Je-li identifikátorem „pid“ nebo „pform“, určí odpovídající hodnota rodičovský záznam, resp. editační formulář rodičovského záznamu nového záznamu, stejně jako u funkce „SCHEDULEDEFAULTVALUE“. Neodpovídá-li počet hodnot počtu identifikátorů, skript skončí chybou „Počet hodnot (...) neodpovídá počtu sloupců (...).“.
Příklad:
SCHEDULEDEFAULTVALUES(ng_text1, ng_text2, #A#)
SCHEDULEDEFAULTVALUES(ng_text1, ng_text2, hodnota1;hodnota2)
void SCHEDULEENTRY(int id)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce naplánuje otevření záznamu s primárním klíčem zadaným parametrem „id“ v aktuálně otevřeném editačním formuláři ihned po úspěšném provedení skriptu. Obsahuje-li parametr „id“ více hodnot oddělených středníkem (například proměnnou načtenou z databázového dotazu), použije se první z nich.
Příklad:
SCHEDULEENTRY(123)
void SCHEDULEENTRY(string column, int id)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce naplánuje otevření vyhledaného záznamu v aktuálně otevřeném editačním formuláři ihned po úspěšném provedení skriptu. Záznam je vyhledán v přidružené databázové tabulce ze všech záznamů, které mají ve sloupci zadaném parametrem „column“ uloženou hodnotu zadanou parametrem „id“. Odpovídá-li podmínce více záznamů, otevře se jeden z nich bez určeného pořadí. Pokud nebude dohledán žádný záznam odpovídající této podmínce, zapíše se hodnota „id“ do sloupce „column“ právě otevřeného záznamu a záznam se po úspěšném provedení skriptu uloží – typicky jde o nový záznam otevřený ve skriptu „OnAfterOpen“. Parametrem „column“ může být „pid“ nebo identifikátor ovládacího prvku začínající „ng_“; „pid“ i předpona „ng_“ musí být zapsané malými písmeny. Jiný zápis, neexistující sloupec i chybu dotazu funkce bez hlášení ignoruje – nic nenaplánuje ani nezapíše. Obsahuje-li parametr „id“ více hodnot oddělených středníkem (například proměnnou načtenou z databázového dotazu), použije se první z nich.
Příklad:
SCHEDULEENTRY(pid, 123)
void SCHEDULEFORM(int id)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce naplánuje otevření editačního formuláře zadaného parametrem „id“. Parametr „id“ je možné zjistit v administrátorském režimu v tooltipu, který se zobrazí po zastavení ukazatele myši nad odkazem „Upravit editační formulář“. Bude otevřen prázdný editační formulář za účelem vytvoření nového záznamu. Je-li funkce volána ze skriptu editačního formuláře, založí se nový záznam jako vnořený záznam právě otevřeného záznamu a po jeho opuštění se uživatel vrátí do formuláře; jiný rodičovský záznam lze určit funkcí „SCHEDULEDEFAULTVALUE“ s identifikátorem „pid“ a „pform“. Ve skriptech „OnBeforeDelete“ a „OnAfterDelete“ je po smazání záznamu rodičem nového záznamu rodičovský záznam smazaného záznamu a uživatel se po opuštění nového záznamu vrátí tam, kam by se vrátil ze smazaného záznamu.
Příklad:
SCHEDULEFORM(1)
SCHEDULEFORM(#form#)
void SCHEDULEFORM(string dbname)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce naplánuje otevření editačního formuláře zadaného parametrem „dbname“. Bude otevřen prázdný editační formulář za účelem vytvoření nového záznamu. Je-li funkce volána ze skriptu editačního formuláře, založí se nový záznam jako vnořený záznam právě otevřeného záznamu a po jeho opuštění se uživatel vrátí do formuláře; jiný rodičovský záznam lze určit funkcí „SCHEDULEDEFAULTVALUE“ s identifikátorem „pid“ a „pform“. Ve skriptech „OnBeforeDelete“ a „OnAfterDelete“ je po smazání záznamu rodičem nového záznamu rodičovský záznam smazaného záznamu a uživatel se po opuštění nového záznamu vrátí tam, kam by se vrátil ze smazaného záznamu.
Příklad:
SCHEDULEFORM(susers)
void SCHEDULEFORM(int id, int record)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce naplánuje otevření editačního formuláře zadaného parametrem „id“, a otevření záznamu s primárním klíčem zadaným parametrem „record“ ihned po úspěšném provedení skriptu. Parametr „id“ je možné zjistit v administrátorském režimu v tooltipu, který se zobrazí po zastavení ukazatele myši nad odkazem „Upravit editační formulář“. Obsahuje-li parametr „record“ více hodnot oddělených středníkem (například proměnnou načtenou z databázového dotazu), použije se první z nich.
Příklad:
SCHEDULEFORM(1, 1)
void SCHEDULEFORM(string dbname, int record)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce naplánuje otevření editačního formuláře zadaného parametrem „dbname“, a otevření záznamu s primárním klíčem zadaným parametrem „record“ ihned po úspěšném provedení skriptu. Obsahuje-li parametr „record“ více hodnot oddělených středníkem (například proměnnou načtenou z databázového dotazu), použije se první z nich.
Příklad:
SCHEDULEFORM(susers, 1)
void SCHEDULEFORM(int id, int record, bool back)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce naplánuje otevření editačního formuláře zadaného parametrem „id“, a otevření záznamu s primárním klíčem zadaným parametrem „record“ ihned po úspěšném provedení skriptu. Parametr „id“ je možné zjistit v administrátorském režimu v tooltipu, který se zobrazí po zastavení ukazatele myši nad odkazem „Upravit editační formulář“. Parametr „back“ definuje, zda se okno prohlížeče přesměruje na hlavní stránku (nahlížecí stránku/portlet) při hodnotě „true“ nebo pouze zpět do nadřízeného formuláře při hodnotě „false“. Při hodnotě „true“ nemá nový záznam (parametr „record“ roven „0“) rodičovský záznam, neurčí-li ho funkce „SCHEDULEDEFAULTVALUE“ s identifikátorem „pid“ a „pform“. Obsahuje-li parametr „record“ více hodnot oddělených středníkem (například proměnnou načtenou z databázového dotazu), použije se první z nich.
Příklad:
SCHEDULEFORM(1, 1, true)
void SCHEDULEFORM(string dbname, int record, bool back)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce naplánuje otevření editačního formuláře zadaného parametrem „dbname“, a otevření záznamu s primárním klíčem zadaným parametrem „record“ ihned po úspěšném provedení skriptu. Parametr „back“ definuje, zda se okno prohlížeče přesměruje na hlavní stránku (nahlížecí stránku/portlet) při hodnotě „true“ nebo pouze zpět do nadřízeného formuláře při hodnotě „false“. Při hodnotě „true“ nemá nový záznam (parametr „record“ roven „0“) rodičovský záznam, neurčí-li ho funkce „SCHEDULEDEFAULTVALUE“ s identifikátorem „pid“ a „pform“. Obsahuje-li parametr „record“ více hodnot oddělených středníkem (například proměnnou načtenou z databázového dotazu), použije se první z nich.
Příklad:
SCHEDULEFORM(susers, 1, false)
void SCHEDULEMAILMESSAGE(string to, string cc, string bcc, string subject, string body, string attachments, bool save [, string c0, string v0 [, string c1, string v1...]])
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce naplánuje otevření stránky pro zadávání nové e-mailové zprávy ihned po úspěšném provedení skriptu. Funkce na stránce nové e-mailové zprávy vyplní zadávací pole:
- „Komu“ parametrem „to“,
- „Kopie“ parametrem „cc“,
- „Skrytá“ parametrem „bcc“,
- „Předmět“ parametrem „subject“,
- „Zpráva“ parametrem „body“.
Dále ke zprávě přiloží souborové přílohy zadané parametrem „attachments“, a zaškrtne zaškrtávací tlačítko „Uložit“, pokud je hodnota parametru „save“ rovna hodnotě „True“. „Attachments“ je seznam ID souborových příloh oddělených středníkem; cesta k souboru na disku se jako příloha nepřiloží. Zatrhne-li uživatel před odesláním e-mailové zprávy volbu „Uložit“, uloží se odeslaná zpráva do tabulky odeslané pošty aplikace „E-mail“ (editační formulář s identifikátorem „ng_mailoutbox“); bez této aplikace se zpráva neuloží. Parametry „c0“, resp. „v0“ značí identifikátor databázového ovládacího prvku tabulky odeslané pošty, resp. hodnotu, která se do tohoto ovládacího prvku při uložení zprávy vloží.
Začíná-li předmět zprávy v okamžiku odeslání vykřičníkem, za kterým následuje jiný znak než další vykřičník, vykřičník se z předmětu odstraní a zpráva vyžádá potvrzení o přečtení – stejně jako u funkce „SENDMAILMESSAGE“.
Příklad:
SCHEDULEMAILMESSAGE(info@netgenium.com, , , E-mailová zpráva, Vážený pane..., 0, true)
SCHEDULEMAILMESSAGE(info@netgenium.com, , , E-mailová zpráva, Vážený pane..., 1;#ng_priloha#, true)
void SCHEDULEPORTLETS()
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce naplánuje otevření hlavní stránky ihned po úspěšném provedení skriptu.
Příklad:
SCHEDULEPORTLETS()
void SCHEDULEPRINT(int button, int id)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce naplánuje tisk do tiskové šablony ihned po úspěšném provedení skriptu. Parametr „button“ značí ID tlačítka, které obsluhuje tisk, a parametr „id“ značí ID záznamu, který se bude tisknout. Výběr tiskové šablony se řídí nastavením obslužného tlačítka. Má-li tlačítko skript, provede se před tiskem a podle nastavení tlačítka se přitom záznam uloží; skončí-li skript tlačítka chybou, tisk se neprovede. Skriptové proměnné tiskové šablony se převezmou ze skriptu tlačítka; nemá-li tlačítko žádné kroky skriptu, převezmou se ze skriptu, který funkci zavolal. Pokud je ve skriptu použito více volání funkcí „SCHEDULEPRINT“, je výstupem více vytištěných souborů zabalených do archivu „zip“, který je následně nabídnut ke stažení.
Příklad:
SCHEDULEPRINT(123, 1)
void SCHEDULEPRINT(int button, int id, bool mergefiles)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce naplánuje tisk do tiskové šablony ihned po úspěšném provedení skriptu. Parametr „button“ značí ID tlačítka, které obsluhuje tisk, a parametr „id“ značí ID záznamu, který se bude tisknout. Výběr tiskové šablony se řídí nastavením obslužného tlačítka. Má-li tlačítko skript, provede se před tiskem a podle nastavení tlačítka se přitom záznam uloží; skončí-li skript tlačítka chybou, tisk se neprovede. Skriptové proměnné tiskové šablony se převezmou ze skriptu tlačítka; nemá-li tlačítko žádné kroky skriptu, převezmou se ze skriptu, který funkci zavolal. Pokud je ve skriptu použito více volání funkcí „SCHEDULEPRINT“, je výstupem více vytištěných souborů zabalených do archivu „zip“, který je následně nabídnut ke stažení. Mají-li všechny vytištěné soubory stejnou příponu a jde-li o tisk do tiskových šablon aplikace MS Excel (XLS, XLSX nebo XLSM) nebo o soubory PDF, rozhoduje o výstupu funkce parametr „mergefiles“; soubory XLS a XLSX se spolu nespojí. Pokud je hodnota parametru „mergefiles“ nastavena na „true“, dojde ke spojení všech vytištěných souborů do jednoho souboru s příponou „xlsx“ s více listy, nebo do jednoho PDF souboru. Ke spojení stačí, má-li parametr „mergefiles“ hodnotu „true“ v kterémkoli volání funkce ve skriptu. Jsou-li všechny vytištěné soubory ve formátu „xlsm“, vznikne místo souboru „xlsx“ soubor „xlsm“.
Příklad:
SCHEDULEPRINT(123, 1, true)
void SCHEDULEPRINTOFATTACHMENT(int id)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce naplánuje tisk souborové přílohy ihned po úspěšném provedení skriptu. Parametr „id“ značí ID souborové přílohy, která se bude tisknout. Pokud je ve skriptu použito více volání funkcí „SCHEDULEPRINTOFATTACHMENT“, je výstupem více vytištěných souborů zabalených do archivu „zip“, který je následně nabídnut ke stažení. Volání funkce lze také libovolně kombinovat s funkcí „SCHEDULEPRINT“.
Příklad:
SCHEDULEPRINTOFATTACHMENT(1)
void SCHEDULEPRINTOFATTACHMENT(int id, string filename)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce naplánuje tisk souborové přílohy ihned po úspěšném provedení skriptu. Parametr „id“ značí ID souborové přílohy, která se bude tisknout. Tisk je prováděn do souboru pod názvem určeným parametrem „filename“, který se zadává bez přípony – přípona původního souboru se k němu vždy připojí. Pokud je ve skriptu použito více volání funkcí „SCHEDULEPRINTOFATTACHMENT“, je výstupem více vytištěných souborů zabalených do archivu „zip“, který je následně nabídnut ke stažení. Volání funkce lze také libovolně kombinovat s funkcí „SCHEDULEPRINT“.
Příklad:
SCHEDULEPRINTOFATTACHMENT(1, Příloha)
Chování společné pro funkce SCHEDULEPRINT a SCHEDULEPRINTOFATTACHMENT:
- Parametr „button“ funkce „SCHEDULEPRINT“ musí být ID ovládacího prvku „Button“ editačního formuláře; volání s ID tlačítka nahlížecí stránky, s ID tlačítka ze záložky „Tlačítko“ databázového ovládacího prvku nebo s parametrem „id“ rovným „0“ se vynechá.
- Naplánovaný tisk se provede jen po skriptu tlačítka typu „Skript“ (v editačním formuláři i na nahlížecí stránce) a po skriptu tlačítka databázového ovládacího prvku. Ve skriptech událostí formuláře (například „OnAfterSave“) se naplánovaný tisk neprovede.
- Funkce „SCHEDULEPRINT“ před tiskem každého záznamu spustí nad tímto záznamem skript obslužného tlačítka. Skončí-li skript chybou, tisk se neprovede vůbec a uživateli se zobrazí hlášení o chybě. Změny, které skript tlačítka uložil u dříve zpracovaných záznamů, zůstávají v databázi.
- Funkce „SCHEDULEPRINT“ nepoužije volby obslužného tlačítka „Otevřít formulář pro zadání nové e-mailové zprávy“ a „Otevřít editační formulář“; zaškrtnuté pole „1 vnořený záznam = 1 list (XLS) / 1 dokument (DOC)“ ponechá v šabloně MS Excel jen jeden list a šablonu MS Word vytiskne do jednoho dokumentu.
- Spojení souborů podle parametru „mergefiles“ zahrne i přílohy naplánované funkcí „SCHEDULEPRINTOFATTACHMENT“, mají-li stejnou příponu jako vytištěné soubory; příloha s jinou příponou přepne výstup na archiv „zip“. Soubory příloh uložené v NET Geniu se spojením nemění.
- Soubory vytištěné do tiskové šablony se v archivu „zip“ pojmenují slovem „Zaznam“ a pořadovým číslem souboru doplněným zleva nulami podle počtu naplánovaných tisků („Zaznam 1“, „Zaznam 2“...; v angličtině „Record 1“...) a příponou vytištěného souboru. Přílohy naplánované funkcí „SCHEDULEPRINTOFATTACHMENT“ si v archivu ponechají svůj název. Diakritika se z názvů souborů v archivu odstraní.
void SCHEDULEPRINTNAME(string filename)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce naplánuje název souboru tiskové sestavy zadaný parametrem „filename“. Název souboru lze zadat vícejazyčně. Použití funkce má význam pouze ve skriptech, které slouží k tisku do tiskové šablony, a ve skriptu ovládacího prvku „File“ spouštěném při vytvoření dokumentu položkou „Nový ze šablony“, pro který naplánovaný název rovněž platí; končí-li příponou „.pdf“, převede se vytvořený dokument do formátu PDF. Tiskne-li tlačítko editačního formuláře do tiskové šablony ve formátu PDF a končí-li naplánovaný název příponou „.htm“ nebo „.html“, vytiskne se výsledek ve formátu HTML. Na soubory vytištěné funkcemi „SCHEDULEPRINT“ a „SCHEDULEPRINTOFATTACHMENT“, na archiv „zip“ s nimi ani na přílohu vytištěnou funkcí „PRINTATTACHMENT“ se naplánovaný název neuplatní.
Příklad:
SCHEDULEPRINTNAME(Invoice – #ng_cislofv#)
void SCHEDULESAVE()
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce naplánuje uložení právě otevřeného záznamu v editačním formuláři ihned po úspěšném provedení skriptu.
Příklad:
SCHEDULESAVE()
void SCHEDULESAVE(string dbname)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce naplánuje uložení hodnoty ovládacího prvku právě otevřeného záznamu v editačním formuláři ihned po úspěšném provedení skriptu. Funkce působí jen ve skriptu „OnAfterOpen“, kde zapíše hodnotu sloupce do databáze bez uložení záznamu uživatelem; v ostatních skriptech nemá účinek.
Příklad:
SCHEDULESAVE(ng_textbox)
void SCHEDULESCRIPT(int button)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce naplánuje spuštění skriptu přiřazeného tlačítku na nahlížecí stránce zadaného parametrem „button“ ihned po úspěšném provedení skriptu, a to bez ohledu na zaškrtnutí volby „Spustit skript“ i na typ příkazu tlačítka; samotný příkaz tlačítka se neprovede. (Na pořadí řádku s komentářem ve skriptu nezáleží, naplánovaný skript proběhne až po provedení všech kroků skriptu.) Parametr „button“ je možné zjistit v administrátorském režimu v tooltipu, který se zobrazí po zastavení ukazatele myši nad odkazem „Upravit Button ID ...“ nebo nad odkazem „Upravit skript“. Pokud dojde během vykonávání naplánovaného skriptu k chybě, zaloguje se tato chyba do logového souboru „Errors.log“. Spustil-li skript uživatel v editačním formuláři nebo na nahlížecí stránce (uložením nebo smazáním záznamu, tlačítkem), zobrazí se mu navíc hlášení o chybě.
Příklad:
SCHEDULESCRIPT(1)
void SCHEDULESCRIPT(int button, int id)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce naplánuje spuštění skriptu přiřazeného tlačítku v editačním formuláři zadaného parametrem „button“ ihned po úspěšném provedení skriptu. Parametr „button“ je možné zjistit v administrátorském režimu v tooltipu, který se zobrazí po zastavení ukazatele myši nad odkazem „Upravit Button ID ...“ nebo nad odkazem „Upravit skript“. Parametr „button“ musí být ID ovládacího prvku „Button“; skript tlačítka ze záložky „Tlačítko“ databázového ovládacího prvku funkce nespustí, volání se vynechá a zapíše do logového souboru „Errors.log“. Parametr „id“ definuje ID záznamu, jehož data se použijí ke spuštění skriptu. Po dokončení skriptu dojde k uložení záznamu s tímto ID do databáze, pokud je na tlačítku nastavené uložení záznamu po úspěšném provedení skriptu. Nedojde ale ke spuštění skriptu „OnBeforeSave“ a „OnAfterSave“. Pokud dojde během vykonávání naplánovaného skriptu k chybě, zaloguje se tato chyba do logového souboru „Errors.log“. Spustil-li skript uživatel v editačním formuláři nebo na nahlížecí stránce (uložením nebo smazáním záznamu, tlačítkem), zobrazí se mu navíc hlášení o chybě.
Příklad:
SCHEDULESCRIPT(1, 1)
Chování společné pro obě varianty funkce SCHEDULESCRIPT:
- Naplánované skripty se vykonají synchronně ve stejném vlákně až po dokončení celého skriptu, který je naplánoval; každý proběhne ve vlastní databázové transakci potvrzené samostatně. Neběží na pozadí.
- Vykonají se v pořadí, ve kterém byly ve skriptu naplánovány. Pokud naplánovaný skript sám naplánuje další skripty, proběhnou ihned po něm (do hloubky) a teprve poté pokračují zbývající naplánované skripty.
- Opakované naplánování téhož skriptu se provede pouze jednou. Za tentýž se považuje volání se stejným tlačítkem (u varianty s parametrem „id“ se stejnou kombinací tlačítka a „id“); druhé a další naplánování se ignoruje. Volání téhož tlačítka s různým „id“ naopak proběhnou všechna. Tato ochrana zároveň brání zacyklení, kdy by se skripty navzájem plánovaly donekonečna.
- Dojde-li během vykonávání některého naplánovaného skriptu k chybě, zbývající skripty ve frontě, do které tento skript patří, se již nevykonají. Skripty dokončené před chybou zůstávají uložené v databázi. Chyba ve skriptu naplánovaném až jiným naplánovaným skriptem zastaví jen frontu skriptů naplánovaných tímto skriptem; zbývající skripty nadřazené fronty se vykonají.
- Ve skriptech událostí „OnAfterOpen“, „OnBeforeSave“ a „OnBeforeDelete“ a v testovacím spuštění skriptu se naplánované skripty nespustí. Neexistující tlačítko se přeskočí a zapíše se do logového souboru „Errors.log“.
- Přístupová práva k tlačítku ani k záznamu se nekontrolují.
- U varianty s parametrem „id“ se nevykoná nic – ani uložení záznamu –, je-li skript tlačítka prázdný nebo záznam neexistuje. Z nastavení tlačítka se uplatní jen uložení záznamu po provedení skriptu; uložení před skriptem se neprovede.
void SCHEDULESYNC()
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce naplánuje, že se při uložení právě otevřeného záznamu v editačním formuláři zařadí do fronty synchronizace všechny synchronizované sloupce, nejen změněné. Podmínky synchronizace záznamu i jednotlivých sloupců platí dál.
Příklad:
SCHEDULESYNC()
void SCHEDULEURL(string url)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce naplánuje otevření webové stránky zadané parametrem „url“ ihned po úspěšném provedení skriptu.
Příklad:
SCHEDULEURL(https://www.netgenium.com)
void SCHEDULEVIEWPAGE(int viewpage)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce naplánuje otevření nahlížecí stránky zadané parametrem „viewpage“ ihned po úspěšném provedení skriptu. Parametr „viewpage“ je možné zjistit v administrátorském režimu v tooltipu, který se zobrazí po zastavení ukazatele myši nad odkazem „Upravit nahlížecí stránku“.
Příklad:
SCHEDULEVIEWPAGE(1)
double SIN(double number)
Použití: HTML, Skript (jen v číselném výrazu, např. v hodnotě přiřazované do číselné proměnné)
Popis: Funkce vrací sinus z hodnoty zadané parametrem „number“. Je-li název zapsán malými písmeny bezprostředně za tečkou, volání se nevyhodnotí a zůstane zachováno pro prohlížeč.
Příklad:
SIN(-1.23)
// Vrací „-0,942488801931697“
SIN(1.23)
// Vrací „0,942488801931697“
SIN(#A#)
void SKIPDELETE()
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce zabrání smazání právě otevřeného záznamu v editačním formuláři. Ve skriptu „OnBeforeDelete“ spuštěném hromadným mazáním záznamů z nahlížecí tabulky zabrání smazání právě zpracovávaného záznamu. Změny zapsané příkazy skriptu, které skript nepotvrdil funkcí „COMMIT()“, se přitom neprovedou. Transakce skriptu se ale potvrdí, takže zápisy externích funkcí prostřednictvím předaného objektu „cmd“ zůstanou.
Příklad:
SKIPDELETE()
void SKIPSAVE()
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce zabrání uložení právě otevřeného záznamu v editačním formuláři. Změny zapsané příkazy skriptu se v editačním formuláři provedou; při spuštění skriptu jinak než uložením editačního formuláře – například hromadnou změnou, změnou hodnoty v nahlížecí tabulce, v panelu detailů nahlížecí tabulky, na kartě prvku Kanban nebo v detailech prvku Tree, importem z Excelu nebo funkcí „OBSOAS“ – se provedou jen ty, které skript potvrdil funkcí „COMMIT()“. Transakce skriptu se ale i tehdy potvrdí: zápisy externích funkcí prostřednictvím předaného objektu „cmd“ zůstanou a e-maily zařazené k odeslání příkazem „Odeslat e-mail“ se odešlou. Ve skriptu tlačítka funkce přeskočí uložení záznamu po skriptu (krok „3. Uložit záznam“ i vynucené uložení u typu „Otevřít editační formulář“) a ve skriptu „OnAfterOpen“ zruší uložení naplánované funkcí „SCHEDULESAVE()“ bez parametru.
Příklad:
SKIPSAVE()
void SLEEP(int milliseconds)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce pozastaví běh skriptu na „milliseconds“ milisekund. S hodnotou nula nebo zápornou skript nepozastaví.
Příklad:
SLEEP(1000)
int SPLIT(string value, string separator)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací počet prvků v textovém řetězci zadaném parametrem „value“ rozděleném podle hodnoty definované parametrem „separator“. Volání funkce musí dodržovat velká písmena v názvu funkce („SPLIT“) – název zapsaný malými písmeny nebo ve smíšené velikosti písmen nebude vyhodnocen.
Příklad:
SPLIT(A;B;C, ";") // Vrací „3“
SPLIT(1;2;5;6;8, ";") // Vrací „5“
SPLIT(A, ";") // Vrací „1“ (žádný oddělovač nenalezen, ale jeden prvek existuje)
SPLIT(, ";") // Vrací „1“ (prázdný řetězec je stále jeden prvek)
string SPLIT(string value, string separator, int index)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací prvek, který je na pozici zadané parametrem „index“ v textovém řetězci zadaném parametrem „value“ rozděleném podle hodnoty definované parametrem „separator“. Index používá číslování od nuly. Pokud je zadaný index mimo rozsah pole, vrátí funkce prázdný řetězec. Volání funkce musí dodržovat velká písmena v názvu funkce („SPLIT“).
Příklad:
SPLIT(A;B;C, ";", 0) // Vrací „A“
SPLIT(1;2;5;6;8, ";", 3) // Vrací „6“
SPLIT(A;B;C, ";", 5) // Vrací „“ (index mimo rozsah pole)
SPLIT(A;B;C, ";", 2) // Vrací „C“
string SQL(string query)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací hodnotu z prvního řádku a prvního sloupce databázového dotazu zadaného parametrem „query“. Pokud jsou součástí databázového dotazu čárky, je nutné umístit celý dotaz mezi dvojité uvozovky. Proměnné a vnořená volání serverových funkcí se uvnitř těchto uvozovek vyhodnocují (viz kapitolu 1.4.). Vrací-li dotaz v JavaScriptu více sloupců, vrací funkce první řádek výsledku jako pole JavaScriptu (např. „[1, 'Administrator', 'cs']“). Nevrátí-li dotaz žádný řádek, vrací funkce pole s prázdnými hodnotami – u číselných sloupců „0“, u textových a datumových sloupců prázdný text –, takže neexistenci záznamu je nutné testovat podle hodnoty, například podle ID, ne podle samotného pole. Je-li volání v JavaScriptu zapsané přímo jako parametr volání, jehož název je „eval“ bez ohledu na velikost písmen (za název se považují jen písmena a číslice před závorkou, viz kapitolu 1.1., takže jde například o funkci JavaScriptu „bt_Eval“), vrací funkce místo výsledku adresu stránky, ze které si prohlížeč výsledek dotazu načte až samostatným požadavkem; dotaz se provede až tehdy. Desetinné číslo vrací funkce s desetinnou tečkou. Skončí-li dotaz chybou, vrací funkce text chyby. Dotaz musí začínat příkazem SELECT a obsahovat klauzuli FROM a mimo textové literály v apostrofech v něm nesmí být slovo UPDATE, DELETE, ALTER ani DROP; stejnou kontrolou musí projít i dotaz za středníkem nebo za slovem UNION a vnořený dotaz SELECT v kulatých závorkách. Jinak se volání nevyhodnotí a zůstane v textu (viz kapitolu 1.6.). Totéž platí pro varianty s oddělovačem. Kontrola chrání před chybným zápisem dotazu, nezachytí ale každý příkaz, který mění data nebo strukturu databáze. Kontrola zápisu dotazu nenahrazuje ošetření vkládaných hodnot – hodnoty proměnných a ovládacích prvků vkládané do dotazu je nutné formátovat funkcemi „FORMAT...SQL“, například „FORMATSTRINGSQL“, „FORMATINTSQL“, „FORMATDOUBLESQL“ nebo „FORMATDATESQL“.
Příklad:
SQL("SELECT * FROM susers")
string SQL(string query, string separator)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací výsledek databázového dotazu zadaného parametrem „query“. Pokud jsou součástí databázového dotazu čárky, je nutné umístit celý dotaz mezi dvojité uvozovky. Proměnné a vnořená volání serverových funkcí se uvnitř těchto uvozovek vyhodnocují (viz kapitolu 1.4.). Hodnoty výsledku dotazu jsou odděleny oddělovačem zadaným parametrem „separator“; prázdné hodnoty se vynechají i se svým oddělovačem. Oddělovač může být definován pro každý jednotlivý sloupec zvlášť jako seznam hodnot oddělených středníkem. V takovém případě musí být definováno tolik oddělovačů, kolik je počet sloupců – 1, a jednotlivé řádky výsledku odděluje poslední oddělovač ze seznamu. Odpovídá-li počet položek oddělených středníkem počtu sloupců – 1, bere se parametr vždy jako seznam, takže středník v takovém případě nemůže být součástí oddělovače. Desetinná čísla vypisuje funkce bez převodu na desetinnou tečku. Odděluje-li dvě hodnoty s datem a časem téhož dne oddělovač „ - “ (spojovník s mezerami), vypíše se druhá z nich jen jako čas.
Příklad:
SQL("SELECT id, loginname, lng FROM susers", " - ")
SQL("SELECT id, loginname, lng FROM susers", " - ; -- ")
Končí-li parametr „separator“ (u varianty se třemi parametry „columnSeparator“) znaky „++“ a čte-li dotaz z tabulky editačního formuláře, vypíše funkce jen sloupce „id“, „pid“ a sloupce databázových ovládacích prvků formuláře, na které má přihlášený uživatel právo; sloupce ostatních ovládacích prvků se vynechají. Před každou hodnotu vloží název ovládacího prvku s dvojtečkou (u sloupců „id“ a „pid“ text „ID“ a „PID“) a textové hodnoty přeloží podle jazyka přihlášeného uživatele; znaky „++“ se do oddělovače nepočítají.
string SQL(string query, string columnSeparator, string lineSeparator)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací výsledek databázového dotazu zadaného parametrem „query“. Pokud jsou součástí databázového dotazu čárky, je nutné umístit celý dotaz mezi dvojité uvozovky. Proměnné a vnořená volání serverových funkcí se uvnitř těchto uvozovek vyhodnocují (viz kapitolu 1.4.). Sloupce hodnot výsledku dotazu jsou odděleny parametrem „columnSeparator“, a jednotlivé řádky jsou odděleny parametrem „lineSeparator“; prázdné hodnoty se vynechají i se svým oddělovačem. Oddělovač „columnSeparator“ může být definován pro každý jednotlivý sloupec zvlášť jako seznam hodnot oddělených středníkem. V takovém případě musí být definováno tolik oddělovačů, kolik je počet sloupců – 1. Odpovídá-li počet položek oddělených středníkem počtu sloupců – 1, bere se parametr vždy jako seznam, takže středník v takovém případě nemůže být součástí oddělovače. Desetinná čísla vypisuje funkce bez převodu na desetinnou tečku. Odděluje-li dvě hodnoty s datem a časem téhož dne oddělovač sloupců „ - “ (spojovník s mezerami), vypíše se druhá z nich jen jako čas.
Příklad:
SQL("SELECT id, loginname, lng FROM susers", " - ", <br>)
SQL("SELECT id, loginname, lng FROM susers", " - ; -- ", <br>)
string SQLARRAY(string query)
Použití: HTML, JavaScript
Popis: Funkce vrací výsledek databázového dotazu zadaného parametrem „query“. Pokud jsou součástí databázového dotazu čárky, je nutné umístit celý dotaz mezi dvojité uvozovky. Proměnné a vnořená volání serverových funkcí se uvnitř těchto uvozovek vyhodnocují (viz kapitolu 1.4.). Databázový dotaz vrací pole polí ve formě javascriptu. Dotaz musí projít stejnou kontrolou zápisu jako u funkce „SQL“; jinak se volání nevyhodnotí a zůstane v textu (viz kapitolu 1.6.).
Příklad:
SQLARRAY("SELECT id, loginname, lng FROM susers WHERE id <= 2")
Příklad výsledku:
[
[1, 'Administrator', 'cs'],
[2, 'Anonymous', 'cs']
]
string SQLQUERY(string control)
Použití: Skript
Popis: Funkce vrací SQL dotaz ovládacího prvku zadaného parametrem „control“. Parametr „control“ značí název ovládacího prvku podle zvyklostí používaných v proměnných nebo tiskových šablonách:
- datagridX
- DGX
- calendarX, timetableX, plannerX a treeX – dotaz kalendáře, časové tabulky (TimeTable), plánovače (Planner) a stromu
Příklad:
SQLQUERY(datagrid1)
SQLQUERY(DG123)
string SQLTABLE(string query, string key1, [string key2, string key3...])
Použití: HTML, JavaScript, Skript, výraz ve virtuálním sloupci statistického dotazu. Funkce „SQLTABLE“ se používá především ve virtuálním sloupci statistického dotazu jako optimalizovaná varianta k funkci „SQL“, jejíž volání v každém řádku statistického dotazu vede k problémům s rychlostí načítání výsledného statistického dotazu – funkce „SQL“ je spuštěna tolikrát, kolik je v načteném dotazu řádků.
Popis: Funkce načte databázový dotaz zadaný parametrem „query“, který je definován pomocí seskupování dat klausulí „GROUP BY“, a vrací hodnotu posledního sloupce z „query“ pro řádek definovaný klíčem „key1“, „key2“, atd... Dotaz musí projít stejnou kontrolou zápisu jako u funkce „SQL“; jinak se volání nevyhodnotí a zůstane v textu (viz kapitolu 1.6.). Výsledek dotazu je načten do virtuální tabulky v paměti, a z jednotlivých řádků tabulky je sestaven slovník typu klíč-hodnota. Počet sloupců tabulky, které definují unikátní klíč, je určen počtem použitých klíčů v parametrech „key1“, „key2“ atd. Sloupec, který definuje hodnotu, je vždy poslední sloupec z dotazu. Nenalezený klíč vrací prázdný řetězec, stejně jako dotaz, který nemá za sloupci klíčů žádný další sloupec. Opakuje-li se klíč ve více řádcích výsledku, platí první z nich. Výsledek dotazu se načte jen při prvním volání a pro tentýž text dotazu a tentýž počet klíčů se pak používá po celou dobu otevřeného databázového připojení – zpravidla do konce zpracování požadavku nebo běhu skriptu –, takže se v něm neprojeví změny zapsané mezitím; neplatí to, probíhá-li nad připojením transakce.
Příklad – neoptimalizovaná varianta pomocí funkce „SQL“:
Počet položek@SQL("SELECT COUNT(*) FROM ng_polozka WHERE pid = FORMATINTSQL(#c0#)")
Příklad – optimalizovaná varianta pomocí funkce „SQLTABLE“:
Počet položek@SQLTABLE("SELECT pid, COUNT(*) FROM ng_polozka GROUP BY pid", #c0#)
double SQUARE(double number)
Použití: HTML, Skript (jen v číselném výrazu, např. v hodnotě přiřazované do číselné proměnné)
Popis: Funkce vrací druhou odmocninu kladného čísla zadaného parametrem „number“.
Příklad:
SQUARE(-5.22)
// Vrací „NaN“
SQUARE(5.22)
// Vrací „2,28473193175917“
SQUARE(#A#)
string[] StringArray(string text1; string text2; ...)
Použití: Skript
Popis: Funkce deklaruje skriptovou proměnnou typu pole hodnot „String“ z jednotlivých hodnot zadaných parametrem „text1“, „text2“, atd. Parametry funkce se oddělují pomocí středníku nebo tabulátoru. Volání funkce „StringArray“ musí dodržovat velká a malá písmena v názvu funkce.
Příklad:
StringArray(a;b;c)
StringArray(a#tab#b#tab#c)
int SUBSTRACTDATES(DateTime date1, DateTime date2)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací rozdíl mezi daty zadanými parametry „date1“ a „date2“ vyjádřený v minutách a zaokrouhlený na celé minuty; půl minuty se zaokrouhlí směrem od nuly. Rozdíl ve vteřinách vrací funkce „SUBSTRACTDATES2“. Není-li kterýkoli z parametrů platné datum, vrací funkce „0“.
Příklad:
SUBSTRACTDATES(#today# + 14, #today#)
// Vrací „20160“ (14 * 60 * 24)
double SUBSTRACTDATES2(DateTime date1, DateTime date2)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací rozdíl mezi daty zadanými parametry „date1“ a „date2“ vyjádřený ve vteřinách. Není-li kterýkoli z parametrů platné datum, vrací funkce „0“.
Příklad:
SUBSTRACTDATES2(#today# + 14, #today#)
// Vrací „1209600“ (14 * 60 * 24 * 60)
int SUBSTRACTINTEGERS(int value1, int value2)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací rozdíl dvou integerů zadaných parametrem „value1“ a „value2“.
Příklad:
SUBSTRACTINTEGERS(10, 1)
// Vrací „9“
string SUBSTRING(string text, int startindex, int length)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací podřetězec z řetězce zadaného parametrem „text“ počínaje znakem na pozici uložené v parametru „startindex“ o délce uložené v parametru „length“. Je-li hodnota parametru „length“ rovna „-1“, vrací podřetězec počínaje znakem na pozici uložené v parametru „startindex“ až na konec řetězce. Záporná hodnota parametru „length“ se chová stejně jako „-1“. Je-li parametr „length“ větší než zbývající část řetězce, vrací funkce řetězec až do konce. Je-li parametr „startindex“ větší nebo roven délce řetězce, vrací funkce prázdný řetězec; je-li záporný, vrací funkce celý řetězec.
Příklad:
SUBSTRING(Vážený pane Nováku, 12, 5)
// Vrací „Novák“
SUBSTRING(Vážený pane Nováku, 12, -1)
// Vrací „Nováku“
double SUM(object[] array)
Použití: Skript
Popis: Funkce vrací součet hodnot skriptové proměnné zadané parametrem „array“, je-li proměnná polem hodnot. Není-li proměnná polem hodnot, vrací funkce hodnotu proměnné. Textové hodnoty – i u proměnné, která polem hodnot není – funkce bere jako časové údaje ve formátu „HH:mm“ a vrací součet v minutách. Neobsahuje-li pole žádný prvek, vrací funkce „0“. Hodnoty proměnné typu „Date“ funkce počítá jako „0“, takže nad takovou proměnnou vrací „0“. Desetinné číslo vrací funkce s desetinnou tečkou.
Příklad:
SUM(#A#)
void TABLE(string id)
Použití: Název ovládacího prvku HTML – tělo ovládacího prvku musí zůstat prázdné
Popis: Funkce zahájí novou tabulku – vygeneruje HTML kód <table id="{id}" cellspacing="0" cellpadding="0"><tr><td>, tedy otevře zároveň první řádek a jeho první buňku. ID tabulky definuje parametr „id“.
Příklad:
TABLE(T1)
void TABLE(string id, bool visible)
Použití: Název ovládacího prvku HTML – tělo ovládacího prvku musí zůstat prázdné
Popis: Funkce zahájí novou tabulku stejně jako funkce „TABLE(string id)“. Nemá-li parametr „visible“ hodnotu „true“ (na velikosti písmen nezáleží), je tabulka v uživatelském režimu skrytá (styl „display:none“) – skryje ji tedy i například hodnota „0“ nebo „1“.
Příklad:
TABLE(T1, false)
void /TABLE
Použití: Název ovládacího prvku HTML – tělo ovládacího prvku musí zůstat prázdné
Popis: Funkce uzavře aktuální buňku, řádek a tabulku zahájenou funkcí „TABLE“ – vygeneruje HTML kód „</td></tr></table>“. Funkci lze zapsat i se závorkami, například „/TABLE(T1)“ – obsah závorek se nepoužije –, a rozpozná se i tehdy, když tělo ovládacího prvku není prázdné – obsah těla se pak nevypíše. Totéž platí pro funkci „/DIV“.
Příklad:
/TABLE
double TAN(double number)
Použití: HTML, Skript (jen v číselném výrazu, např. v hodnotě přiřazované do číselné proměnné)
Popis: Funkce vrací tangens z hodnoty zadané parametrem „number“. Je-li název zapsán malými písmeny bezprostředně za tečkou, volání se nevyhodnotí a zůstane zachováno pro prohlížeč.
Příklad:
TAN(-0.56)
// Vrací „-0,626949535052698“
TAN(1)
// Vrací „1,5574077246549“
TAN(#A#)
void TD
Použití: Název ovládacího prvku HTML – tělo ovládacího prvku musí zůstat prázdné
Popis: Funkce uzavře aktuální buňku tabulky a zahájí novou – vygeneruje HTML kód „</td><td>“.
Příklad:
TD
void TEFUIG(string message, string group1, string group2, ...)
Použití: Skript
Popis: Funkce vyvolá přerušení s chybovou zprávou zadanou parametrem „message“ všem uživatelům, kteří jsou členy skupin „group1“, „group2“..., a ukončí provádění skriptu. Počet parametrů se seznamem skupin je libovolný. Bez uvedených skupin funkce přerušení nevyvolá. Text zprávy lze zadat vícejazyčně. Skupiny se zadávají ID uživatelských skupin; název skupiny použít nelze. Za členství se počítají i skupiny, které uživateli pro editační formulář nebo nahlížecí stránku dočasně přidělila externí funkce „NETGenium.OpenForm“ nebo „NETGenium.OpenViewPage“. Skupině s ID 1 vyhoví vždy vestavěný účet Administrator.
Příklad:
TEFUIG(Nemáte oprávnění k provedení této činnosti., 6, 21)
TEFUIG("Zpráva, která obsahuje čárku.", 6, 21)
string TEMPPASSWORD()
Použití: HTML, JavaScript, Skript
Popis: Funkce vygeneruje krátké dočasné číselné heslo pomocí kryptograficky bezpečného generátoru náhodných čísel. Je určené jako jednorázové heslo, které si uživatel po přihlášení změní na bezpečné; proto je záměrně číselné a krátké, aby se snadno zadávalo. Funkce jen vrací vygenerované číslo – žádné heslo nenastavuje a změnu hesla po přihlášení nevynucuje. Dočasné heslo uživatelům nastavuje funkce „RESETUSERPASSWORD“.
Příklad:
TEMPPASSWORD()
// Vrací náhodné číselné dočasné heslo, např. „482915“
void TESUIG(string message, string group1, string group2, ...)
Použití: Skript
Popis: Funkce vyvolá přerušení s chybovou zprávou zadanou parametrem „message“ všem uživatelům, kteří nejsou členy skupin „group1“, „group2“..., a ukončí provádění skriptu. Počet parametrů se seznamem skupin je libovolný. Skupiny se zadávají ID uživatelských skupin; název skupiny použít nelze. Text zprávy lze zadat vícejazyčně. Za zprávu funkce připojí větu „Operace je povolena pouze pro {0}.“, kde {0} je seznam názvů zadaných skupin přeložených podle jazyka přihlášeného uživatele. Bez uvedených skupin vyvolá funkce přerušení vždy, a to jen se samotnou zprávou bez připojené věty. Za členství se počítají i skupiny, které uživateli pro editační formulář nebo nahlížecí stránku dočasně přidělila externí funkce „NETGenium.OpenForm“ nebo „NETGenium.OpenViewPage“. Skupině s ID 1 vyhoví vždy vestavěný účet Administrator.
Příklad:
TESUIG(Nemáte oprávnění k provedení této činnosti., 9, 3)
TESUIG("Zpráva, která obsahuje čárku.", 9, 3)
void THROWEXCEPTION(string exception)
Použití: HTML a JavaScript (jen v uživatelském režimu), Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce vyvolá přerušení s chybovou zprávou zadanou parametrem „exception“. Text zprávy lze zadat vícejazyčně.
Příklad:
THROWEXCEPTION(abc)
int TIME2INT(string time)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací počet minut konvertovaný z textového řetězce – času – zadaného parametrem „time“ ve formátu „HH:mm“. Hodnota bez dvojtečky vrací „0“ a sekundovou část zápisu „HH:mm:ss“ funkce nezapočítá. Počet hodin není omezen na 24 („25:00“ vrací „1500“) a zápis začínající znaménkem minus vrací záporný počet minut.
Příklad:
TIME2INT(08:00)
// Vrací „480“
TIME2INT(00:00)
// Vrací „0“
int TIME2MINUTES(string time)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací počet minut konvertovaný z textového řetězce – času – zadaného parametrem „time“ ve formátu „HH:mm“. Hodnota bez dvojtečky vrací „0“ a sekundovou část zápisu „HH:mm:ss“ funkce nezapočítá. Počet hodin není omezen na 24 („25:00“ vrací „1500“) a zápis začínající znaménkem minus vrací záporný počet minut.
Příklad:
TIME2MINUTES(08:00)
// Vrací „480“
TIME2MINUTES(00:00)
// Vrací „0“
double TIME2SECONDS(string time)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací počet vteřin konvertovaný z textového řetězce – času – zadaného parametrem „time“ ve formátu „HH:mm:ss“. Hodnota, která nemá právě tři části oddělené dvojtečkou (například „08:00“), vrací „0“. Počet hodin není omezen na 24 a zápis začínající znaménkem minus vrací záporný počet vteřin.
Příklad:
TIME2SECONDS(00:08:00)
// Vrací „480“
TIME2SECONDS(00:00:00)
// Vrací „0“
void TR
Použití: Název ovládacího prvku HTML – tělo ovládacího prvku musí zůstat prázdné
Popis: Funkce uzavře aktuální buňku a řádek tabulky a zahájí nový řádek s první buňkou – vygeneruje HTML kód „</td></tr><tr><td>“.
Příklad:
TR
string TRANSLATE(string text [, string language])
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací jazykový překlad vícejazyčného termínu zadaného parametrem „text“. Bez parametru „language“ je text přeložen do jazyka přihlášeného uživatele, jinak do jazyka zadaného parametrem „language“ (kód jazyka malými písmeny). Chybí-li v textu překlad do daného jazyka, vrátí funkce výchozí text před první jazykovou značkou bez případné předpony tvořené dvěma malými písmeny bez diakritiky a dvojtečkou; začíná-li text rovnou jazykovou značkou, vrátí první jazykovou verzi. Funkce se vyhodnocuje i v obsahu ovládacích prvků „RichText“ a „Title“, kde slouží k překladu krátkých popisků. Zápis „translate(“ malými písmeny, kterému nepředchází písmeno, číslice, podtržítko, znak „$“, tečka, uvozovka, apostrof ani pomlčka a který nestojí v deklaraci CSS „transform:“, se ale v JavaScriptu, v obsahu ovládacích prvků HTML, RichText a Title editačního formuláře, v textech prvků nahlížecí stránky, v portletu s prvkem HTML nebo RichText na hlavní stránce a v copyrightu navigační oblasti nevyhodnotí jako serverová funkce, protože ho NET Genium přepíše na volání funkce JavaScriptu; serverová funkce se proto zapisuje velkými písmeny. Obsahuje-li text čárku, je nutné ho uzavřít do dvojitých uvozovek – jinak se část za čárkou použije jako parametr „language“.
Příklad:
TRANSLATE(Schvalování bylo stornováno#en:Approval has been canceled)
TRANSLATE(Schvalování bylo stornováno#en:Approval has been canceled,
#language#)
TRANSLATE("Pořadí, doplněné zleva nulami#en:The order, padded with zeros")
string TREECHILDNODES(string dbname, int id)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací seznam ID oddělených středníkem, získaných z tabulky využívané ve stromové struktuře. ID představují všechny potomky záznamu specifikovaného parametrem „id“. Vyhledávání je prováděno rekurzivně, což znamená, že funkce dohledá nejen přímé potomky, ale i jejich další podřízené záznamy. Hodnota „0“ parametru „id“ vrací ID všech záznamů stromu. Započítají se jen záznamy bez rodičovského formuláře nebo vnořené do téhož formuláře; pro záznam bez potomků i pro neexistující ID vrací funkce prázdný řetězec.
Příklad:
TREECHILDNODES(ng_abc, 1)
// Vrací „2;3;4“
string TREEPICKER(int picker, long id3, long pid3, string label, int viewpage)
Použití: HTML editačního formuláře
Popis: Funkce vygeneruje HTML odkaz s textem zadaným parametrem „label“ (přeloží se podle jazyka uživatele), který otevře okno se stromovým výběrem. Strom se vykreslí podle prvního prvku Tree na nahlížecí stránce zadané parametrem „viewpage“ (ID nahlížecí stránky), na který má uživatel právo; nemá-li stránka takový prvek, sestaví se strom z dotazu výběrového dialogu ovládacího prvku zadaného parametrem „picker“. Parametr „picker“ je ID ovládacího prvku s výběrovým dialogem, jehož přiřazení hodnot se po výběru uzlu použije; nemá-li výběrový dialog přiřazení hodnot, okno se ihned zavře. Parametr „id3“ je ID záznamu, do kterého se hodnoty přiřazují, a „pid3“ ID jeho rodičovského záznamu (uplatní se u dosud neuloženého záznamu).
Příklad:
TREEPICKER(4321, #id#, #pid#, Vybrat kategorii, 42)
// Vygeneruje odkaz, po kliknutí se otevře stromový výběr kategorií
string TRIM(string text)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací textový řetězec zadaný parametrem „text“, ve kterém byly na začátku a na konci odstraněny bílé znaky (mezery, tabulátory, konce řádků a nezlomitelné mezery). Zápis „s.trim()“ — malými písmeny za tečkou a s prázdnými závorkami — se nevyhodnotí a zůstane zachován pro prohlížeč.
Příklad:
TRIM( Dobrý den )
// Vrací „Dobrý den“
string TRIM(string text, string trimchars)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací textový řetězec zadaný parametrem „text“, ve kterém byly na začátku a na konci odstraněny všechny znaky uvedené v parametru „trimchars“.
Příklad:
TRIM(010, 023)
// Vrací „1“
string TRIMEND(string text)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací textový řetězec zadaný parametrem „text“, ve kterém byly na konci odstraněny bílé znaky (mezery, tabulátory, konce řádků a nezlomitelné mezery). Zápis „s.trimEnd()“ — v této podobě za tečkou a s prázdnými závorkami — se nevyhodnotí a zůstane zachován pro prohlížeč.
Příklad:
TRIMEND(Dobrý den )
// Vrací „Dobrý den“
string TRIMEND(string text, string trimchars)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací textový řetězec zadaný parametrem „text“, ve kterém byly na konci odstraněny všechny znaky uvedené v parametru „trimchars“.
Příklad:
TRIMEND(010, 023)
// Vrací „01“
string TRIMSTART(string text)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací textový řetězec zadaný parametrem „text“, ve kterém byly na začátku odstraněny bílé znaky (mezery, tabulátory, konce řádků a nezlomitelné mezery). Zápis „s.trimStart()“ — v této podobě za tečkou a s prázdnými závorkami — se nevyhodnotí a zůstane zachován pro prohlížeč.
Příklad:
TRIMSTART( Dobrý den)
// Vrací „Dobrý den“
string TRIMSTART(string text, string trimchars)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací textový řetězec zadaný parametrem „text“, ve kterém byly na začátku odstraněny všechny znaky uvedené v parametru „trimchars“.
Příklad:
TRIMSTART(010, 023)
// Vrací „10“
void UPDATEAUTOSUM(int id, int form)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce přepočítá a uloží hodnoty všech ovládacích prvků „AutoSum“ záznamu zadaného parametrem „id“ v editačním formuláři zadaném parametrem „form“.
Příklad:
UPDATEAUTOSUM(1, 1)
UPDATEAUTOSUM(#id#, #form#)
void UPDATEAUTOSUM(string id, int form)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce přepočítá a uloží hodnoty všech ovládacích prvků „AutoSum“ záznamů zadaných parametrem „id“ (pole hodnot oddělených středníkem) v editačním formuláři zadaném parametrem „form“.
Příklad:
UPDATEAUTOSUM(1;2;3, 1)
void UPDATEAUTOSUM(int id, string dbname)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce přepočítá a uloží hodnoty všech ovládacích prvků „AutoSum“ záznamu zadaného parametrem „id“ v editačním formuláři zadaném parametrem „dbname“.
Příklad:
UPDATEAUTOSUM(1, susers)
void UPDATEAUTOSUM(string id, string dbname)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce přepočítá a uloží hodnoty všech ovládacích prvků „AutoSum“ záznamů zadaných parametrem „id“ (pole hodnot oddělených středníkem) v editačním formuláři zadaném parametrem „dbname“.
Příklad:
UPDATEAUTOSUM(1;2;3, susers)
Chování společné pro všechny varianty funkce UPDATEAUTOSUM:
- Funkce přepočítá a zapíše sumy okamžitě, mimo transakci skriptu – výsledek nevrátí ani pozdější chyba skriptu.
- Funkce čte jen potvrzená data. Mají-li sumy zahrnout zápisy, které skript provedl dříve, je nutné je předem potvrdit funkcí „COMMIT()“, například „COMMIT() UPDATEAUTOSUM(#id#, #form#)“.
- Uložení se zapíše do historie změn a zařadí do fronty synchronizace stejně jako uložení editačního formuláře; ukládací skripty formuláře se ale nespustí.
- Záznam, který v tabulce neexistuje, funkce bez hlášení přeskočí.
- V testovacím běhu skriptu se funkce neprovádí.
string UPLOADBUTTON(string title, int width, int height, string accept, string control1 [, string control2...])
Použití: HTML editačního formuláře
Popis: Funkce v editačním formuláři vykreslí tlačítko pro výběr a hromadné nahrání souborů. Umožňuje v editačním formuláři vložit více souborů najednou, resp. vybrat a nahrát více souborových příloh současně — kliknutím na tlačítko se otevře dialog pro výběr jednoho nebo více souborů. Parametr „title“ určuje text tlačítka, „width“ a „height“ jeho rozměry v pixelech, „accept“ filtr přijímaných typů souborů a další parametry obsahují databázové názvy ovládacích prvků typu soubor, do kterých se nahrané soubory postupně uloží. Stejný účel (hromadné nahrání více souborů najednou) plní i funkce DROPZONE, která místo tlačítka vykreslí oblast pro přetažení souborů.
Parametr „accept“ může obsahovat přípony souborů („.jpg,.jpeg,.png“), MIME typy („application/pdf“, „image/*“), „*“ nebo prázdný řetězec pro libovolný typ souboru. Samotná hodnota „camera“ nabídne pořízení fotografie přímo fotoaparátem zařízení (přijímá obrázky); s příponami ji kombinovat nelze. Při šířce 0 se použije výchozí šířka tlačítka; je-li text tlačítka širší, tlačítko se rozšíří podle něj. Při výšce 0 se použije výchozí výška.
Příklady:
UPLOADBUTTON(Nahrát PDF, 160, 32, application/pdf, ng_priloha1, ng_priloha2)
CONTROL(Nahrát z galerie, UPLOADBUTTON(Nahrát, 150, 30, ".jpg,.jpeg,.png", ng_soubor1, ng_obrazek1), )
CONTROL(Vyfotit, UPLOADBUTTON(Nahrát, 150, 30, "image/*", ng_soubor1, ng_obrazek1), )
CONTROL(Vyfotit, UPLOADBUTTON(Vyfotit, 150, 30, camera, ng_soubor1, ng_obrazek1), )
CONTROL(Vyfotit, UPLOADBUTTON(Nahrát, 150, 30, "", ng_soubor1, ng_obrazek1), )
CONTROL(Vyfotit, UPLOADBUTTON(Nahrát, 0, 0, "*", ng_soubor1, ng_obrazek1), )
string UPPER(string text)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací textový řetězec zadaný parametrem „text“, ve kterém jsou všechny znaky převedeny na velká písmena.
Příklad:
UPPER(abc)
// Vrací „ABC“
string URLDECODE(string text)
Použití: HTML, JavaScript, Skript
Popis: Funkce dekóduje všechny URL hexadecimální znaky v textovém řetězci zadaném parametrem „text“. Znak „+“ funkce převede na mezeru.
Příklad:
URLDECODE(https%3a%2f%2fwww.netgenium.com)
// Vrací „https://www.netgenium.com“
string URLENCODE(string text)
Použití: HTML, JavaScript, Skript
Popis: Funkce zakóduje všechny URL nevalidní znaky (např. mezera) v textovém řetězci zadaném parametrem „text“ za odpovídající sekvenci znaků v hexadecimální podobě. Mezeru funkce zakóduje znakem „+“.
Příklad:
URLENCODE(https://www.netgenium.com)
// Vrací „https%3a%2f%2fwww.netgenium.com“
string USERDETAILS(string columnname)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací hodnotu uloženou v databázové tabulce uživatelů ve sloupci zadaném parametrem „columnname“ na řádku, který se vztahuje k aktuálně přihlášenému uživateli. Hodnoty sloupců, jejichž název obsahuje „password“ nebo „md5“, funkce nevrací. Neexistuje-li sloupec zadaný parametrem „columnname“, volání se nevyhodnotí a zůstane v textu (viz kapitolu 1.6.). Hodnoty se načítají při přihlášení uživatele, takže změna jeho záznamu provedená později se projeví až po novém přihlášení; uloží-li uživatel vlastní záznam ve formuláři uživatele, hodnoty se obnoví v relaci, ve které záznam uložil.
Příklad:
USERDETAILS(id)
USERDETAILS(loginname)
string USERGROUP(string loginname)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací seznam všech názvů uživatelských skupin oddělených středníkem, v nichž je uživatel zadaný parametrem „loginname“ členem. Názvy vrací v uložené podobě, u vícejazyčného názvu tedy včetně všech jazykových verzí (například „Obchod#en:Sales“), a v neurčeném pořadí.
Příklad:
USERGROUP(Administrator)
USERGROUP(#loginname#)
string USERINGROUP(string group1 [, string group2, ...])
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací hodnotu „x“, je-li aktuálně přihlášený uživatel členem uživatelské skupiny zadané parametrem „group1“, popřípadě členem více skupin zadaných dalšími parametry. Funkce vrací hodnotu „“ pokud členem této uživatelské skupiny není. „Group“ může být ID uživatelské skupiny nebo její jméno. Za členství se počítají i skupiny, které uživateli pro editační formulář nebo nahlížecí stránku dočasně přidělila externí funkce „NETGenium.OpenForm“ nebo „NETGenium.OpenViewPage“ – ty ale jen při zadání ID skupiny; název skupiny se porovnává jen s trvalými skupinami uživatele, a to s celým uloženým názvem (u vícejazyčného názvu včetně všech jazykových verzí, například „Obchod#en:Sales“) a s rozlišením velikosti písmen; u vícejazyčné skupiny je proto spolehlivější zadat ID. Uživatel s administrátorskými právy vyhoví vždy skupině s ID 1 i s názvem „Administrators“.
Příklad:
USERINGROUP(1)
USERINGROUP(Administrators)
USERINGROUP(1, 2)
USERINGROUP(Administrators, Users)
// Vrací „“ nebo „x“
string USERSINGROUP(int group1 [,... int group2])
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací seznam všech ID uživatelů oddělených středníkem, kteří jsou členy skupiny zadané parametrem „group1“, popřípadě více skupin zadaných dalšími parametry.
Příklad:
USERSINGROUP(1)
USERSINGROUP(1, 2)
// Vrací například „1“, „1;2“ atp.
string USERSINGROUP(string group1 [,... string group2])
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací seznam všech ID uživatelů oddělených středníkem, kteří jsou členy skupiny zadané parametrem „group1“, popřípadě více skupin zadaných dalšími parametry.
Příklad:
USERSINGROUP(Administrators)
USERSINGROUP(Administrators, Users)
// Vrací například „1“, „1;2“ atp.
string USERSINGROUP2(int group1 [,... int group2])
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací seznam všech přihlašovacích jmen uživatelů oddělených středníkem, kteří jsou členy skupiny zadané parametrem „group1“, popřípadě více skupin zadaných dalšími parametry.
Příklad:
USERSINGROUP2(1)
USERSINGROUP2(1, 2)
// Vrací například „Administrator“, „Administrator;Anonymous“ atp.
string USERSINGROUP2(string group1 [,... string group2])
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací seznam všech přihlašovacích jmen uživatelů oddělených středníkem, kteří jsou členy skupiny zadané parametrem „group1“, popřípadě více skupin zadaných dalšími parametry.
Příklad:
USERSINGROUP2(Administrators)
USERSINGROUP2(Administrators, Users)
// Vrací například „Administrator“, „Administrator;Anonymous“ atp.
Chování společné pro funkce USERSINGROUP a USERSINGROUP2:
- Každý parametr může obsahovat více skupin oddělených tabulátorem, takže lze předat přímo hodnotu ovládacího prvku MultiListBox. ID a názvy skupin lze v parametrech kombinovat.
- Název skupiny se porovnává s celým uloženým názvem, u vícejazyčného názvu tedy včetně všech jazykových verzí (například „Obchod#en:Sales“); u vícejazyčné skupiny je proto spolehlivější zadat ID.
string VALIDEMAIL(string email)
Použití: HTML, JavaScript, Skript
Popis: Funkce otestuje správnost formátu e-mailové adresy zadané parametrem „email“. Pokud ano, funkce vrací „x“. Pokud e-mailová adresa není ve správném formátu, funkce vrací prázdný řetězec.
Příklad:
VALIDEMAIL(info@netgenium.com)
// Vrací „x“
void WEBFORM
Použití: Poznámka editačního formuláře nebo název ovládacího prvku HTML (tělo ovládacího prvku musí zůstat prázdné)
Popis: Funkce zahájí blok ovládacích prvků, které nepoužívají barevné pozadí v levém sloupci s názvem ovládacího prvku, a které používají reverzní design – ovládací prvky nemají rámeček, mají nastavené barevné pozadí, a při focusu zobrazují barevnou lištu pod ovládacím prvkem. V uživatelském režimu se tlačítka, nahlížecí tabulky DataGrid a LiteDataGrid a vizuální ovládací prvky Calendar, TimeTable, Planner, Kanban, Chart, Map a Tree, které nejsou přichycené k předchozímu ovládacímu prvku, zobrazují v bloku bez levého sloupce s názvem, od levého okraje formuláře. Zahájený blok, který není ukončen pomocí funkce „/WEBFORM“, ukotví tlačítka „Uložit“, „Smazat“ a „Zpět“. Tato tlačítka pak nebudou plovoucí a budou se zobrazovat vždy až na konci editačního formuláře.
Příklad:
// V poznámce editačního formuláře se funkce zapisuje se závorkami
WEBFORM()
// V názvu ovládacího prvku HTML se zapisuje bez závorek, zápis „WEBFORM()“ se v něm neuplatní
WEBFORM
void /WEBFORM
Použití: Název ovládacího prvku HTML – tělo ovládacího prvku musí zůstat prázdné
Popis: Funkce zakončí blok ovládacích prvků, které nepoužívají barevné pozadí v levém sloupci s názvem ovládacího prvku, a které používají reverzní design – ovládací prvky nemají rámeček, mají nastavené barevné pozadí, a při focusu zobrazují barevnou lištu pod ovládacím prvkem.
Příklad:
/WEBFORM
void WRITEMESSAGE(string message)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce vypíše zprávu zadanou parametrem „message“ ihned po úspěšném provedení skriptu. Text zprávy lze zadat vícejazyčně. Nebezpečné značky HTML se ze zprávy odstraní. Funkci nelze využít ve skriptu „OnBeforeSave“ a „OnAfterSave“.
Příklad:
WRITEMESSAGE(Provádění skriptu bylo úspěšně dokončeno.)
WRITEMESSAGE("Zpráva, která obsahuje čárku.")
void WRITEMESSAGE(string message, bool dialog)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Popis: Funkce vypíše zprávu zadanou parametrem „message“ ihned po úspěšném provedení skriptu, a zobrazí ji také v dialogovém okně. Text zprávy lze zadat vícejazyčně. Nebezpečné značky HTML se ze zprávy odstraní. Funkci nelze využít ve skriptu „OnBeforeSave“ a „OnAfterSave“.
Příklad:
WRITEMESSAGE(Provádění skriptu bylo úspěšně dokončeno., true)
WRITEMESSAGE("Zpráva, která obsahuje čárku.", true)
void WRITESITEMAP(string directory, string url)
void WRITESITEMAP(string directory, string url, string extraLanguages)
Použití: Skript (na místě, kde se očekává zadání komentáře)
Omezení: Funkce není dostupná v cloudové variantě NET Genium Online.
Popis: Funkce zapíše do adresáře na disku serveru zadaného parametrem „directory“ (typicky kořenový adresář webové aplikace) soubor sitemap.xml pro web dostupný na URL zadané parametrem „url“. Soubor obsahuje adresy aktivních webových stránek všech jazykových verzí složené z URL webu, kódu jazyka a adresy stránky; systémové webové stránky se do něj nezapisují, a to včetně všech jejich podřízených webových stránek, a nezapisují se ani webové stránky pod neaktivní nadřazenou webovou stránkou. Webová stránka, která návštěvníka přesměrovává značkou [[Alias:...]], se zapíše pod adresou, na kterou přesměrovává – pokud je to úplná adresa začínající URL webu. Jinak se do souboru nezapíše, její podřízené webové stránky ano. Za přesměrování se nepovažuje alias na identifikátor téže webové stránky ani alias na webové stránce s identifikátorem „search“. U webové stránky, která má záznam v historii změn, obsahuje datum poslední změny. Nepovinný parametr „extraLanguages“ je středníkem oddělený seznam kódů jazyků (např. „cs;en;de“) – pro každý z nich se navíc zapíše samostatný soubor sitemap-kód jazyka.xml (např. sitemap-cs.xml) jen s webovými stránkami dané jazykové verze. Soubory se zapisují na pozadí, takže skript na dokončení zápisu nečeká, a chyba při zápisu se uživateli neohlásí – zapíše se jen do logu „Errors“. Při testovacím spuštění skriptu se funkce neprovede. Webové stránky čte funkce z tabulky „ng_webovastranka“ aplikace pro správu webové prezentace; spuštěná ve skriptu editačního formuláře, jehož tabulka začíná názvem „ng_webovastranka“, čte tabulku tohoto formuláře.
Příklad:
WRITESITEMAP(D:\inetpub\wwwroot\www.mojefirma.cz, https://www.mojefirma.cz)
// Zapíše soubor D:\inetpub\wwwroot\www.mojefirma.cz\sitemap.xml
WRITESITEMAP(D:\inetpub\wwwroot\www.mojefirma.cz, https://www.mojefirma.cz, cs;en)
// Zapíše navíc soubory sitemap-cs.xml a sitemap-en.xml
int YEAR(DateTime date)
Použití: HTML, JavaScript, Skript
Popis: Funkce vrací číslo roku z data zadaného parametrem „date“. Pro neplatné datum vrací prázdný řetězec.
Příklad:
YEAR(15.2.2013)
// Vrací „2013“
YEAR(#now#)