Definice seznamu pro roletku výběrového prvku select

V definici prvku je možné zadat pevný seznam hodnot, které jsou nabízeny uživateli. Tento seznam je úzce spojen s nastavením vlastnosti input a pokud není v souladu, replikátor tvorbu zastaví. Pokud input není uveden a je uveden jen potomek select, pak se automaticky nastaví na hodnotou drd. Definici select doplníme do prvku v případě, že potřebujeme, aby uživatel mohl zadat do daného prvku jen hodnoty předem známé. Například pokud víme, že prvek lhůta placení (lhuta_placeni) může obsahovat buď roční, pololetní, čtvrtletní nebo měsíční, pak tyto hodnoty zapíšeme do dětských elementů option. Definice šablony prvku lhuta_placení by tedy vypadala takto:

<ElementDef>
<label>Lhůta placení</label>
<name>lhuta_placeni</name>
<short>lhpl</short>
<data>type:char;length:3;</data>
<input>type:dropdown;</input>
<select>
<option value="roc">roční</option>
<option value="pol">pololetní</option>
<option value="ctv">čtvrtletní</option>
<option value="mes">měsíční</option>
</select>
</ElementDef>

Pokud bychom prvek nedefinovali formou šablony, ale rovnou v některém z dokumentů, pak by definice vypadala následovně:

<element label="Lhůta placení" name="lhuta_placeni" short="lhpl" dtype="char(3)" input="dropdown">
<select>
<option value="roc">roční</option>
<option value="pol">pololetní</option>
<option value="ctv">čtvrtletní</option>
<option value="mes">měsíční</option>
</select>
</element>

Do dokumentu v databázi se ukládá jen hodnota uváděná v atributu value. Ve výběrovém seznamu (input je nastaven na dropdown) se ukazují obsahy elementů option. Rovněž na výstupu při tisku, odesílání e-mailem atd. se objevuje plný text volby. Důvodem této kombinace je minimalizovat nároky na objem ukládaných dat a přitom zachovat možnost dlouhých plných textů. Dalším důvodem je skutečnost, že často bývá v návaznosti na prvky obsahující select zadávána další funkcionalita formulářů a výstupních sestav jako například podmíněné oblasti apod. Proto je zapotřebí vyhnout se diakritickým znakům, mezerám a dalším problematickým znakům.

Datovým typem v prvcích se seznamem je většinou číslo nebo krátký řetězec, které se používají jako identifikátory. Nic však nebrání tomu, aby byly vybírány částky, datumy, časy či logické hodnoty.


Problematika jména výběru

Každý takový seznam s položkami option dostane ve fázi kompletace své jméno (atribut name), pokud již není dán definicí. Jméno seznamu je v případě dokompletování převzato z prvku nebo jeho šablony, kde je seznam umístěn. Na webovém sídle pak pro každou roli existuje jeden XML soubor se seznamem těchto výběrů, kde každý z nich je identifikován jménem. Pro formuláře, nastavení přehledů, dodatečná zadání a další pak tento soubor slouží pro zobrazení dané nabídky uživateli. Pod určitým jménem tedy může být pouze jeden výběrový seznam select. Je tedy třeba na to dávat pozor, aby se určitý seznam pod konkrétním jménem nezaměnil za seznam úplně jiný, ale se stejným jménem, i když flexideo replikátor tento problém kontroluje a ve většině případů je schopen jej eliminovat. I tak je však dobré na to myslet a přidělovat různým seznamům pokud možno různá jména přímo pomocí vlastnotí name tagu select. Definice prvku pak může vypadat např. takto:

<element label="Lhůta placení" name="lhuta_placeni" short="lhpl" dtype="char(3)" ftype="dropdown">
<select name="vyber_lhuty_placeni">
...
</select>
</element>

Při takovéto definici se výběrový seznam lhůt do evidence zařadí pod jméno vyber_lhuty_placeni a nikoli pod lhuta_placeni. Ve skutečnosti stačí, když seznam uvedete jen u jediného prvku a u ostatního pak uvedete pouze jméno. V případě více výskytů se však doporučuje použít obecnou definici prvku - byť by definovala pouze seznam - pomocí based-on.


Přístupnost voleb option

Může být, že ne všechny volby výběru jsou dostupné a použitelné pro všechny okruhy (role) uživatelů. Může nastat situace, kdy je například zapotřebí zpřístupnit určité stavy některého dokumentu volené roletkou (tedy výběrem z voleb option) jen některým uživatelům, aby ostatní nemohli tento stav v dokumentu navodit nebo ani dokonce nevěděli, že takový stav navodit lze. Jsou tedy celkem tři úrovně, který může položka v seznamu nabýt:

volně přístupná - položku je možno ve formuláři zadat (je-li daná kolonka uživateli přístupná pro zápis);

jen pro náhled - uživatel v přístupné kolonce volbu vidí, ale nemá možnost ji zadat; v případě, že je již zadána ji může změnit na jinou dostupnou nebo ponechat;

není zobrazena - uživatel volbu ani ve formuláři či jiném náhledu nevidí a zobrazuje se text "(jiná)" napovídající, že něco zvoleno je, ale neznámo co; uživatel pak, má-li kolonku dostupnou může zvolit jinou volbu, ale původní vůbec nezná;

Je zřejmé, že taková kolonka dost často bude vyžadovat podmíněnou editaci tak, aby nebylo možné kolonku v některých stavech měnit. Způsob definování přístupnosti a další informace nalezenete u vlastností pro nastavení přístupu, které můžete definovat i položek option.


Volba výběru

Substruktura option reprezentuje jednu položku v substruktuře select určené pro výběr hodnoty prvku.

<option value="{code-value}">{user-view-value}</option>

Možnost výběru option má na první pohled shodnou formu jako stejnojmenný tag HTML, nicméně tu jsou jisté odlišnosti. Nedisponuje například vlastností (atributem) selected, tato funkcionalita je řešena nastavením vlastnosti initial u prvku, kde je výběr umisťován a není-li tato vlastnost nastavena, použije se jako výchozí hodnota value z první položky option daného seznamu select. Ani jiné další HTML atributy krom value substuktura option nenabízí. Naproti tomu však disponuje některými jinými vlastnostmi, viz. níže.

Substrukturu option je možné specifikovat následujícími vlastnostmi:

appear-if - Zadání podmíněného zobrazení segmentu dokumentu. Segment se zobrazí pouze při splnění ...

comment - Pracovní komentář segmentu pro účely popisu defince. Nezobrazuje se finálnímu uživateli.;

content - Vlastní obsah, který má být v náhledech zobrazován;

discarted - Pomůcka VYŘAZENÍ (tj. "odpoznámkování" v kódu definice). Je-li uzel označen touto vlas ...

secrecy-lev - Specifikace bezpečnostní úrovně, která je zapotřebí pro zpřístupnění segmentu určité ...

section - Specifikace oddělení a bezpečnostní úrovně pro tato oddělení, která jsou zapotřebí pro z ...

value - Vkládání statické hodnoty jako řetězce bez ohraničení apostrofy či uvozovkami.;

Substrukturu option je možné uvést u následujících uzlů:

select - seznam výběrového prvku (substruktura definice);

Substrukturu option je možné rozšířovat o následující potomky:

lang - jazyková nastavení;


Nastavitelné vlastnosti uzlu select

Substrukturu select je možné specifikovat následujícími vlastnostmi:

comment - Pracovní komentář segmentu pro účely popisu defince. Nezobrazuje se finálnímu uživateli.;

discarted - Pomůcka VYŘAZENÍ (tj. "odpoznámkování" v kódu definice). Je-li uzel označen touto vlas ...

merge - Při aktivaci (true / yes) dojde ke sloučení položek select/option v seznamech šablony dle ...

name - Jednoznačná a jedinečná identifikace uzlu na dané úrovni zařazení, tedy na větvi či v sezna ...


Potenciální vlastnické uzly

Substrukturu select je možné uvést u následujících uzlů:

ElementDef - šablona prvku (kmenová definice);

meta-element - prvek meta-dat (segment uvnitř definice);

element - prvek (segment uvnitř definice);


Možní potomci uzlu select

Substrukturu select je možné rozšířovat o následující potomky:

option - položka výběru v prvku;


Substruktura select

seznam výběrového prvku


Obal obsahu definice contentObal služeb dokumentu servicesJazyková nastavení langModifikace segmentu modificationSubstruktura optionDefinice seznamu pro roletku výběrového prvku selectDoplnění statického textu textMapování segmentu dokumentu mapp-toSubstruktura mapp-to-appMapování na externí aplikace