Dynamické řádky

Typ Dynamické řádky přidá do formuláře tabulku, do které uživatel přidává řádky: položky objednávky, vybavení, cestovní náklady. Sloupce, jejich typy a chování definujete v JSON, výpočty v řádcích (součiny, součty, skrývání sloupců) ve skriptu. Nastavujete ho v editoru proměnné (Šablony › šablona › Proměnné › proměnná). Společnou část editoru popisuje článek Proměnné: přehled a společná nastavení.

Dynamické řádky jsou nástroj pro konzultanty a autory šablon, kteří znají JSON a základy JavaScriptu.

Editor dynamických řádků

Po výběru typu Dynamické řádky se pod základními informacemi objeví část Dynamické řádky přes celou šířku. Výchozí hodnota se nezadává polem, ale vyplněním náhledu.

Č.PrvekK čemu slouží
1SkriptEditor kódu v JavaScriptu, který řídí hodnoty a chování buněk. Zvýrazňuje syntaxi, nabízí doplňování a podtrhává chyby.
2NápovědaOtevře nápovědu k dynamickým řádkům: vlastnosti tabulky a sloupců, metody skriptu s příklady a kompletní ukázku definice. Stejné tlačítko je i u definice.
3Vložit snippetNabídka hotových úryvků kódu, které se vloží na místo kurzoru. Nabídku lze prohledávat.
4Celá obrazovkaOtevře editor v okně přes celou obrazovku.
5Definice tabulky a sloupcůJSON s vlastnostmi tabulky (table) a seznamem sloupců (columns). Má vlastní nápovědu, snippety a celou obrazovku. Při opuštění editoru se náhled sám obnoví.
6NáhledTabulka tak, jak ji uvidí uživatel. Řádky, které v náhledu vyplníte, se uloží jako výchozí hodnota proměnné.
7ObnovitZnovu sestaví náhled z aktuální definice a skriptu.

V ukázce má tabulka Equipment list sloupce Item (výběr z pevných voleb), Quantity, Unit price, Total a Note. Skript počítá sloupec Total jako součin počtu a ceny:

this.value('total', null, function (t, i) {
  var q = t['quantity'][i].getValue();
  var p = t['unitPrice'][i].getValue();
  return q && p ? q * p : null;
});

Snippety

MetodaK čemu slouží
this.valueNastaví hodnotu buňky nebo buněk, typicky výpočet sloupce.
this.taskOvlivní vzhled (styly) buňky nebo buněk.
this.changeDefZmění definici tabulky za běhu, například skryje sloupec nebo ho zpřístupní jen pro čtení.
this.changeFormComponentsNastaví hodnotu jiné proměnné ve formuláři úkolu, například součet do číselné proměnné.
this.formComponentsStyleZmění styl jiné proměnné ve formuláři, hlavně ji skryje.
this.insertHtml a this.valueHtmlVloží pod tabulku vlastní HTML (například součtová pole) a nastaví jeho hodnotu.
this.changeCellZmění vlastnosti buňky, například povinnost nebo platnost.
this.getDynTableNačte hodnoty sloupce dynamické tabulky pro použití ve skriptu.
this.deleteRowSmaže řádek.
this.handleErrorsOhlásí chyby ve formuláři a zabrání splnění úkolu, dokud nejsou opravené.

Definice tabulky

Hlavní vlastnosti tabulky (table):

VlastnostVýznam
showTotalsŘádek součtů pod tabulkou. Výchozí ano.
showAddRemove, showAdd, showRemove, showClone, showRemoveAllZda uživatel smí přidávat, mazat a kopírovat řádky a smazat všechny najednou. Přidávání, mazání a kopírování je ve výchozím stavu povolené, mazání všech ne.
isDraggableZměna pořadí řádků tažením. Výchozí ano.
watchVariablesProměnné úkolu, jejichž změna spustí přepočet skriptu. Proměnné musí být v úkolu přiřazené pro zápis.
runCondsOnChange, runAfterConds, attachScriptToCondsVztah k dynamickým podmínkám úkolu: přepočet podmínek po změně v tabulce, spuštění skriptu až po podmínkách, nebo řízení tabulky jen z dynamických podmínek.
resizable, minColWidth, sideZměna šířky sloupců s vodorovným posuvníkem, minimální šířka sloupce a umístění tabulky.

Hlavní vlastnosti sloupců (columns): name (název pro skript), type (DL, SL, currency, number, percentage, date, text, textarea, file, checkbox), caption a translations (záhlaví a jeho překlady), value (výchozí hodnota buněk), duty (writeable, mandatory, readonly, cond-mandatory), choices (volby pro SL), dataUrl, urlFilter a dataStructure (zdroj dat pro DL), nrOfDecimals, thCss a css (šířka a vzhled). Úplný seznam s příklady je v nápovědě editoru.

Neplatný JSON se neuloží
Pokud definice tabulky není platný JSON, uložení skončí hlášením „Není validní JSON!“ a proměnná se neuloží. Když má tabulka nastavené attachScriptToConds: true, je skript jen pro čtení, protože tabulku řídí dynamické podmínky úkolu.

Rozsáhlý příklad: položky objednávky

Ukázková šablona „TAS | Purchase Order 5.19“ používá dynamické řádky pro položky objednávky. Skript nastavuje měrné jednotky a sazby DPH podle jazyka a počítá ceny bez DPH a s DPH, definice sleduje proměnné typ nákupu a středisko (watchVariables) a sloupce mají překlady záhlaví.

Jak vypadá ve formuláři

Uživatel vybere položku, zadá počet a cenu, sloupec Total spočítá skript a je jen pro čtení. Ikonou plus pod tabulkou přidá řádek. Podle definice tabulky může řádky také mazat, kopírovat a přesouvat tažením. Tabulka Equipment list má součtový řádek vypnutý (showTotals: false).

Související: Proměnné: přehled a společná nastavení, Dynamická tabulka, Dynamické podmínky úkolu.

Číselníky (texty, čísla, datumy)

Datum

Team assistant (opens in a new tab)

Powered by HelpDocs (opens in a new tab)