Rozbalovací seznam
Prvek Rozbalovací seznam obsahuje většinu ovládacích prvků obvyklých i pro jiné prvky formuláře (kapitola Společná nastavení některých vlastností prvků).

Číselníky
U prvku typu rozbalovací seznam je kromě nastavení obecných vlastností (kapitola Společná nastavení některých vlastností prvků) potřeba nadefinovat i číselník – tedy seznam možností, které se budou po rozbalení ve formuláři uživateli nabízet k výběru. K tomu můžete:
-
Vytvořit vnitřní číselník, vytvořený přímo na míru danému procesu.
-
Využít hotový externí číselník načtený z webu.
K výběru a rozlišení těchto variant slouží sekce Číselník.
Pokud ještě žádný číselník není k dispozici nebo chcete-li vytvořit další číselníky, klepněte na tlačítko Nový číselník.

Přejdete do okna Vlastnosti prvku.
Vnitřní číselník procesu
Pokud chcete vytvořit nový vnitřní číselník:
-
V okně Vlastnosti prvku klepněte na tlačítko Přidat číselník.
-
V dialogu Nový číselník nastavte v rozbalovacím seznamu Typ číselníku položku Vnitřní číselník procesu. V poli Název číselníku nový číselník pojmenujte. Klepněte na tlačítko Uložit.
-
Položka nového číselníku se objeví v seznamu číselníků v okně Vlastnosti prvku. Další manipulace s číselníkem umožní příkazy nabídky, kterou otevřete tlačítkem se třemi tečkami.
Příkazem Odstranit položku celého číselníku ze seznamu nevratně odeberete. Příkazem Upravit můžete změnit název číselníku.
K naplnění číselníku položkami použijete příkaz Editovat položky číselníku. K tomu příkaz otevře dialog Položky číselníku. Nejprve se zaměříme na situaci, kdy potřebujete položkami naplnit zcela nový a prázdný číselník.
Klepněte na tlačítko Přidat položku.
Položky budete vkládat přímo v dialogu Položky číselníku, ve kterém se po každém stisku tlačítka Přidat položku vytvoří nový řádek pro další položku.

Do polí ve sloupci Zobrazovaná hodnota se zapisují názvy položek číselníku, tedy to, co se uživateli bude zobrazovat po jeho otevření.
Položky ve sloupci Hodnota budou sloužit jako názvy proměnných pro jednotlivé položky číselníku. Lze je také libovolně upravit.
Další položky vkládejte tlačítkem Přidat položku. Tlačítkem Uložit vytváření číselníku pro tuto chvíli ukončíte a uložíte ho do formuláře. Pokud byste na něm dále chtěli pracovat, můžete ho znovu otevřít přes tlačítko se třemi tečkami. |
U jednotlivých položek jsou ve sloupci Akce tlačítka se šipkami a
; jejich pomocí můžete pořadí položek dodatečně měnit. Tlačítkem s popelnicí
položku číselníku vymažete.
Nad tabulkou s položkami číselníku je umístěno několik tlačítek:
-
Smazat vše – odeberete z číselníku všechny položky (číselník bude prázdný).
-
Tlačítko se symbolem vlajky umožní sestavení vícejazyčných číselníků (pokud je aktivní jazyková podpora – viz kapitola Jazykové mutace formulářů).
-
Tlačítkem Import z CSV můžete položky číselníku importovat z vybraného souboru ve formátu CSV.
-
Opačný význam má tlačítko Export do CSV – umožní položky číselníku uložit do CSV souboru (a z něj pak třeba načíst do číselníku v jiném formuláři).
Změny v nastavení číselníku potvrďte tlačítkem Uložit.
Externí číselník z webu
Další možností je použít číselník dostupný online na webu v XML formátu.
Soubor s popisem číselníku
Popis externího číselníku může obecně vypadat takto:
<fm:list xmlns:fm="http://software602.cz/forms">
<fm:listitem itemtext="Položka1" value="1"/>
<fm:listitem itemtext="Položka2" value="2"/>
<fm:listitem itemtext="Položka3" value="3"/>
</fm:list>
Tvar 1. řádku list (s odkazem na firmu Software602) neměňte, je důležitý k zachování správného adresního prostoru pro veškeré práce s formuláři!
|
Řádky listitem
pak odpovídají řádkům v dialogu Položky číselníku.
-
Hodnota
itemtext
koresponduje s údajem ve sloupci Zobrazovaná hodnota. -
Hodnota
value
koresponduje s údajem ve sloupci Hodnota.
Specifikace číselníku musí být uložena v XML souboru kdekoliv na webu a je třeba znát příslušnou URL adresu – například https://man.602.cz/WD/EXT_CISELNIK.XML
.
V této adrese hraje roli rozdíl mezi malými a velkými písmeny! |
Vytvoření číselníku ve formuláři
Externí číselník se do popisu formuláře začlení podobně jako vnitřní číselník. V panelu Rozbalovací seznam se klepnutím na tlačítko Nový číselník otevře okno Vlastnosti prvku a v něm tlačítkem Přidat číselník dialog Nový číselník.
V tomto dialogu:
-
Jako Typ číselníku vyberte možnost Externí číselník z webu.
-
Do pole Název číselníku zapište popisný název nového číselníku.
-
Vyplnění pole XSLT šablona pro zpracování dat není povinné, pokud je XML popis číselníku vytvořen ve shodě s výše uvedenými pravidly. Může se ale stát, že popis číselníku je na dané URL adrese v jiném tvaru, než je požadováno. Proto je do formuláře možné nahrát XSLT transformační soubor, který data načtená z URL převede na požadovaný tvar (viz položka XSLT šablony ve sloupci Vlastnosti okna Vlastnosti prvku).

Pevná URL adresa číselníku
Do pole URL adresa číselníku prostě zapište odkaz na XML soubor s popisem číselníku.
Dynamická URL adresa číselníku
Může vzniknout potřeba URL adresu číselníku sestavit dynamicky, kdy bude její část variabilní. Pak lze do pole URL adresa číselníku například zapsat:
$(Eval("StrCat({https://602.cz/forms/}, DataXpath({/d:root/d:UserData/d:listname}), {.xml}))")
V tomto případě se výsledná URL adresa sestaví takto:
-
Spojí se textový řetězec
https://602.cz/forms
, -
NÁSLEDUJE variabilní část – datová hodnota položky
listname
, -
a ukončí řetězcem
.xml
Následně lze externí číselník začlenit do popisu jakéhokoliv rozbalovacího seznamu ve formuláři.

Funkci číselníku můžete hned vyzkoušet v režimu náhledového zobrazení formuláře.

Může být užitečné, když u datového odkazu bude možné v rámci zadávané URL zadat i zobrazovaný text, pod kterým je odkaz skrytý.
U datového odkazu lze použít text k zobrazení stejně jako u odkazu statického, a to tak, že za odkaz přidáte znak |
a za něj umístíte text, který má být zobrazen – například www.seznam.cz|Seznam
.
Lze toho docílit i výpočtem, a to tak, že vracím variable s odkazem nebo datovou položkou, která obsahuje odkaz+"|text k zobrazení";
Číselník z dat formuláře
Číselníky lze také vytvářet přímo z dat z formuláře – například zadávaných pomocí oddílu s opakováním.
Nejlépe bude si to ukázat na příkladu.
Vložíme do formuláře oddíl s opakováním a do něj dvě textová pole – pro zápis hodnoty zobrazované ve formuláři a pro zápis označení příslušné datové hodnoty.
Textová pole mohou mít v panelech Textové pole následující popis.


Struktura dat oddílu s opakováním pak je následující:

Dále vložme do formuláře pole Rozbalovacího seznamu.
Jeho napojení na strukturu dat oddílu s opakováním jako zdroje dat číselníku bude následující.

Dále ještě lze přidat pole pro zobrazení kódu volby podle výběru položky číselníku. K tomu bude použito Pole s výstupní hodnotou.
Pole s výstupní hodnotou (označené identifikátorem vyberte_zpusob1
) se naváže na prvek rozbalovacího seznamu Vyberte způsob dopravy volbou jeho identifikátoru pomocí jeho datové položky vyberte_zpusob
.
Funkci takto vytvořeného číselníku můžete hned vyzkoušet v náhledovém režimu zobrazení.

Parametry číselníku lze při zaškrtnutí políčka Zadat XPath ručně zadat také manuálním zápisem podle konvencí XPath.

Další možnosti číselníků
Po specifikaci číselníku může být výhodné ještě upřesnit některé parametry, které uživateli mohou usnadnit jeho použití.
-
Zobrazený text – tento text se v poli zobrazí při otevření formuláře. Hodnota není součástí dat formuláře, je jenom zobrazena v poli.
-
Výchozí hodnota – jakmile je seznam vytvořen, ať už jakýmkoli způsobem, v poli Výchozí hodnota můžete jednu z položek určit jako výchozí. Ta pak bude zobrazena ve formuláři při jeho prvním otevření.
-
Pole s našeptávačem – při zaškrtnutí tohoto pole bude možné vybírat položky s využitím tzv. našeptávače, tedy na základě skupiny zadaných znaků se v poli vypíšou položky těmto znakům odpovídající.
-
Min. počet znaků – počet znaků, které je třeba do pole zadat, aby se aktivovala činnost našeptávače a zobrazily se odpovídající možnosti.

-
Vícenásobný výběr – po zaškrtnutí tohoto políčka bude z číselníku možné vybrat i více než jednu položku.
-
Oddělovač vícenásobného výběru – lze uvést způsob oddělení položek pro vícenásobný výběr.
Filtr položek
K rozbalovacímu seznamu lze vytvořit filtr. Ve formuláři se pak zobrazí jen ty položky seznamu, které odpovídají nastavení filtru.
Mějme třeba rozbalovací seznam, který zahrnuje výčet dopravních prostředků. Jeho specifikace v panelu Rozbalovací seznam bude například:

K rozbalovacímu seznamu si výše popsaným postupem vytvořme vnitřní číselník nazvaný Dopravní prostředek, který naplníme položkami, jako například:
Všimněte si, že proti popisu vytvoření vnitřního číselníku bez filtrace zde přibývají hodnoty zapsané do sloupce Filtr – v našem případě je to rozlišení silničních a kolejových dopravních prostředků.
Druhým rozbalovací seznamem vytvoříme vlastní filtr. Ten bude mít v panelu Rozbalovací seznam popis například:

K němu vytvoříme opět vnitřní číselník, nazvaný například Dopravní prostředek. Ten umožní filtraci dopravních prostředků na silniční a kolejové. Zatímco obsah polí ve sloupci Zobrazovaná hodnota může být zcela podle vaší úvahy, je třeba dát pozor na obsah polí ve sloupci Hodnota. Položky zde uvedené musí totiž obsahově přesně korespondovat s položkami ze sloupce Filtr v číselníku dopravních prostředků.
Tím jsou oba číselníky hotové (nezapomeňte je vždy uložit).
Dále se zaměříme na obsah pole Filtr číselníku v sekci Číselník u rozbalovacího seznamu s výčtem dopravních prostředků. Zde je uvedena nápověda //*[@form602id='text']
.
Tento řetězec prostě převezměte bez úprav, jen místo označení text zapište identifikátor rozbalovacího seznamu, který obsahuje definici filtru – druh_dopravy
. Obsah pole Filtr číselníku pak bude mít tvar:
`//*[@form602id='druh_dopravy']`

Tím se vytvoří propojení mezi oběma číselníky – filtrovaným a jeho filtrem.
U číselníku s popisem filtru se pole Filtr číselníku nevyplňuje. |
U rozbalovacího seznamu s popisem filtru může být užitečné do pole Druh dopravy přidat zobrazený text, například Bez filtrace. U seznamu dopravních prostředků by se mohl hodit třeba text Vyberte jednu z možností.
V náhledovém zobrazení pak může činnost filtru vypadat takto:
Pokud je třeba, lze i zde zaškrtnutím políčka Vícenásobný výběr povolit výběr několika položek najednou.