Form API¶
Objekt form (přístupný přes tisa.form) poskytuje API pro práci s formulářem jako celkem — přístup k polím, skupinám, režimu formuláře a hodnotám polí.
Přístup k objektu¶
const { form } = tisa;
Vlastnosti¶
field¶
Slovník všech polí formuláře, indexovaný interním názvem pole. Každé pole implementuje Field API.
const { myField1, myField2 } = form.field;
myField1.readOnly = true;
console.log(myField2.value);
group¶
Slovník skupin formuláře, indexovaný identifikátorem skupiny (Id). Každá skupina implementuje Group API.
const { G_Supplier } = form.group;
G_Supplier.hidden = true;
readOnly¶
Nastaví celý formulář do režimu pouze pro čtení. Zamkne všechna editovatelná pole.
form.readOnly = true;
isNewForm¶
true, pokud formulář slouží k vytvoření nové položky.
if (form.isNewForm) {
form.field.Status.value = "Draft";
}
isEditForm¶
true, pokud formulář slouží k editaci existující položky.
if (form.isEditForm) {
form.field.ModifiedBy.readOnly = true;
}
isDisplayForm¶
true, pokud formulář slouží pouze k zobrazení položky (bez možnosti úprav).
if (form.isDisplayForm) {
console.log("Formulář je pouze pro čtení.");
}
isEditableForm¶
true, pokud je formulář editovatelný — tj. isNewForm nebo isEditForm je true.
if (form.isEditableForm) {
form.field.Priority.required = true;
}
isTaskForm¶
true, pokud formulář zobrazuje úkol (task) ke zpracování.
if (form.isTaskForm) {
form.field.Comment.required = true;
}
fieldValues¶
Slovník aktuálních hodnot všech polí formuláře. Klíčem je interní název pole.
const values = form.fieldValues;
console.log(values.Title);
console.log(values.Status);
Metody¶
setFormDefinition(name)¶
Přepne aktivní definici formuláře na alternativní definici zadanou názvem. Název musí odpovídat jedné z definic v poli CustomFormDefinitions v JSON konfiguraci formuláře.
Omezení: Metoda může být volána pouze během události onFormInit. Po dokončení inicializace vyhodí chybu.
async function onFormInit() {
const { form } = tisa;
if (form.isDisplayForm) {
form.setFormDefinition("DisplayForm");
} else if (form.isNewForm) {
form.setFormDefinition("ReceivedMessage");
}
}
Viz Alternativní definice formulářů pro konfiguraci CustomFormDefinitions.