Odkaz na šablonu based-on
Odkaz na obecnou definici šablony segmentu v případě, že segment má své výchozí vlastnosti převzít z šablony.
{template_definition_name}
Vlastnost based-on (založeno-na) obsahuje jméno (parametr name) definice šablony segmentu. Tato vlastnost může být použita i u vlastních šablon definic segmentů (oblastí a prvků), kde říká, že z odkazované definice původní šablony budou převzaty do nové šablony ty parametry, které v nové šabloně nejsou uvedeny. Pokud je based-on uvedeno jako atribut segmentu ve struktuře šablony oblasti či dokumentu, pak se rovněž z odkazované definice přebírají parametry jako atributy odkazujícího segmentu.
Existence šablon segmentů má jednoduchý důvod. Pokud budeme mít například stejné výběrové políčko vyskytující v různých dokumentech, u kterého chceme upravit seznam položek výběru, museli bychom bez existence šablon upravovat tento seznam na několika místech. Pokud si ovšem prvek definujeme do šablony a v dokumentech budeme pouze na vytvořenou šablonu odkazovat, provedeme potřebné změny pouze v šabloně a při kmpletaci definice se pak změny provedeou ve všech polích jednotlivých dokumentů. Jiným příkladem může být specifické políčko, jako například rodné číslo. Rodné číslo bude mít definovánu svou masku a další specifické vlastnosti. Prvek rodného čísla pak budeme chtít použít nejen v osobě, ale také v dokumentu zaměstnanec, zástupce a klient. Abychom nemuseli opakovaně nastavovat tytéž vlastnosti v různých dokumentech, nastavíme si opět pouze šablonu a z dokumentů budeme pomocí based-on jen na šablonu rodného čísla odkazovat. Odkaz má podobu názvu odpovídající parametru name šablony.
Šablony prvků a oblastí mohou dále vycházet z jiných šablon a upravit jen pár potřebných vlastností pro získání finální podoby pro dokument. Pokud tak tedy máme například obecný prvek cena, a další prvky nakupni_cena, prodejni_cena a cena_s_dph. Můžeme snadno využít většiny vlastností prvku cena (maska, ikona, datový typ atd.) a nastavit jen popis a štítek.
To že některý segment využívá vlastností šablony se určí vlastností based-on. Při použití tohoto spojení platí, že vlastnosti odkazovaného segmentu je možné potlačit kontextovými vlastnostmi (tj. potřebami definice nového segmentu nebo kontextu dokumentu). To znamená, že pokud uvedeme v segmentu s odkazem na šablonu nové nastavení vlastnosti, která je již šablonou nastavována, pak se logicky použije nastavení uvedené přímo u segmentu a nastavení v šabloně segmentu bude potlačeno.
Specifickým případem použití šablony pomocí based-on je odkaz s hodnotou x_common. Kmenová oblast dokumentu s názvem x_common je vyhražena pro tzv. obecnou oblast, kterou disponují všechny dokumenty a jejíž jméno je tedy vyhraženo a není možné jej v definici nikde použít. Jedinou výjimkou je použití tohoto názvu v odkazu based-on. Nemůžete však k tomuto názvu připravit odpovídající šablonu a ani nemusíte. Replikátor s tím počítá a tento odkaz akceptuje a provede doplnění based-on. Jde o zvláštní případy, kdy chcte buď některý z prvků obecné oblasti nějak upravit (např. výchozí hodnota, počítání apod.) nebo chcete do obecné oblasti u daného typu dokumentu doplnit segment nový. Můžete tak nastavit kmenovou oblast s odkazem
based-on="x_common"
U této oblasti pak nebude uvedeno v návrhu jméno (to doplní replikátor), protože jinak by to ani neprošlo. Stejně tak se doplní všechny povinné segmenty této oblasti (i s ohledem na aplikační typ, kde se může obsah lišit - viz. mapování a vlastnost custom-x-common) a v návrhu definice takové oblasti je pak možné uvést jen ty segmenty, které je třeba pozměnit či přidat.
Potenciální vlastnické uzly
Vlastnost based-on je možné uvést u následujících uzlů:
ElementDef - šablona prvku (kmenová definice) - jako parametr;
AreaDef - šablona oblasti (kmenová definice) - jako parametr;
DocumentDef - dokument nebo šablona d. (kmenová definice) - jako parametr;
element - prvek (segment uvnitř definice);
area - oblast (segment uvnitř definice);
Vlastnost based-on
Odkaz na obecnou definici šablony segmentu v případě, že segment má své výchozí vlastnosti převzít z šablony.
{template_definition_name}