Autor: Martin Bradáč

Některé datové zdroje mohou mít v záznamech jednoduchých hodnot také tabulku (seznam). Typicky může jít o nějaké štítky, “tagy”, jejichž počet je pro každou položku záznamu jiný.

Například u seznamu zákazníků existuje sloupec, který obsahuje poznámky přidávané formou výběru – „Spolehlivý“, „Neplatič“, „VIP“, „Aktivní“ – přičemž některý zákazník může být např. “VIP” i “Aktivní” současně. Pokud budete chtít takový sloupec zobrazit v tabulce nebo galerii, narazíte na problém. Textový popisek (label) umí pracovat pouze s hodnotou, nikoliv záznamem či tabulkou. Následující návod může posloužit jako jedno z řešení.

Příklad lze odprezentovat na následujících záznamu, který si pro ukázku vytvoříme v kolekci.

Do obrazovky aplikace plátna vložíme tlačítko, na akci OnSelect navážeme vytvoření kolekce.

ClearCollect(
    Klienti;
    {
        nazev: “Novak s.r.o.”;
        tagy: [
            “VIP”;
            “Aktivní”;
            “Spolehlivý”
        ]
    }
)

Už při vkládání tabulky, resp. přidávání polí, si všimněte symbolu u sloupce tagy.

Pokud sloupec přidáte, narazíte na problém. Nad sloupcem “tagy” bude zobrazen symbol chyby s vysvětlením, že se očekával Text. Logicky nejde v jedné buňce zobrazit další tabulku.

Řešením může být převedení všech hodnot do řetězce funkcí Concat. Ta vyžaduje tři vstupy:

  • Zdroj dat,
  • hodnotu, kterou chcete řetězit
  • a jako poslední nastavíte znak, kterým budou hodnoty oddělené – třeba čárku.

V našem případě bude zápis vypadat takto:

  • Concat(
    ThisItem.tagy;
    Value;” ,”)

To je vše. Funkce projevuje jistou dávku inteligence, neboť oddělovač nevloží za poslední záznam a výsledek již není třeba žádným způsobem upravovat.