Přeskočit obsah

Template Column

Template Column je vypočítané pole, které generuje hodnotu kombinací jiných polí položky pomocí šablonového výrazu. Slouží k automatickému sestavení textu z více hodnot — například pro generování popisných názvů, kódů nebo formátovaných textů.

Základní konfigurace

Minimální konfigurace s výrazem:

{
  "Expression": "{Title} - {item:s_department}"
}

Vlastnosti

  • Expression "Expression": "{Title} - {item:s_department}" — Šablonový výraz pro generování hodnoty. Podporuje tokeny pro přístup k polím položky. [Povinné]

Dostupné tokeny

Ve výrazu lze použít tokeny pro přístup k hodnotám polí aktuální položky:

Token Popis
{FieldInternalName} Hodnota pole podle interního názvu.
{item:FieldInternalName} Alternativní syntaxe pro přístup k poli položky.
{Year} Aktuální rok.
{Month} Aktuální měsíc (01–12).
{Day} Aktuální den (01–31).
{date:format} Aktuální datum ve vlastním formátu .NET.
{ContentTypeName} Název typu obsahu položky.
{ListName} Název seznamu.

Příklady

Příklad: Název dokumentu

{
  "Expression": "{s_documentType} - {Title} ({Year})"
}

Výsledek: Smlouva - Nájemní smlouva Brno (2025)

Příklad: Kód položky

{
  "Expression": "{s_prefix}-{date:yy}-{ID}"
}

Výsledek: OBJ-25-142


Klientské zobrazení (Handlebars šablona)

Na formuláři a v Advanced Table se Template Column zobrazuje pomocí klientské komponenty, která využívá Handlebars šablony pro pokročilé formátování. Klientská šablona umožňuje podmíněné zobrazení, formátování dat, lokalizaci a vykreslení vlastního HTML.

Konfigurace

{
  "Expression": "{{#if (eq value 1)}}✅ Ano{{else}}❌ Ne{{/if}}"
}

Vlastnosti

  • Expression — Handlebars výraz pro vykreslení hodnoty. Podporuje helpery, podmínky a přístup k hodnotám formuláře. [Povinné]
  • Resources — Lokalizační zdroje pro helper t. [Nepovinné]

Dostupné proměnné

V Handlebars výrazu jsou dostupné tyto proměnné:

Proměnná Popis
value Aktuální hodnota pole.
{FieldInternalName} Hodnota libovolného pole z formuláře (např. {{Title}}, {{Status}}).
SiteUrl URL site collection.
WebUrl URL webu.

Helpery

eq

Porovnání dvou hodnot (striktní rovnost).

{{#if (eq value 1)}}Aktivní{{else}}Neaktivní{{/if}}

formatDate

Formátování data. Podporuje parametr format s tokeny dd, MM, yyyy, HH, hh, mm, ss, nebo parametry locale, includeTime, use24Hour, includeSeconds.

{{formatDate CreatedDate format="dd.MM.yyyy"}}
{{formatDate ModifiedDate locale="cs-CZ" includeTime=true}}

json

Serializace hodnoty do JSON řetězce.

{{json value}}

parseJson

Parsování JSON řetězce na objekt.

{{#with (parseJson jsonField)}}{{name}}{{/with}}

lookupValue

Extrakce hodnoty z lookup formátu (id#;value).

{{lookupValue DepartmentField}}

Vstup 6#;KVALITA → výstup KVALITA

lookupId

Extrakce ID z lookup formátu.

{{lookupId DepartmentField}}

Vstup 6#;KVALITA → výstup 6

t

Překlad klíče podle aktuálního jazyka (LCID). Hledá překlad v poli Resources — nejdříve podle aktuálního LCID, poté fallback na angličtinu (1033), poté první dostupný zdroj.

{{{t 'approved'}}}

Lokalizace (Resources)

Pole Resources umožňuje definovat překlady pro vícejazyčné šablony:

{
  "Expression": "{{#if (eq value 1)}}{{{t 'approved'}}}{{else}}{{{t 'rejected'}}}{{/if}}",
  "Resources": [
    {
      "LCID": "1029",
      "approved": "<span style='color:green'>Schváleno</span>",
      "rejected": "<span style='color:red'>Zamítnuto</span>"
    },
    {
      "LCID": "1033",
      "approved": "<span style='color:green'>Approved</span>",
      "rejected": "<span style='color:red'>Rejected</span>"
    }
  ]
}

Podporované LCID: 1029 (čeština), 1033 (angličtina).

Note

Pro vykreslení HTML z překladu použijte trojité složené závorky {{{t 'key'}}}.

Reaktivní aktualizace

Klientská komponenta automaticky sleduje změny hodnot na formuláři pomocí formContext.watch(). Při změně libovolného pole, na které šablona odkazuje, se zobrazení okamžitě přepočítá.

Režimy zobrazení

  • ListView — Zobrazení v seznamu bez další stylizace.
  • FormView — Zobrazení na formuláři s CSS třídou form-view-input.

Chybové stavy

Pokud šablona obsahuje syntaktickou chybu nebo runtime chybu, komponenta zobrazí text Template error: [popis chyby] místo výsledku.

Příklady klientského zobrazení

Podmíněné zobrazení stavu

{
  "Expression": "{{#if (eq value 1)}}✅ Schváleno{{else}}⏳ Čeká na schválení{{/if}}"
}

Kombinace hodnoty s kontextem formuláře

{
  "Expression": "{{value}} — Oddělení: {{lookupValue s_department}}"
}

Formátované datum vytvoření

{
  "Expression": "Vytvořeno: {{formatDate Created format='dd.MM.yyyy HH:mm'}}"
}

Použití v Advanced Table

Template Column lze použít jako typ sloupce v Advanced Table. Konfigurace se předává ve vlastnosti TemplateColumn:

{
  "Columns": [
    {
      "Name": "Stav",
      "InternalName": "status",
      "TemplateColumn": {
        "Expression": "{{#if (eq value 1)}}✅ Aktivní{{else}}❌ Neaktivní{{/if}}"
      }
    }
  ]
}

Sloupec v tabulce podporuje stejné helpery a šablony jako samostatné pole na formuláři. Při exportu dat z tabulky se HTML tagy automaticky odstraní a exportuje se pouze textový obsah.