Opakující se tabulka

Tabulka s opakujícími se řádky uložená v jednom sloupci položky, s typovanými sloupci a souhrny.

Popis widgetu repeatingTable

Opakující se tabulka umožní uživateli zadat libovolný počet řádků se stejnými sloupci, například položky rozpočtu nebo řádky objednávky, a to přímo ve formuláři. Celá tabulka se ukládá do jednoho víceřádkového sloupce položky jako JSON. Na rozdíl od ostatních widgetů tedy není virtuální: je to režim zobrazení pole víceřádkového textu (Víceřádkový text). Součet vybraného sloupce se může automaticky propisovat do číselného pole.

Nastavení pole v režimu Tabulka (JSON): přepínač režimu zobrazení, seznam sloupců, přidání sloupce a Propisovat součet do pole

Přidání do formuláře

  1. V SharePointu mějte ve spravovaném seznamu sloupec typu Více řádků textu (doporučujeme prostý text).
  2. V paletě na kartě Pole přetáhněte tento sloupec do sekce.
  3. V inspektoru u Režim zobrazení pole přepněte z Víceřádkový text na Tabulka (JSON). Návrhář vytvoří tři ukázkové sloupce (Položka, Počet, Cena se součtem).
  4. Sloupce upravte, přidejte vlastní a případně nastavte propisování součtu.

Přepnutím zpět na Víceřádkový text se pole stane obyčejným textovým polem. Nastavení tabulky zůstane v konfiguraci a po novém přepnutí se obnoví.

Nastavení v inspektoru

VolbaVlastnostVýznamVýchozí
Režim zobrazení polefieldTypemultiline (Víceřádkový text) nebo repeatingTable (Tabulka JSON).multiline
Sloupce tabulkyrepeatingTableConfig.columns[]Seznam sloupců. Přidáte ho zadáním názvu, výběrem typu a tlačítkem „+“, odebrat ho lze ikonou koše, šipkami se mění pořadí. Povinný alespoň jeden sloupec.Položka, Počet, Cena
Úprava sloupcecolumns[].label, type, required, width, summary, options, defaultValueIkona tužky u sloupce otevře editor: popisek, typ, povinnost, šířka (60 až 600 px), souhrn v patičce (jen číselný sloupec), volby (typ výběr, jedna na řádek) a výchozí hodnota buňky. Klíč sloupce (key) se nemění, protože se podle něj ukládají data.podle sloupce
Minimální a maximální počet řádkůrepeatingTableConfig.minRows, maxRowsMinimum 0 až 100, maximum 1 až 500. Prázdné pole znamená bez omezení. Maximum se nikdy nenastaví pod minimum.bez omezení
Text tlačítka Přidat řádekrepeatingTableConfig.addRowLabelV jiném jazyce návrháře se uloží do překladů (repeatingAddRowLabel), stejně jako popisky sloupců (repeatingColumns).Přidat řádek
Propisovat součet do polerepeatingTableConfig.syncSumToFieldPole formuláře typu Číslo, Měna nebo Jeden řádek textu, do kterého se zapisuje součet sloupce. Viz Propisování součtu. Volba je v inspektoru vždy vidět; pokud ve formuláři není vhodné pole nebo tabulka nemá číselný sloupec, je zakázaná a vysvětlí proč.žádné
Vlastní popisek, Popis, Šířka v sekci, Viditelné, Povinné, Jen pro čtenícustomLabel, description, colSpan, defaultVisible, defaultRequired, defaultReadOnlySpolečné volby polí. Popis se zobrazí pod popiskem. Povinná tabulka vyžaduje alespoň jeden řádek.

Při přidání sloupce návrhář odvodí z názvu klíč (key), například „Cena celkem“ na cena_celkem, a postará se, aby byl unikátní. Číselný sloupec dostane součet v patičce.

Sloupce a typy

Každý sloupec má tyto vlastnosti:

VlastnostVýznam
idInterní identifikátor sloupce v návrháři.
keyKlíč v JSON řádku. Musí začínat písmenem nebo _ a obsahovat jen písmena, číslice a _. V rámci tabulky musí být unikátní. Po přejmenování klíče se hodnoty v už uložených řádcích ztratí.
labelZáhlaví sloupce.
typetext (textové pole), number (číslo), date (výběr data, ukládá se RRRR-MM-DD), boolean (zaškrtávátko Ano/Ne), choice (rozbalovací výběr z options).
requiredPovinná buňka. U záhlaví se zobrazí hvězdička a validace odmítne řádek s prázdnou hodnotou.
widthŠířka sloupce v pixelech (60 až 600).
optionsSeznam hodnot pro typ choice.
defaultValueHodnota buňky v nově přidaném řádku. Bez ní: číslo 0, ano/ne ne, výběr první volba, jinak prázdné.
summarySouhrn v patičce: none, sum, avg, min, max, count.

Inspektor umožňuje sloupec přidat, upravit všechny jeho vlastnosti, přesunout a odebrat; nastavuje také minRows, maxRows a addRowLabel. Při více číselných sloupcích lze u propisování součtu zvolit, který se sečte.

Souhrny

Souhrnný řádek je zobrazen pod daty, když alespoň jeden sloupec má souhrn a tabulka má alespoň jeden řádek. Buňka ukáže název souhrnu velkými písmeny a hodnotu, například SUM: 1250.

SouhrnVýsledek
sumsoučet číselných hodnot sloupce
avgprůměr, zaokrouhlený na dvě desetinná místa
min, maxnejmenší, největší hodnota
countpočet řádků
nonebez souhrnu

Hodnoty, které nejsou číslo, se do souhrnu nezapočítají. Bez čísel je výsledek 0. První sloupec bez souhrnu v souhrnném řádku nese popisek „Celkem“.

Propisování součtu (syncSumToField)

Součet sloupce můžete automaticky zapisovat do pole formuláře typu Číslo, Měna nebo Jeden řádek textu, například CelkovyRozpocet. Nastavíte ho v inspektoru volbou Propisovat součet do pole. Návrhář přitom jako zdroj vybere první číselný sloupec tabulky; po zvolení cíle se zobrazí výběr Sloupec pro součet, kde zvolíte jiný číselný sloupec. Odpovídající JSON:

"syncSumToField": {
  "sourceColumnKey": "castka",
  "targetFieldInternalName": "CelkovyRozpocet"
}

Uložení: JSON a víceřádkový text

Hodnota pole je JSON pole objektů, v němž jsou klíče sloupců, například:

[
  { "nazev": "Licence", "pocet": 5, "cena": 1200 },
  { "nazev": "Školení", "pocet": 1, "cena": 8000 }
]

Neplatný JSON ve sloupci se zobrazí jako prázdná tabulka. Pokud uživatel přidá řádek a uloží, původní text se přepíše. Do sloupce proto nezapisujte ručně.

Chování za běhu

Tabulka ve formuláři v režimu Úprava: pět sloupců různých typů, šipky a koš u řádků, souhrnný řádek se SUM a tlačítko Přidat řádek
Chyba při uložení „V řádku 2 je pole … povinné“ pod tabulkou
Stejná tabulka v režimu Zobrazení: jen čtení, hodnoty Ano/Ne textem, souhrn pod daty a vedle ní číselné pole s propsaným součtem

Překlady textů

Přeložit lze popisek (customLabel), popis (description), text tlačítka přidání řádku (repeatingAddRowLabel) a záhlaví sloupců (repeatingColumns, klíčem je key nebo id sloupce). Volby sloupce typu choice se nepřekládají. Viz Překlady a vícejazyčnost.

Pravidla a skripty

Tabulka je běžné pole, platí pro ni například:

Příklad konfigurace (JSON)

{
  "internalName": "RozpocetPolozky",
  "customLabel": "Položky rozpočtu",
  "description": "Součet sloupce Částka se propisuje do pole Celkový rozpočet.",
  "fieldType": "repeatingTable",
  "colSpan": 12,
  "repeatingTableConfig": {
    "addRowLabel": "Přidat položku",
    "minRows": 1,
    "maxRows": 50,
    "syncSumToField": {
      "sourceColumnKey": "castka",
      "targetFieldInternalName": "CelkovyRozpocet"
    },
    "columns": [
      { "id": "col_nazev", "key": "nazev", "label": "Název", "type": "text", "required": true, "width": 260 },
      { "id": "col_typ", "key": "typ", "label": "Typ nákladu", "type": "choice",
        "options": ["Práce", "Dodavatel", "Licence"], "defaultValue": "Práce" },
      { "id": "col_castka", "key": "castka", "label": "Částka (Kč)", "type": "number",
        "required": true, "defaultValue": 0, "summary": "sum" },
      { "id": "col_schvaleno", "key": "schvaleno", "label": "Schváleno", "type": "boolean" }
    ]
  }
}

Omezení a tipy