Drobečková nápověda (breadcrumb)
Drobečková nápověda zobrazuje cestu k aktuální složce, tabulce nebo položce. Předchozí kroky fungují jako odkazy, poslední krok je standardně prostý text. Například:
Zástupce / Obchodní příležitosti / OP-0042
Komponenta má kompaktní textový vzhled s transparentním pozadím, bez běžné obsahové kostky, stínu a límce. Dlouhá cesta se zalamuje. Je použitelná samostatně, například jako první komponenta hlavního rámce stránky.
Volba modifikátoru
| Modifikátor | Použití | Podklad |
|---|---|---|
comex.folder.header.breadcrumb | Statická cesta ke složce. | folder.header, zejména header/location. |
comex.table.header.breadcrumb | Statická cesta k tabulce, například na stránce přehledu. | table.header, zejména header/location. |
comex.table.item.breadcrumb | Cesta ke konkrétní položce tabulky, doplněná jejím označením a případně rodičovskými záznamy. | table.header, table.data, URL key a případně type. |
Položkový modifikátor vytváří celou cestu. Pro jednu navigační cestu proto stačí jedna z uvedených komponent.
Vložení do stránky
V editoru stránek vyberte třídu Složka nebo Přehled, rozsah Hlavička, případně u přehledu rozsah Položka, a modifikátor Drobečková navigace nebo Drobečková navigace položky. Zvolte příslušnou instanci a její parametry.
V XML definici stránky se komponenta vkládá do cxd:frame za jeho případné parametry. Následující příklady používají ilustrativní ID a názvy sloupců; dosaďte hodnoty ze své aplikace. Prefix cxd označuje namespace http://www.flexideo.com/comex/definition.
Složka
<cxd:component source="comex.folder.header:6593.breadcrumb"/>
Tabulka
<cxd:component source="comex.table.header:6592.breadcrumb"/>
Položka tabulky
<cxd:component source="comex.table.item:6592.breadcrumb">
<cxd:with-param name="itemLabel" data-type="string" content="@E10000123"/>
</cxd:component>
itemLabel určuje jeden sloupec dotazu v table.data. Pokud například sloupec E10000123 obsahuje číslo příležitosti, jeho formátovaná hodnota se stane posledním drobečkem. Sloupec může být v běžném přehledu nebo náhledu skrytý.
Konkrétní záznam se vybírá pomocí URL parametrů, například ?id=6593&key=23&type=contract. ID stránky nemusí být stejné jako ID tabulky v source. Jednotypová tabulka umožňuje vynechat type; u více typů je potřeba typ jednoznačně určit.
Parametry
| Parametr | Výchozí hodnota | Význam |
|---|---|---|
includeCurrent | true | Zobrazí aktuální uzel aplikačního stromu. U položkové komponenty řídí zobrazení názvu tabulky; označení načtené položky se přidává samostatně. |
linkCurrent | false | Aktuální uzel stromu bude odkazem. Poslední označení konkrétní položky zůstává prostým textem. |
separator | / | Text oddělovače mezi jednotlivými kroky. |
bottomSpacing | 8 | Mezera k následující komponentě v pixelech. Celé číslo od 0. V editoru Mezera pod navigací (px). |
itemLabel | Povinný pro table.item.breadcrumb. | Odkaz na jeden sloupec ve tvaru @název_sloupce, například @E10000123. |
bottomSpacing=0 odstraní mezeru, hodnota 8 je výchozí a 40 odpovídá původnímu běžnému odsazení komponent. Nastavení působí na následující komponentu stejného rámce, přímo za navigací nebo za jejím skrytým límcem.
<cxd:component source="comex.folder.header:6593.breadcrumb">
<cxd:with-param name="bottomSpacing" data-type="number" content="0"/>
</cxd:component>
Zděděný parametr substitution umožňuje nahradit URL key a type, například:
<cxd:component source="comex.table.item:6592.breadcrumb">
<cxd:with-param name="itemLabel" data-type="string" content="@E10000123"/>
<cxd:with-param name="substitution" data-type="string" content="key=23&type=contract"/>
</cxd:component>
Statická cesta a navigace
Statická cesta vychází z uzlu header/location. Jde o seznam předků od nejvyššího uzlu po přímého rodiče. Komponenta zachovává jejich pořadí a standardně přidá aktuální složku nebo tabulku.
Hlavičky se načítají požadavky s obálkou:
<get-settings type="comex.folder.header" tb-id="6593" envelope="true"/>
<get-settings type="comex.table.header" tb-id="6592" envelope="true"/>
Popisky se vybírají podle jazyka stránky. Podporované jsou smíšené definice langs="mixed" i oddělené jazykové definice. Pokud překlad chybí, použije se dostupný popisek, systémový název nebo ID uzlu.
Statické odkazy vedou na příslušnou složku nebo přehled. Nepřebírají key ani type aktuálního záznamu. Odkaz na konkrétní rodičovský záznam dostává vlastní klíč a typ z rodičovského dotazu.
Údaj položky a formátování
Položkový modifikátor čte jeden záznam podle efektivního key a vybírá pouze údaj určený parametrem itemLabel spolu s potřebnými technickými sloupci. Zachovává povinné podmínky datového dotazu. Formátování používá existující generovanou tabulkovou XSLT; do drobečku se převádí výsledný text bez popisku pole, nástrojů a ikon.
Číselný PDK může mít v URL úvodní #. Pro SQL se tento prefix odstraní a klíč se ověří jako celé číslo.
Pokud se položka zobrazí, název její tabulky se stane odkazem na přehled a posledním textovým drobečkem bude hodnota zvoleného sloupce.
Rodičovské záznamy
Pro doplnění označení rodičovských záznamů může table.header obsahovat volitelný uzel cxd:breadcrumb. Ten drží samostatný SQL dotaz a mapování jeho výsledků na předky v header/location. Využívá jej pouze table.item.breadcrumb; obě statické hlavičkové komponenty rodičovské SQL neprovádějí.
Následující ilustrativní konfigurace předpokládá, že location obsahuje rodičovskou tabulku 6591. Vkládá se pod cxd:header příslušné tabulky:
<cxd:breadcrumb>
<cxd:sql>
<cxd:query base-document="contract" base-table="ctrt">
<cxd:statement type-value="contract" main-alias="T100"><![CDATA[
SELECT T100.fdk as 'key-1', T200.number as 'label-1',
'opportunity' as 'type-1'
FROM dbo.ctrt-!- as T100
LEFT JOIN dbo.oppo-!- as T200 ON T200.pdk=T100.fdk
WHERE T100.pdk=##parkey# AND T100.xc_del=0
]]></cxd:statement>
<cxd:replacement>
<cxd:part name="parkey" type="comex.nkey" hash-mask="2-1"
specifics="parent-key" initial="0"/>
</cxd:replacement>
</cxd:query>
</cxd:sql>
<cxd:step location-class="table" location-id="6591"
key-column="key-1" label-column="label-1"
type-column="type-1" target-id="6590" prefix="OP-"/>
</cxd:breadcrumb>
Dotaz musí být úplný SQL příkaz navázaný ve WHERE na aktuální klíč pomocí typované náhrady specifics="parent-key". Vrací nejvýše jeden řádek; jeden řádek může obsahovat klíče a popisky více rodičů. Výběr dotazu určuje statement/@type-value a efektivní type; bez typu je přípustný jediný dotaz. Volitelná náhrada specifics="document-type" používá efektivní typ dokumentu.
Každý cxd:step má tuto vazbu:
| Atribut | Význam |
|---|---|
location-class, location-id | Jednoznačně určují předka v header/location. |
key-column, label-column | Sloupce výsledku s vlastním klíčem a označením rodiče. |
type-column | Volitelný sloupec s typem rodičovského dokumentu. |
target-id | ID stránky rodičovského detailu. Bez něj se použije location-id. |
label-format | text (výchozí), number, date nebo dateTime. |
fraction-digits | U čísla volitelný počet desetinných míst od 0 do 20. |
prefix, suffix | Volitelný text před a za formátovaným označením. |
Rodičovský záznam se vloží jako další drobeček za odpovídající statický uzel. Statický odkaz na přehled tím zůstává dostupný. Čísla a data se formátují podle jazyka stránky; datum musí mít ISO kalendářní tvar bez časového pásma, například 2026-10-10 nebo 2026-10-10T14:30:00.
Konfigurace se připravuje v tabulkovém XML jako table-file/table/breadcrumb; export make-cxd.xsl ji přenese do table.header. Samostatný dotaz a vazby je potřeba nastavit podle datového modelu aplikace a jejích přístupových pravidel.
Obnova a chybové stavy
refresh()znovu vyhodnotí parametry a sestaví cestu z aktuálních hodnot. U položky znovu načte její údaj a případné rodiče.reinit()znovu provede instalační fáze komponenty.- Bez
keyse zobrazí statická cesta a žádné SQL položky ani rodičů se neprovádí. - Nenalezená položka nebo prázdná hodnota vybraného sloupce ponechá statickou cestu.
- Prázdný rodičovský výsledek, klíč nebo popisek příslušný dynamický krok vynechá.
- Neplatný parametr, nejednoznačný typ, více řádků rodičovského dotazu nebo chybné mapování předka vyvolají chybový stav komponenty.
Požadavky a aktuální rozsah
Datové SQL položky musí mít generované členění a sloupcová metadata query-parts. Nerozdělený dotaz nebo nemapovaná netechnická projekce se odmítají. Technický @pdk bez potřebných sloupcových metadat zatím nelze používat jako univerzální výchozí itemLabel; zvolte dostupný, metadaty popsaný sloupec.
Komponenty se nyní vkládají do definic stránek v editoru nebo v XML. Automatické vkládání breadcrumb do stránek generovaných make-cxd.xsl je samostatná plánovaná úprava.