Obsah

Top

RON Portál - nápověda

XML formuláře

Nastavení

Pro starší formuláře (bez parametru "mode") musí být v PHP povolen modul xslt, obvykle takto:

    extension=php_xsl.dll

Pro správnou funkčnost povolených modulů je potřeba zkontrolovat cestu, z které se načítají. Na Windows obvykle takto:

    extension_dir = "ext"

Pokud se databáze připojuje přes ODBC, je potřeba nastavit dostatečně velkou hodnotu pro maximální velikost datového pole, např:

    odbc.defaultlrl = 524288

Stejně tak je potřeba nastavit limity v případě přímého připojení přes MSSQL:

mssql.textlimit = 524288
mssql.textsize = 524288

Pokud se v PHP nezobrazují warningy a místo toho se provádění skriptu ukončí, zkontrolujte nastavení logování chyb v PHP. K chybě dochází když je nastavené log_errors na On, ale není nastavena cesta k souboru error_log - viz http://forums.iis.net/p/1146102/1856222.aspx#1856222 Pomůže správné nastavení cesty k souboru s logem, nebo případně (jako nouzové řešení) nastavení log_errors na off.

Princip a módy formulářů (parametr mode)

XML formulář definuje obsah, který se zobrazí uživateli a případně akce které se budou provádět po zadání dat. Může být předávací - to znamená, že se po po uložení vyplněný formulář uloží do databáze (Vyplněné XML formuláře) a může se předávat dalším uživatelům. Způsob zpracování formuláře určuje parametr mode.

S formulářem se pracuje v několika režimech v závislosti na jeho módu:

Starší formuláře nepoužívaly parametr mode. Místo toho měly příznak neukladat="1" nebo neukladat="2". Hodnota 2 (doplněna 7.6.2016) pracuje jinak s POST a pro akci formulare používá stejnou URL jako pro zobrazení. Navíc v nich bylo potřeba pomocí parametru verze="2" zapnout používání nového zápisu proměnných.

Pro vytváření XML formuláře je někdy užitečné zapnout ladící informace. To se provede povolením v _appdbset.php

    $enabledebugmode = 1;

a následným zapnutím v URL adrese pomocí parametru debug=1. Ladící informace se zobrazují jen uživateli, který si je takto zapne, takže je to možné provádět i u zákazníka v ostrém provozu.

Základní tvar šablony

Šablona XML formuláře musí vypadat takto:

  <?xml version="1.0" encoding="windows-1250"?>
  <?xml-stylesheet href="ronform.xsl" type="text/xsl"?>
  <!-- JMENO AUTORA, RON Software, 2011 -->
  <ronform mode="data" xmlns:html="http://www.ron.cz/xmlforms/ns/html/" xmlns:htmladd="http://www.ron.cz/xmlforms/ns/html/">
     ... obsah xml sablony ...
  </ronform>

Pokud šablona neobsahuje editovatelné prvky, nebo je zpracování editovatelných prvků a odesílání formuláře řešené nějakým jiným způsobem, je možné místo ronform použít ronxml. Rozdíl je v tom, že ronxml nevkládá do HTML stránky form a skrytá pole. Uvnitř tagu je možné použít xmlform, který skrytá pole vloží. To lze použít například v případě, že má být ve stránce více formulářů.

    <?xml version="1.0" encoding="windows-1250"?>
    <?xml-stylesheet href="ronform.xsl" type="text/xsl"?>
    <!-- JMENO AUTORA, RON Software, 2013 -->
    <ronxml mode="show">
        ... obsah xml sablony ...
        ... generovaná stránka neobsahuje form a skrytá pole, takže nelze pouzit <predatdale> a podobně
    </ronxml>

Datové XML formuláře (tj. formuláře, ve kterých se při předávání ukládají jen data) musí mít parametr mode="data".

    <?xml version="1.0" encoding="windows-1250"?>
    <?xml-stylesheet href="ronform.xsl" type="text/xsl"?>
    <!-- JMENO AUTORA, RON Software, 2017 -->
    <ronform mode="data">
        ... obsah xml sablony ...
    </ronform>

Důležitá je správná hlavička a kořenový tag <ronform>.
Vše se řídí pravidly XML. Poznámky se zapisují mezi znaky <!-- a -->
Každý element může vypadat takto:
<JMENO_ELEMENTU> ... obsah ... </JMENO_ELEMENTU>
nebo (pokud nemá žádný vnořený obsah) takto:
<JMENO_ELEMENTU />

Pořadí parametrů v tagu není podstatné a některé parametry mohou být úplně vynechány. Záleží na velikosti písmen.

Tagy <ronform> a <xmlform> mohou obsahovat také html atributy, např. html:class="..."

Obsah XML šablony

libovolný text formátovaný pomocí HTML značek

Kopíruje se do HTML a v případě transformovaných formulářů (mode="transform") i do výsledného vyplněného formuláře
<div> ... obsah ... </div>

V obsahu lze použít HTML značky, ale musí odpovídat XML pravidlům.
Např.

Pozor! Text nesmí obsahovat řídící znaky jako např. "<" a ">" Pro zobrazení těchto znaků lze použít aliasy &lt; a &gt; Nebo lze text uzavřít do sekce CDATA

HTML tabulky

  <table class="browser">
     <tr>
        <td>testovací tabulka</td><td>sloupec 2</td><td>třetí sloupec</td>
     </tr>
     <tr>
        <td>druhý řádek</td><td>té testovaci</td><td>tabulky ...</td>
     </tr>
  </table>

Tag <inputtable>

Orámovaná tabulka, která stylem odpovídá formulářům intrawebu. Tabulka má jeden sloupec s nadpisy a druhý s obsahem (edity, zaškrtávátka atd). Její použití není povinné, takže pokud je potřeba rozvrhnout stránku nějak jinak, lze použít např. standardní HTML tabulky.

  <inputtable>
     <inputtablerow caption="Nadpis řádku">
        ... obsah ...
     </inputtablerow>
  </inputtable>

Proměnné

V šabloně lze využívat předdefinované proměnné a definovat vlastní proměnné. Ovládací prvky (textová pole, zaškrtávátka, ...) vždy definují proměnné, které je možné následně využívat. Proměnná se vloží pomocí zápisu {$<nazev_promenne>}.

Předdefinované proměnné jsou: Je možné definovat vlastní proměnné. Jsou 2 možné zápisy pro definici hodnoty proměnné.
  <variable name="promenna1" value="Testovací hodnota proměnné 1" preserveparams="0/1" />
  <variable name="promenna2" preserveparams="0/1">
     Hodnota proměnné 2
     lze použít např. pro SQL dotazy
  </variable>
Druhý zápis může být přehlednější v případě definování nějakého delšího textu, např. SQL dotazu, textu pro email a podobně. V dřívějších verzích portálu se pro druhý zápis používal tag longvariable.
Parametr preserveparams zajistí, že v hodnotě proměnné nebudou při zpracování tagu nahrazeny parametry. To je možné použít například když se pomocí proměnné definuje SQL výraz s parametry, které se mají nahradit až v okamžiku použití SQL dotazu. Pro nastavení hodnoty prvku pole se použije zápis:
  <variable name="promenna1" index="index1" value="Testovací hodnota proměnné 1" preserveparams="0/1" />
Pole je možné definovat také přidámím atributu delimiter - v tom případě použije funkci PHP explode a rozebere zadanou hodnotu na pole pomocí zadaného oddělovače. Parametrem explodelimit je možné nastavit maximální počet prvků pole (parametr limit funkce explode) Pokud se má v datovém XML (mode="data") proměnná uložit i do dat XML formuláře, tak použijte tag datavariable
  <datavariable name="promenna_do_dat" value="Testovací hodnota datové proměnné" />
I u tagu datavariable je možný zápis s hodnotou v těle tagu místo atributu value.

Pokud byl formulář odeslán (uložen), nebo u neukládaných proběhl POST bude v proměnné hodnota z POSTu. Potlačení využití hodnot z POSTu je možno pomocí tagu:
  <usepostvalues value="0" />

Možnost definovat proměnné pomocí SQL výrazu:
   <sqlvariable name="JMENO_PROMENNE" format="FORMAT_PROMENNE"  copy="0/1/yes/no"  log="0/1/2" sqltextvariable="promenna s sql vyrazem">SQL vyraz</sqlvariable>
FORMAT_PROMENNE může být: Tuto proměnnou lze použít v SQL výrazech.
Pokud není formát zadán, bude proměnná v takovém tvaru, jako byla vrácena z databáze
Parametr copy určuje, jestli se po vyplnění formuláře zachová původní tag s sql dotazem (toto je i výchozí chování, pokud není copy zadán), nebo se transformuje na <variable> (v případě, že je copy "0" nebo "no"), což znamená, že hodnota proměnné se pak již nemění.
Nepovinný parametr log určuje, jestli se má provedený výraz zapsat do DB logu. Pokud je 1, tak se zapisuje text SQL dotazu, pokud je 2, tak se navíc zapíší i načtené hodnoty. Lze zapsat jen hodnoty, které lze automaticky konvertovat na řetězec! U některých způsobů připojení k databázi nefunguje například pro datumy!
SQL výraz může být zadán pomocí prorměnné sqltextvariable (proměnná se zadaným jménem musí obsahovat SQL výraz) nebo v těle tagu.
Pokud vrací zadaný SQL výraz více polí, bude výsledná proměnná pole. První prvek pole je naformátován zadaným formátem.

Příklad:
   <sqlvariable name="pocetosob">
       SELECT COUNT(*) FROM Osoba
   </sqlvariable>

   <sqlvariable name="pocetosob">
     <![CDATA[
       SELECT COUNT(*) FROM Osoba WHERE Prijmeni < 'L'
     ]]>
   </sqlvariable>

   <sqlvariable name="pocetosob" sqltextvariable="SQL1" />
V prvním zápise nesmí být v SQL výrazu použité znaky < a >. Pokud je potřeba tyto znaky použít, musí se použít druhý způsob zápisu s CDATA.

POST

  <postvariable name="promenna1" htmlname="..." format="..."/>
Umožní načíst hodnotu proměnné z POST (zadané uživatelem nebo odeslané jako hidden). Takto je možné zjistit hodnotu proměnné ještě před tím, než se ve formuláři zpracuje příslušný tag (edit, checkbox, hidden, ...). Parametr htmlname je nepovinný - pokud není zadán, použije se name. Parametr format je také nepovinný.

Zobrazení hodnoty proměnné:
  <variablevalue name="promenna1" suffix="..." index="..." format="..."/>
Zobrazí hodnotu zadané proměnné. Nepovinný suffix je přidán k názvu proměnné. Parametr format je nepovinný. Pokud je zadán index, musí být proměnná pole (nebo null), jinak je zahlášena chyba.

Proměnnou je možné použít v obsahu a atributech některých tagů. Použije se pomocí zápisu {$NAZEV_PROMENNE}. U tagů, ve kterých se zadává přímo PHP kód (např. expression nebo if) je možné použít také referenci naproměnnou {@NAZEV_PROMENNE}. V tomto případě se místo hodnoty proměnné vloží kód pro načtení hodnoty této proměnné.

Text

<text>
   Text s proměnnýma ...
</text>
Zobrazí přímo zadaný text s nahrazením proměnných.

Nastavení rozdělení formuláře - nastavrozdeleniformulare

   <nastavrozdeleniformulare typ="kodtypu" kod="kodrozdeleni" />
Nastaví rozdělení formuláře (tj. pole KodTypuRozdeleni a Rozdeleni v tabulce VyplnenyXMLFormular a proměnné XML_KODTYPUROZDELENI a XML_ROZDELENI).

Vyhodnocení výrazů

<expression name="vysledna_promenna" copy="0/1/yes/no">
   PHP výraz s proměnnými, například:
   '{$retezec1}' . '{$retezec2}'   // spojeni retezcu - retezce je nutne uzavirat do uvozovek nebo apostrofu, operator pro spojeni je . (tecka)!
</expression>
V zadaném výrazu nahradí proměnné a vyhodnotí jej. Výsledek zapíše do zadané proměnné (name). Pokud není název proměnné zadán, tak výsledek nikam neukládá - v takovém případě nemusí zadaný výraz ani vracet žádnou hodnotu a může to být obecně jakýkoliv PHP kód.
Parametr copy určuje, jestli se po vyplnění formuláře zachová původní tag s výrazem (toto je i výchozí chování, pokud není copy zadán), nebo se transformuje na <variable> (v případě, že je copy "0" nebo "no"), což znamená, že hodnota proměnné se pak již nemění.
V případě nutnosti je možné použít ve vloženém kódu proměnnou $xmlform, případně $xmlform ->database

Nastavení období formuláře - nastavobdobiformulare

   <nastavobdobiformulare obdobi="..." aplikace="kodaplikace" variabilni="0/1" name="jmenopromenne"/>
Nastaví období formuláře (tj. pole Obdobi v tabulce VyplnenyXMLFormular a proměnnou XML_OBDOBI). Pokud je zadaný kód aplikace a jméno proměnné, tak načte z databáze také další parametry období a nastaví podle něj proměnné, stejně jako tag vyberobdobi.

Nastavení osoby formuláře - nastavosobuformulare

   <nastavosobuformulare rc="rodne_cislo" name="jmeno_promenne" />
Nastaví osobu formuláře (tj. pole RC v tabulce VyplnenyXMLFormular). Pokud je zadáno jméno proměnné "name" tak zároveň nastaví příslušné proměnné (name_...)

Nastavení pracovního poměru formuláře - nastavpracovnipomer

   <nastavpracovnipomer idpp="id_PP" name="jmeno_promenne" />
Nastaví pracovní poměr formuláře (tj. pole PP_RC, PP_OsobniCislo, PP_DatumNastupu v tabulce VyplnenyXMLFormular). Pokud je zadáno jméno proměnné "name" tak zároveň nastaví příslušné proměnné (name_...)

Výběr období a/nebo rozdělení a/nebo osoby pro náhledové formuláře - adsfilterform

   <adsfilterform autosubmit="0/1" useget="0/1">
      <adsfilterform_obdobi aplikace="ADS" jenotevrene="0/1"/>
      <adsfilterform_osoby prava="prohlizeni"/>
      <adsfilterform_rozdeleni typrozdeleni="kodtypu" pouzevlastni="0/1/2" prava="typprav" pouzitpopistypurozdeleni="0" > nepovinny_sql_filtr_pro_vyber_rozdeleni </adsfilterform_rozdeleni>
      <adsfilterform_rozdeleni2 typrozdeleni="kodtypu" pouzevlastni="0/1/2" pouzitpopistypurozdeleni="0" > nepovinny_sql_filtr_pro_vyber_rozdeleni </adsfilterform_rozdeleni2>
   </adsfilterform>
Pro výběr osob podle předávacího procesu formuláře:
   <adsfilterform>
      <adsfilterform_osoby/>
   </adsfilterform>

Tag <adsfilterform> zobrazí standardní intrawebový formulář pro výběr období nebo osoby. Zobrazené filtry se určí pomocí vnořených tagů. Nepovinný parametr autosubmit určuje, jestli se při změně některého z filtrů provede automatické odeslání formuláře. Výchozí hodnota je 1 (odesílá se automaticky).
Nepovinný parametr useget určuje, jestli se pro odeslání hodnot použije metoda GET (hodnota 1 - doporučeno) nebo POST (výchozí kvůli kompatibilitě starých formulářů).
Vytváří proměnnou adsfilterformsubmit, která obsahuje hodnotu 1 pokud byl v předchozím kroku formulář odeslán (automaticky nebo pomocí tlačítka Nastavit), jinak 0.

Tag <adsfilterform_obdobi aplikace="ADS"/> zobrazí výběr období zadané aplikace. Vytvoří proměnné

Tag <adsfilterform_rozdeleni typrozdeleni="kodtypu" pouzevlastni="0/1/2"> zobrazí výběr rozdělení zadaného typu. Pokud je pouzevlastni=1, zobrazí jen rozdělení uživatele a podřízená. Pokud je pouzevlastni=2 a je zadán typ práv (parametr prava), zobrazí jen rozdělení zaměstnanců, na které má uživatel příslušné právo. Vytváří proměnné ROZDELENI, ROZDELENI_kod a ROZDELENI_popis
Pomocí parametru showvcetnepodrizenych="1" je možné zapnout zobrazení zaškrtávátka "včetně podřízených". Pak navíc vytváří proměnnou ROZDELENI_vcetnepodrizenych s hodnotou 0 nebo 1.

Tag <adsfilterform_rozdeleni2 typrozdeleni="kodtypu" pouzevlastni="0/1/2"> zobrazí druhý výběr rozdělení zadaného typu. Vytváří proměnné ROZDELENI2, ROZDELENI2_kod a ROZDELENI2_typ
Pomocí parametru showvcetnepodrizenych="1" je možné zapnout zobrazení zaškrtávátka "včetně podřízených". Pak navíc vytváří proměnnou ROZDELENI2_vcetnepodrizenych s hodnotou 0 nebo 1.

Tag <adsfilterform_osoby prava="prohlizeni"/> zobrazí výběr pracovního poměru podle práv aktuálního uživatele nebo podle předávacího procesu (pokud není zadán parametr prava).
Typ práv může být zadán parametrem prava (viz záznamy v tabulce TypPravaProIntraweb).
Vytvoří proměnné OSOBA, OSOBA_id - id vybraného pracovního poměru a další proměnné stejně jako u tagu <vyberpracovnihopomeru>

Editovatelné prvky

POZOR! Každý prvek musí mít své jedinečné jméno v rámci celého XML formuláře. Toto jméno musí odpovídat identifikátoru programovacího jazyka (začíná písmenem, dále může obsahovat písmena i čísla). Nepoužívejte pro jména diakritiku!

Hidden pole

Vloží do formuláře prvek hidden. Používá se pro předání informací, které nezadává uživatel (např. načtené z databáze).
   <hidden name="nazev" value="hodnota" format=""/>

POST - načtení hodnoty zadané uživatelem do proměnné

   <postvalue name="nazev" format="" htmlname="htmlname" />
Načte do proměnné se zadaným názvem hodnotu odeslanou v předchozím kroku formuláře. Může to být hodnota zadaná uživatelem, nebo odeslaná v pomocí <hidden>. Umožňuje zjistit hodnotu zadané proměnné ještě před tím, než se ve formuláři zpracuje příslušný editovatelný prvek (edit a podobně). Parametr name určuje jméno vytvořené proměnné. Parametr format určuje požadovaný datový formát. Nepovinný parametr htmlname určuje jméno použité v html stránce. Pokud není zadán, použije se name.

Textové pole - edit

   <edit name="testovaciedit" format="" required="yes/no/0/1" editing="yes/no/append/nolog" size="60">
      předplněný obsah editu - může samozřejmě být prázdný
   </edit>
zobrazí textové pole pro zadání jednoho řádku textu.
možné hodnoty pro editing jsou:
- parametr required je nepovinný, výchozí hodnota je 0 (totéž jako no). Hodnota yes nebo 1 znamená, že je vyplění pole povinné
- parametr format je nepovinný, pokud má zadanou hodnotu, kontroluje se správnost zadaných dat. možné hodnoty jsou
    date, time, datetime, int, integer, positive (= kladný integer), float
- parametr size je nepovinný, určuje šířku zobrazeného editu - jednotka je 'znak', ale je to pouze orientační
- v předdefinované hodnotě lze použít proměnné
- pomocí nastavení parametru datavariable="0" lze zabránit uložení hodnoty v datovém xml formuláři

Je vytvořena proměnná name, ve které je uživatelem zadaná hodnota. U některých formátů jsou navíc vytvořeny další proměnné:
Tyto proměnné pak umožňují například porovnávání zadaných hodnot (narozdíl od textových hodnot).

Víceřádkové textové pole

   <memo name="testovacimemo" editing="yes/no/append/nolog" cols="60" rows="8">
      předplněný obsah - může samozřejmě být prázdný
   </memo>
Stejné jako textové pole, ale zobrazí se prvek pro zadání víceřádkového textu.
Parametry cols a rows nejsou povinné, výchozí hodnoty jsou 60, respektive 8.
Pomocí nastavení parametru datavariable="0" lze zabránit uložení hodnoty v datovém xml formuláři.

Výběr období

   <vyberobdobi name="OBDOBI" aplikace="ADS" editing="yes/no" jenneuzavrene="0/1" jenukoncene="0/1" variabilni="0/1" required="0/1"> nepovinny SQL filter </vyberobdobi>
- pole pro zobrazení comboboxu pro výběr období
- vybrané období se zároveň zapíše do pole obdobi v záznamu tabulky VyplnenyXMLFormular
- výchozí hodnoty jsou: editing=no, jenneuzavrene=1, jenukoncene=1, required=1 (parametr required neni implementovan v XSL)
- v těle tagu je možné zadat nepovinnou SQL podmínku pro filtrování dotazu SELECT PocatekObdobi, Popis FROM Obdobi WHERE ...
- nepovinný parametr value umožňuje zadat výchozí hodnotu - lze zadat i proměnné např. {$MONTH} (není implementováno v XSL)
- pokud je zadán nepovinný parametr variabilni="1", zobrazí variabilní období z docházky.
- vytvoří se proměnné s názvem zadaným v parametru name, takže v tomto případě to bude OBDOBI, OBDOBI_popis, OBDOBI_pocatek (stejna hodnota jako OBDOBI), OBDOBI_konec, OBDOBI_pocatekstr, OBDOBI_konecstr (textový zápis začátku a konce)

Výběr osoby

   <vyberosoby name="OSOBA" editing="yes/no" />
- pole pro zobrazeni comboboxu pro vyber osoby
- vybrana osoba se zaroven zapise do pole RC v zaznamu tabulky VyplnenyXMLFormular
- vychozi hodnota pro vlastnost editing je no
- ve value je RC vybrane osoby - nepovinne pole, doplni se automaticky po vyberu osoby
- vytvori se promenne OSOBA, OSOBA_RC, OSOBA_jmeno, OSOBA_prijmeni, OSOBA_jmenoprijmeni, OSOBA_titul
    (misto OSOBA bude zadane jmeno promene)
    (hodnota OSOBA a OSOBA_RC je stejna)
- teoreticky muze byt v XML formulari i vice takovych poli, ale do pole RC v zaznamu se zapise jen jedno z nich
- pokud ma byt predplnena nejaka hodnota, tak se to zada takto:
   <vyberosoby name="OSOBA" editing="yes/no" value="XYZ" />

Výběr pracovního poměru

   <vyberpracovnihopomeru name="PP" editing="yes/no" pouzevlastni="0/1/2" />
- pole pro zobrazeni comboboxu pro vyber PP
- funguje stejne jako vyberosoby, ale pracuje s prac. pomery
- navic pridava promenne PP_osobnicislo, PP_datumnastupu, PP_datumnastupu_str, PP_popis, PP_id (stejna hodnota jako PP)
- hodnota promenne PP se nastavi na ID vybraneho PP (narozdil od vyberosoby, kde je RC)
- nepovinný parametr pouzevlastni určuje, jestli se mají zobrazit všichni zaměstnanci, na které má uživatel právo (hodnota 0 - implicitní), jen zaměstnanci z vlastních rozdělení (hodnota=1), nebo z podřízených rozdělení (hodnota=2)

Filtr podle práv

    <filtrpodleprav name="jmeno_promenne" typprava="kod_typu_prav" tabulka="jmeno_sql_tabulky" obdobiod="datum_od" obdobido="datum_do" />
Do zadané proměnné (name) vloží SQL podmínku pro kontrolu práv zadaného typu (typprava) uživatele. Podmínka se kontroluje v zadané tabulce (pole RC, OsobniCislo a DatumNastupu). Pokud není tabulka zadána, použije tabulku PracovniPomer. Pokud jsou zadány parametry obdobiod a obdobido, musí v nich být platný timestamp. Pokud nejsou zadány a formulář má přiřazeno období, použije se počátek a konec období a pokud nemá formulář období, použije se aktuální čas.

Zaškrtávací pole

   <checkbox name="testovacicheck" checked="0/1"/>
Zobrazí zaškrtávátko - nepovinný parametr checked určuje, jestli bude zaškrtnuté, nebo ne.
   <radio name="testovaciradio" value="hodnota" checked="0/1"/>
   <radio name="testovaciradio" value="hodnota" checked="0/1">popis volby ... </radio>
Zobrazí přepínací zaškrtávátko. Parametr value určuje hodnotu této volby. Může být definováno více radiobuttonů se stejným jménem, ale s různou hodnotou. Nepovinný parametr checked určuje, jestli bude tato volba zaškrtnutá, nebo ne. Dále je možné v módu transform pomocí parametru editing nastavit, jak se bude zobrazovat po vyplnění:

Výběr z databáze pomocí comboboxu

   <sqlselect name="jmeno"  editing="yes/no"  format="..."  required="0/1"  showcode="0/1">
     SELECT Kod, Popis FROM ...
   </sqlselect>
SQL dotaz musí obsahovat 2 pole - první je použito interně jako jedinečný kód, druhé je zobrazeno. Parametr format určuje formát prvního pole - pokud je "timestamp", převede se hodnota na číselnou reprezentaci času, jinak na text.
Může být zadána předplněná hodnota:
    <sqlselect name="testovacisqlselect" editing="yes/no" value="hodnota">
Po vyplnění se vytvoří proměnné

Výběr z preddefinovanych hodnot pomocí comboboxu

   <select name="jmeno" editing="yes/no">
     <option value=""/>
     <option value="1" default="1">volba 1</option>
     ...
   </select>
vytváří proměnné

Log v datovém XML a jeho zobrazení

Do datových XML formulářů se zapisuje log. Obsahuje hodnoty editovatelných polí zadané uživatelem. Kromě toho je možné zapsat do něj záznamy pomocí tagu <xmllog>
   <xmllog value="text s proměnnými, který se zapíše do XML"/>
Zobrazení logu:
   <showxmllog name="jmeno"/>

   <showxmllog name="jmeno">
     <div><span class="dotaznik_jmeno">{$xmllog_username} ({$xmllog_time})</span>: <b>{$xmllog_value}</b></div>
   </showxmllog>
Zobrazí log pro příslušný editační prvek (parametr name). Pokud je obsah elementu prázdný (první způsob zápisu), zobrazí výchozí vzhled logu, Pokud má element vnořený obsah (druhý způsob zápisu), použije jej pro výpis každého záznamu. Vnořený obsah může obsahovat jakékoliv jiné tagy a lze použít proměnné xmllog_name, xmllog_time, xmllog_username, xmllog_value, xmllog_value_br (konce řádků jsou nahrazeny tagem br), xmllog_poradipredavani, xmllog_urovenpredavani. xmllog_value_br lze vypsat například takto:
    <showxmllog name="poznamka">
        <div><span class="dotaznik_jmeno">{$xmllog_username} ({$xmllog_time})</span>: <b><text>{$xmllog_value_br}</text></b></div>
    </showxmllog>

Seznam z SQL dotazu (browser)

   <browser name="browser_typprava" fixedcols="pocet_sloupcu">
     <browsersql>
         SELECT Kod, Popis, Aplikace, TypRozdeleni, Poznamka
         FROM TypPravaProIntraweb
         ORDER BY Kod
     </browsersql>
     <browserfield sqlindex="0" caption="Kód" format=""/>
     <browserfield sqlindex="1" caption="Popis"/>
     <browserfield sqlindex="2" caption="Aplikace"/>
     <browserfield sqlindex="3" caption="Typ rozdělení" style="text-align:center"/>
     <browserfield text="zobrazit ..."/>
     <browserdetail col="1">{$browser_typprava[4]}</browserdetail>
   </browser>
Zobrazí výsledek dotazu jako seznam. SQL dotaz musí být definován v podřízeném tagu browsersql
Pokud je zadáno jméno browseru (parametr name), vytváří se na každém řádku proměnné name[0], name[1] atd. (podle počtu polí v SQL dotazu). Proměnné je pak možné použít v textu, v <browserdetail> nebo v odkazech (link nebo browserlink).
Pokud je zadán parametr fixedcols, bude zadaný počet sloupců zobrazen i při rolování doprava. Jednotlivé sloupce definuje tag browserfield:
     <browserfield sqlindex="0" caption="Nadpis" format="" style="css styl" link="..." text="zobrazený text" />
  
V tagu <browserdetail> je možné definovat text, který se zobrazí jako detail každého řádku. Zobrazení začíná ve sloupci col - tento parametr není povinný a výchozí hodnota je 1.

Seznam časových záznamů po dnech z SQL dotazu

   <dochazkabrowser>
     <browsersql>
          SELECT PuvodniDochazka.DatumCasOperace, OperaceDochazky.Popis, PuvodniDochazka.Terminal, PuvodniDochazka.Poznamka
            FROM PuvodniDochazka, OperaceDochazky
           WHERE PuvodniDochazka.KodOperace = OperaceDochazky.Kod
             AND PuvodniDochazka.RC = {$OSOBA_RC}
             AND PuvodniDochazka.OsobniCislo = {$OSOBA_osobnicislo}
             AND PuvodniDochazka.DatumNastupu = {$OSOBA_datumnastupu:timestamp}
             AND PuvodniDochazka.DatumCasOperace >= {$OBDOBI_pocatek:timestamp}
             AND PuvodniDochazka.DatumCasOperace <= {$OBDOBI_konec:timestamp}
           ORDER BY PuvodniDochazka.DatumCasOperace
     </browsersql>
   </dochazkabrowser>
Zobrazí seznam záznamů po dnech. Na každém řádku jsou záznamy z jednoho dne. První pole v SQL dotazu musí vracet čas.

Sekce

   <section name="jmeno_sekce">
      ... obsah sekce ...
   </section>
Zobrazí se jenom první sekce v dokumentu. Vše co je v následujících sekcích je ignorováno. Po vyplnění se první sekce odstraní, přenese se pouze její obsah.
Sekce lze použít například pro výběr osoby před začátkem vyplňování:
   <section name="sekce_osoba">
      <vyberosoby name="OSOBA" editing=no>
   </section>
   <section name="sekce_hlavni_obsah">
      ... tato sekce se zobrazí až po odeslání předchozí sekce ...
   </section>
V datových XML formulářích je parametr name povinný. Pokud už byla sekce vyplněna, tak se nastaví proměnná příslušného jména a sekce už se pak implicitně nezobrazuje. Opakované zobrazení lze vynutit parametrem repeat="1".

show, fill

   <show>
      ... obsah ...
   </show>

   <fill>
      ... obsah ...
   </fill>
Obsah elementu show se provede pouze při zobrazování formuláře (tj. při generování HTML stránky).
Obsah elementu fill se provede pouze při vyplňování nebo zpracování formuláře (tj. při generování upraveného XML nebo zpracování).

Bloky

   <block copy="0/1" ignore="0/1" name="jmeno_bloku">
      ... obsah bloku ...
   </block>
Pokud je ignore="1", je celý obsah bloku vynechán. Lze použít například pro zakomentování části formuláře.
Pokud je copy="0", není blok přenášen do další úrovně, takže se provede pouze jednou.
Jméno bloku (parametr name) je nepovinné. Ale pokud je to datové XML a block má copy="0", tak name nastaveno být musí, aby si v příslušné proměnné uložil stav.
Pomocí parametru context je možné omezit provádění bloku pouze pro zadaný kontext (platí pouze pro události, není v XSL)
Pomocí parametru action je možné omezit provádění bloku jen pro zadanou akci (neplatí pro staré formuláře zpracovávané pomocí XSL).
Při zadání parametru variable se blok provede jen v případě, že je nastavena zadaná proměnná a má nenulovou hodnotu. (není v XSL).
Při zadání parametru notvariable se blok provede jen v případě, že není nastavena zadaná proměnná nebo má nulovou nebo prázdnou hodnotu. (není v XSL).

Podpora překladů

  <lang>test - vsechny jazyky - tohle je asi k nicemu</lang>
  <lang include='cz'>jen cesky</lang>
  <lang include='cz;sk'>cesky a slovensky</lang>
  <lang exclude='cz'>alles, all, vsetko len ne cesky</lang>
Obsah bloku lang se provede jen v případě, že je aktivní některý z jazyků, zadaných v parametru include. V případě, že include není zadán, tak se obsah provede, pokud není aktivní některý z jazyků v parametru exclude. Typycké použití bude:
  <lang include='sk'>slovenský text ...</lang>
  <lang include='eng'>anglický text ...</lang>
  <lang exclude='sk;eng'>defaultní text pro všechny ostatní jazyky</lang>
Lze použít i ve fill - tj. pokud jsou uvnitř nějaké vnořené tagy, provedou se jen v případě, že je aktivní příslušný jazyk. V opačném případě se obsah pouze kopíruje.

V textech lze použít i standardní překlady ronportálu pomocí zápisu {#text_pro_preklad}

Použití jiného XML formuláře (include) - není v XSL!

  <include id="id_xml_sablony">
  <include name="popis_xml_sablony">
Načte a provede zadanou XML šablonu. Může být zadáno id šablony nebo její popis. V režimu transform je možné přidat parametr exprand="1" (výchozí hodnota je 0), který zajistí, že se obsah vložené šablony rozvine do vyplněného XML formuláře.

Debugovací a informační hlášky

   <debugmsg>text debugovací hlášky s parametry</debugmsg>
   <infomsg>text informační hlášky s parametry</infomsg>
Text hlášky se vypíše přímo do intrawebu ihned v okamžiku zpracování tagu a to v režimu show i fill. <debugmsg> se zobrazuje jen v debug režimu, infomsg vždy.

Hodnota SQL výrazu

  <sql format="..." name="...">
     SQL dotaz s parametry. POZOR! Pouze SELECT! Pro UPDATE a další používejte <sqlaction>!
  </sql>

Pokud je zadán parametr name, tak se zároveň nastaví proměnná zadaného jména stejně jako v <sqlvariable>. Format je nepovinný, pokud není zadán, tak se výsledek zobrazí tak, jak je vrácen z databáze.
POZOR! Nepoužívejte tento tag pro SQL příkazy, které nevrací žádné řádky (UPDATE, INSERT, DELETE). Může to způsobovat chyby, například: No tuples available at this result index, případně Internal server error
Místo toho používejte tag <sqlaction>

Parametry v SQL dotazech

Parametr se do dotazu vloží takto: {$JMENO_PROMENNE:FORMAT}
Format je nepovinný, výchozí je string. U jiných datových typů musí být zadán.
Možné formáty (některé mají různé možné názvy - není mezi nimi rozdíl):

Výběr rozdělení

  <vyberrozdeleni name="jmeno_promenne" typ="kod_typu_rozdeleni" obdobi="0/1/2" required="yes/no" pouzevlastni="0/1/2/3/4"/>
  <vyberrozdeleni name="rozdeleni" />
  <vyberrozdeleni name="rozdeleni" typ="11"/>
  <vyberrozdeleni name="rozdeleni" > Rodic IS NOT NULL </vyberrozdeleni>

Zobrazí combobox pro výběr rozdělení. Vybrané rozdělení je přiřazeno XML formuláři. Pokud není zadán typ rozdělení, použije se typ, který se používá pro předávací procesy. Parametr required určuje, jestli je výběr rozdělení povinný.
Parametr name určuje jméno proměnné.
Parametr obdobi může být:

Parametr pouzevlastni může být:

Dále může být zadán filtr pro omezení výběru.
POZOR! Pokud se použije název proměnné "rozdeleni", bude se měnit rozdělení, které má uživatel zadané ve filtrech. Toto chování nemusí být žádoucí - v tom případě použijte jiný název proměnné.

HTML odkaz

    <link action="akce"  params="parametry"  text="zobrazený text"  question="nepovinná otázka před provedením akce" />
Zobrazí HTML odkaz pro provedení zadané akce s parametry v aktuálním formuláři

Editace mzdových položek a měsíčních výsledků

Tag <editacemesicnich> - hromadný přehled zaměstnanců s možností editace měsíčních výsledků, mzdových položek - popis nastavení

Smyčka FORSQL

    <forsql name="jmeno_promennych" expand="0/1/no/yes" sqltext="SELECT ... " >
        ...
    </forsql>

    <forsql name="jmeno_promennych" expand="0/1/no/yes" sqltextvariable="sql_var" >
        ...
    </forsql>
Provede obsah pro každý řádek zadaného sql dotazu. POZOR! Na některých platformách (sqlsrv, pdo_mssql) nefunguje, pokud je v SQL textu datumové pole! U sqlsrv se tento problém dá vyřešit, pokud se v _appdbset.php nastaví
$_sqlsrv_converttimestamp = true;
Parametr expand určuje, jestli se má forsql přenášet do dalších úrovní tak jak je (takže přímo tag forsql), nebo se má při prvním vyplnění rozgenerovat a pak už se přenáší jen vnitřní obsah.
Dále je možné pomocí parametru processonfill zajistit, aby se tag provedl i při fill (má smysl jen když není nastaven expand). V tom případě se do výsledného XML tag standardně zkopíruje (jako bez expand), ale navíc se také provede obsah.

Smyčka FOREACH

    <foreach name="jmeno_promenne" arrayvariable="ridici_pole" >
        ...
    </foreach>
Provede obsah pro každou položku zadaného pole (proměnná s názvem zadaným v arrayvariable musí být pole, které jde získat například pomocí atributu delimiter v tagu variable). V každém kroku cyklu je definována proměnná se zadaným jménem (name) a proměnná s tímto jméném doplněným o "_key".
Příklad:
    <variable name="pole" delimiter=";">100;200;300;301</expression>
    <foreach name="item" arrayvariable="pole" >
        <div><text>{$item_key} = {$item}</text></div>
    </foreach>

Smyčka WHILE

    <while condition="PHP podminka">
        ...
    </while>

Provede while cyklus - vyhodnocuje vnitřní obsah elementu dokud je splněna zadaná PHP podmínka.

Podmíněné provádění a kontroly - IF a TEST

    <if condition="PODMINKA" copy="0/1">
        ...
    </if>
    <test testtype="TYPTESTU" param1="..." param2="..." sql="..." copy="0/1">
        <testok>
            ...
        </testok>

        <else>
            ...
        </else>
    </test>
Tagy if a test provedou zadaný test a dále pokračují podle výsledku tohoto testu. V případě, že je vrácena hodnota TRUE (případně nenulová hodnota v condition), tak
- if provede vnořené elementy.
- test provede část testok
V opačném případě
- if nedělá nic
- test provede část else. Není nutné vkládat obě části, stačí jen jedna z nich (testok nebo else).
POZOR! Nepoužívejte v textu podmínky poznámky - pokud je to SQL dotaz, je předán serveru včetně těch poznámek!
Typy testů:
Parametr copy určuje, jestli se bude po provedení přenášet do dalších úrovní. Pro if je výchozí hodnota 0 (přenáší se jen obsah), pro test je výchozí hodnota 1 (bude se přenášet celý tag test)
Pokud je splněna podmínka, provede se vnořený obsah. Podmínka může obsahovat proměnné a vyhodnocuje se v PHP pomocí eval(), takže může obsahovat jakýkoliv výraz, který jde v PHP vyhodnotit. copy určuje, jestli se bude po provedení přenášet do dalších úrovní. Výchozí hodnota je 0 (nebude se přenášet => přenese se pouze vnitřní obsah v případě, že je condition true).

Základní tlačítka

    <ulozit text="Uložit" question="Opravdu si přejete formulář uložit bez předání na další úroveň?" />
- tlačítko pro uložení formuláře bez předání na jinou úroveň (Formulář se vyplní podle všech pravidel. Uživatel se k němu může vrátit, ale pokud jsou tam pole, která nejde dodatečně editovat, tak už je nemůže změnit)
- text a question nejsou povinné, takže stačí zapsat jen <ulozit/>
- součástí stlačení tlačítka může být i provedení dalších akcí (log, email):
    <ulozit text="Uložit" question="Opravdu si přejete formulář uložit bez předání na další úroveň?">
        <log description="Stisknuto ULOZIT" category="XML formulare">Id formuláře: {$XMLID} </log>
    <ulozit/>
    <predatdale text="Předat dále" question="Opravdu chcete formulář předat dále?" />
- tlačítko pro odeslání formuláře a předání na další úroveň
- text a question nejsou povinné
- zobrazí se jen pokud jde formulář předat dále (tj. není na poslední úrovni procesu)
    <vratitzpet text="Vratit zpět" question="Opravdu chcete formulář vrátit zpět?" zacatek="0/1"/>
- tlačítko pro odeslání formuláře a předání zpět na předchozí úroveň
- text a question nejsou povinné
- zobrazí se jen pokud jde formulář předat zpět (tj. není na první úrovni procesu)
- pokud je nastaven nepovinny parametr zacatek="1", provede vraceni na zacatek predavaciho procesu

Akce

    <action name="zapsat" text="Zapsat" question="Opravdu si přejete záznam zapsat?" urovne="U1;U2">
        ... obsah akce - napr. SQL vyrazy, zmena stavu formulare ...
    </action>

    <button name="zapsat" text="Zapsat" question="Opravdu si přejete záznam zapsat?">
        ... obsah akce - napr. SQL vyrazy, zmena stavu formulare ...
    </button>
- přidá další tlačítko. Po jeho stisknutí se formulář uloží a provedou se příkazy uvnitř akce (log, email, stav a podobně)
- akci můžou provést jen uživatelé, kteří jsou na zadaných úrovních předávání (jsou zadány kódy kategorií pracovních míst oddělené středníkem)
- pokud nejsou kódy úrovní zadány (parametr urovne chybi nebo je prazdny), zobrazí se akce jen poslední úrovni v předávacím procesu
- pokud je urovne="#all", zobrazí se akce všem uživatelům - v případě, že ve formuláři došlo k nějaké chybě (<error>), akce se neprovede - tag <button> se chová stejně jako <action>, ale zobrazuje se všem uživatelům

HTML přesměrování

    <redirect/>
    <pokracovat/>

Po dokončení formuláře provede html přesměrování (redirect) na stejnou šablonu respektive vyplněný formulář = znovu formulář zobrazí. Lze to použít například pro akci typu "přepočet" - formulář se odešle, uloží se uživatelem zadané hodnoty, přepočítají se nějaké výsledky (pomocí SQL, skriptu a podobně) a formulář se znovu zobrazí. Pomocí parametrů tagu lze přidat url parametry nebo přesměrovat někam jinam:

    <redirect params="..."/>                                 - přidá k url zadané parametry
    <redirect sablona="id_xml_sablony" params="..."/>        - přesměrování na jinou xml šablonu (parametry nejsou povinné)
    <redirect xmlid="id_vyplneneho_formulare" params="..."/> - přesměrování na jiný vyplněný xml formulář
    <redirect urlparams="..."/>                              - obecný redirect na jinou stránku v portálu, např. urlparams="menuid=dochazkazamestnance"
    <redirect url="..." urlparams="..."/>                    - obecný redirect na jakoukoliv jinou stránku
    <redirect value="0" />                                   - zruší případné dříve nastavené přesměrování

Uzavření formuláře a změna stavu

    <uzavrit />
- uzavře formulář (nastaví stav = 128)
    <stav novystav="0" />
- nastaví stav na zadanou hodnotu

Předání formuláře na další (předchozí) úroveň

    <predat smer="1" />
- předá formulář o zadaný počet kroků dále (zpět). Parametr smer musí být celé číslo (kladné = předat dále, záporné = vrátit zpět). Hodnota -999 znamená předání na začátek.
    <sqlaction>
        SQL dotaz s parametry
    </sqlaction>
    <sqlaction sqltextvariable="jmeno_promenne_s_sql_dotazem" />
- provede zadaný SQL výraz - pokud je zadán parametr sqltextvariable, použije se SQL dotaz z dané proměnné, jinak se použije text uvnitř tagu. Použití proměnné umožňuje spouštění stejného SQL dotazu na různých místech formuláře, takže se nemusí dotaz opakovat.

Vkládání a editace záznamů

Vkládat a editovat záznamy je možné kromě SQL dotazů také pomocí tagů <record>, <loadrecord>, <insertrecord>, <editrecord>, <updateorinsertrecord>, <deleterecord>. Tímto způsobem dojde také k zalogování události (INSERT/UPDATE/DELETE/ERROR) včetně původních hodnot. Update se provede pouze v případě změny některé hodnoty.
    <record tablename="JMENOTABULKY">
        <recordfield name="JMENOPOLE1" format="FORMAT_POLE1" size="DELKA_TEXTOVEHO_POLE">HODNOTA1</recordfield>
        <recordfield name="JMENOPOLE2" format="FORMAT_POLE2">HODNOTA2</recordfield>
        ...

        <insertrecord />
    </record>
Provede vložení záznamu a zalogování.
    <record tablename="JMENOTABULKY">
        <recordfield name="JMENOPOLE1" format="FORMAT_POLE1" size="DELKA_TEXTOVEHO_POLE">HODNOTA1</recordfield>
        <recordfield name="JMENOPOLE2" format="FORMAT_POLE2">HODNOTA2</recordfield>
        ...
        <recordwhere>
            ... podmínka, která se vloží do SQL výrazu SELECT (při načítání původní hodnoty) a UPDATE (při editaci změněných hodnot)
        </recordwhere>

        <editrecord/>
    </record>
Dále je definován tag <updateorinsertrecord>, který provede editaci záznamu a pokud záznam neexistuje, tak vloží nový.
V případě změny hodnoty některého pole provede editaci záznamu a zalogování. Musí být zadána také podmínka (jen výraz bez klíčového slova WHERE), aby se editace týkala jen jednoho záznamu.
Tag record je možné použít také k načtení záznamu do proměnných:
    <record tablename="JMENOTABULKY">
        <recordfield name="JMENOPOLE1" format="FORMAT_POLE1" size="DELKA_TEXTOVEHO_POLE">HODNOTA1</recordfield>
        <recordfield name="JMENOPOLE2" format="FORMAT_POLE2">HODNOTA2</recordfield>
        ...
        <recordwhere>
            ... podmínka, která se vloží do SQL výrazu SELECT (při načítání původní hodnoty) a UPDATE (při editaci změněných hodnot)
        </recordwhere>

        <loadrecord name="JMENO_PROMENNE"/>
    </record>
Načte do proměnných JMENO_PROMENNE_JMENOPOLE... hodnoty jednotlivých polí záznamu. Tagy <recordfield> definují jednotlivá pole záznamu:
    <recordfield name="JMENOPOLE" format="FORMAT_POLE" size="DELKA_TEXTOVEHO_POLE" readonly="0/1" updatelog="0/1">HODNOTA</recordfield>
Parametr name je povinný. U textových polí je možné specifikovat maximální délku (size). V případě, že má hodnota větší délku, bude oříznuta. Příznak readonly zajistí, že nebude pole při editrecord změněno (při insert se tento příznak ignoruje - pole bude naplněno). Původní hodnota pole bude zalogována. Příznak updatelog způsobí, že se u pole nekontroluje změna hodnoty. Pokud nebude změněno žádné jiné pole, které nemá updatelog="0", tak se update vůbec neprovede. Lze použít například pro pole "Update_TimeStamp", "Update_UserName" a podobně.
Povolené formáty polí jsou:

Zápis do logu

    <log description="Stisknuto ULOZIT" category="XML formulare">
        ... doplňující komentář ... lze použít proměnné např. Id dotazníku: {$XMLID}
    </log>
    <dblog tablename="Tabulka" eventtype="Udalost" srcdescription="XML">
        ... doplňující komentář ... lze použít proměnné např. Id dotazníku: {$XMLID}
    </log>

Nastavení podrobností formuláře (dodatečný popis, rozlišení, poznámka)

    <nastavpodrobnostiformulare fieldname="jmeno_pole">... text s proměnnými ...</nastavpodrobnostiformulare>

Nastaví dodatečná pole, které jsou v tabulce VyplnenyXMLFormular a mohou sloužit například pro filtrování. V textu je možné použít proměnné. Zároveň jsou vytvořeny proměnné pro získání hodnot těchto polí v XML.
jmeno_pole může být:

Odeslání emailu

    <email to="{$prijemceemailu}" subject="Email z XML formulare" from="{$odesilatelemailu}" copyto="" log="0/1/2" variablename="jmenopromenne">
        <![CDATA[
        Tento email se odešle při uložení ...
        Ve všech polích (tj. adresy odesílatele i příjemce, předmět, text) je monžné používat proměnné,
        takže jde např. tahat adresy z databáze, v textu doplnit údaje zadané ve formuláři atd.
        Sekce CDATA není povinná, ale musí se použít, pokud je potřeba vložit řídící znaky jako například <, >
        ]]>
    </email>
Odešle email podle zadaných parametrů (to, subject, from, copyto). Parametr log určuje, jestli se do logu zapíše informace o (ne)odeslání emailu:

Pokud dojde k při odesílání emailu k chybě tak se chyba "přenese" do formuláře. Pokud je ale zadáno variablename, nastaví se zadaná proměnná na hodnotu 1 v případě úspěšného odeslání emailu, a na hodnotu 0 v případě chyby a chyba se nezobrazuje. To je možné změnit nastavením parametru generateerror="1"

V nových XML šablonách (s parametrem "mode") je možno místo to použít: Místo from: Místo copy

Spuštění agenta

    <agent name="ADS_Agent_Processing.exe" app="ads" params="parametry agenta"/>

Spuštění skriptu

    <script scriptcategory="kategorie" scriptname="nazevskriptu" scriptparameter="textovy_parametr_s_promennyma" variablename="jmenopromenne"/>
Spustí zadaný skript z Docházky (kategorie/nazevskriptu) se zadaným parametrem. V parametru je možné použít proměnné. Pokud je zadáno variablename, nastaví se zadaná proměnná na hodnotu 1 v případě úspěšného provedení skriptu, a na hodnotu 0 v případě neúspěšného provedení skriptu.

Přesměrování na jiný XML formulář

    <prejitnaxml idsablony="..." />
Po provedení formuláře (fill) přejde na zadané XML - tj. zobrazí zadaný XML formulář místo standardního seznamu formulářů (přechod provede pouze v případě, že už se formulář nezobrazuje, například po odeslání formuláře).

Mapování standardní funkčnosti Intrawebu (menuid) na XML formulář

V aplikaci je možné změnit standardní funkčnost Intrawebu přesměrováním na XML formulář. Provede se v nastavení intrawebu, záložka Předávací procesy, XML. Kromě běžných "menuid" je tam možné přemapovat také zobrazení seznamu hodnocení - zadáním řádku

    b_hodnoceni=id xml formuláře

Pomocí tagu <mapovanimenu> v XML formuláři je pak možné nastavit, jestli se po zobrazení formuláře provede ještě nějaká další (např. defaultní) akce. XML formulář tak může být použit jen pro zobrazení uživatelských informací před samotným obsahem stránky, například pokyny pro uživatele.

    <mapovanimenu pokracovat="0/1" menuid="nove_menuid" />
Parametr pokracovat určuje, jestli se po zobrazení formuláře ještě pokračuje standardní obsluhou události. Navíc lze událost změnit pomocí parametru menuid.

Smazání vyplněného XML formuláře

    <delete okinfomsg="Formulář byl smazán z databáze" />
- smaže formulář z databáze a v případě úspěchu zobrazí zadanou hlášku

Chybová hláška

    <error fieldname="JMENO_POLE" text="Chyba! ..." />
    <error fieldname="JMENO_POLE">Text chyby</error>
- zobrazení chybové hlášky
- formulář se po zobrazení chybové hlášky neodešle!
- fieldname je jméno pole (z XML formuláře), kterého se chyba týká - není povinné
- lze použít například v kombinaci s tagem <test>

Dokumenty

    <dokument name="JMENO_POLE" popis="popis dokumentu" typ="kod_typu" style="html_styl"/>
Zobrazí pole pro přiložení souboru. Soubor se potom zapíše do tabulky dokument a propojí s XML formulářem záznamem v tabulce DokumentXMLFormulare. Po vložení souboru se vytvoří nový záznam v tabulce Dokument, tag dokument se transformuje na pripojenydokument a zobrazuje se odkaz na stáhnutí souboru.
Pomocí parametru editing (hodnoty yes/no) je možné nastavit, jestli bude možné vložit více dokumentů.

errormessages

Tag <errormessages/> zobrazi chybove hlasky z Message Manageru. Implicitně se chybové hlášky zobrazují hned na začátku formuláře, ale tímto tagem je možné je zobrazit kdekoliv jinde.

viewobject

Tag <viewobject viewsource="nejake_view.php"/> zobrazí zadané PHP view.

viewfile

Tagem viewfile je možné změnit způsob zobrazení celé webové stránky. Parametrem frame="1" se zapíná zobrazení stránky bez hlavičky a menu (vhodné například pro umístění do frame):
    <viewfile frame="1"/>
Parametrem filename="...." je možné použít jakýkoliv jiný PHP soubor pro vygenerování stránky.

rozdelenivyroby, vyrobaosoby

Zobrazí formulář pro rozdělení výroby jednoho dne, respektive celého měsíce.

Hodnocení

    <hlavickahodnoceni />

    <DIV class="nadpishodnoceni">
        <variablevalue name="HODNOCENI_PopisTematu" />
    </DIV>

    <otazkyhodnoceni id='{$HODNOCENI_Id}' druhhodnoceni='{$HODNOCENI_DruhHodnoceni}'  temacislo='{$HODNOCENI_TemaCislo}'>
        <otazkahodnoceni id='{$HODNOCENI_Id}' druhhodnoceni='{$HODNOCENI_DruhHodnoceni}'  temacislo='{$HODNOCENI_TemaCislo}' kodkriteria='{$HODNOCENI_KodKriteria}' zpusobzobrazeni='1' />
    </otazkyhodnoceni>

    <poznamkahodnoceni />

    <tlacitkahodnoceni ulozit="Jenom uložit"  odeslat="Předat dále"  vratit="null" uzavrit="Definitivně uzavřít"/>

Slouží pro zobrazení hodnocení. Jsou definovány proměnné HODNOCENI_Id, HODNOCENI_DruhHodnoceni, HODNOCENI_TemaCislo, HODNOCENI_PopisTematu, HODNOCENI_PoznamkaTematu a HODNOCENI_Action. Proměnná HODNOCENI_Action může mít hodnotu editace (zobrazení hodnocení pro editaci), nahled (zobrazení needitovatelneho nahledu hodnocení), prevzit (zobrazení informace o již vyplněném dotazníku a možnost převzetí - v případě chyby nebude převzetí umožněno) a nastavhodnotitele (nastavení hodnotitele při zobrazení pro editaci - v případě chyby nebude vyplnění umožněno).
Tag <otazkyhodnoceni> generuje svůj obsah pro každou otázku. Na každém řádku definuje proměnnou HODNOCENI_KodKriteria. V tagu <otazkahodnoceni> je možné změnit způsob zobrazení odpovědí nepovinným parametrem zpusobzobrazeni - buď jednotlivé odpovědi zobrazí v tabulce (hodnota 1), nebo v seznamu (UL, LI - hodnota 0). Pokud není zadán, tak se použije nastavení z databáze. Tlačítka se vkládají pomocí tagu <tlacitkahodnoceni> - pomocí jednotlivých parametrů je možné zadat zobrazované texty. Pokud je zadáno "null", tak nebude tlačítko zobrazeno.

Při uložení hodnocení se provádí šablona v režimu process (stejně jako vyplnění datového XML). V ní je možné provést například nějakou dodatečnou kontrolu zadaných hodnot nebo provést nějakou akci.
Pomocí tagu <ulozodpovedihodnoceni> se provede uložení uživatelem zadaných odpovědí. Pokud není tento tag při zpracování formuláře nalezen, tak se poté uložení provede automaticky. Podle výsledku nastaví proměnnou HODNOCENI_Ulozeno.
Pomocí tagu <prepocitejhodnoceni neulozene="0/1"> se provede přepočet hodnocení. Pokud je parametr neulozene = 1, tak se přepočet provede i v případě, že odpovědi nebyly úspěšně uloženy a nebyly vyplněny všechny povinné odpovědi. Podle výsledku nastaví proměnnou HODNOCENI_Prepocteno.

Tisk

    <report reportname="KOD_REPORTU" text="Zobrazený text" format="pdf;xls" >
        <reportvariable name="PROMENNA1" value="Hodnota promenne s parametry" />
        <reportvariable name="PROMENNA2" value="hodnota (timestamp)"  format="timestamp" />
    </report>
Zobrazí odkaz na stáhnutí tiskové sestavy. Musí být zapnutý report server. Při zobrazování formuláře sestavu připraví (reportserver si zapametuje jméno a proměnné a vrátí klíč pro zobrazení sestavy). Nepovinný parametr format u report určuje datový formát, který se bude generovat (pdf, xls, ods). Může se zadat i více formátů oddělených středníkem (format="pdf;xls"). Pokud se zadá format=";xls" tak se bude generovat link pro výchozí format (tj. pdf) a pro xls.
Formát proměnné může být timestamp - hodnota proměnné pak musí odpovídat časovému razítku (tj. ne textový zápis datumu ale číslo!)

Systémové formuláře

Události SKOLENI_PRIHLASENI_BEFORE a SKOLENI_PRIHLASENI_AFTER obsahují navíc oproti záznamu record i proměnné osobaRC, osobaOsobniCislo a osobaDatumNastupu pro identifikaci vybraného pracovního poměru osoby.

HTML parametry

U většiny tagů, které generují obsah do HTML (edit, memo, checkbox, ..., ulozit, predatdale, ...) je pomocí prefixu html možné doplnit i parametry, které se přímo vygenerují do XML a přepíší již nastavené vlastnosti. Pro doplnění je možno použít prefix htmladd, který k již nastaveným parametrům doplní nové, např. htmladd:class="moje_class". Ke kořenovému elementu XML formuláře se v tom případě musí doplnit namespace:
    <ronform
            xmlns:html="http://www.w3.org/1999/xhtml" xmlns:htmladd="http://www.w3.org/1999/xhtml"
            mode="data">
        ...
        <edit name="muj_edit" html:style="width: 500px" />
        ...
    </ronform>

Tipy

Vložení mezery 50 pixelů (např. mezi tlačítka)
    <span style="display:inline-block; width:50px;"> </span>

Zarovnání obsahu doprava
    <span style="float:right"> ... (obsah) ... </span>