Formularelemente aktivieren und deaktivieren
In diesem Tutorial möchten wir Ihnen eine Möglichkeit vorstellen, wie Sie mit todo4teams Formularelemente aktivieren und deaktivieren können.
Wenn sie ein Formular erstellt haben , in dem nicht immer alle Felder zugänglich sein sollen, besteht die Möglichkeite, diese Felder zu deaktivieren. Das genaue Prozedere hierfür anhand eines Beispiels:
Bei diesem Beispiel-Formular soll alles nicht benötigte deaktiviert werden, so dass seitens der Nutzer von todo4teams unpassende Felder nicht verwendet werden können.
Zum Aktivieren und Deaktivieren von Formularelementen öffnen Sie nun das entsprechende Formular über den "Öffnen"-Dialog im Registerreiter "Formulare" von todo4teams. In dem sich nun öffnenden Formulareditor können nun Felder über die Funktion setEnabled im Callback-Skript der Mehrfachauswahl je nach Wunsch deaktiviert oder aktiviert werden.
Anbei der exemplarische Skriptbestandteil, der diese Funktion definiert und den Sie bitte für Ihre Zwecke entsprechend modifiziern sollten.:
var widget = att.getWidget();
if (widget != null){
att.setPreventEnable(!en);
widget.setPreventEnable(!en);
widget.setEnabled(en);
}
else{
println("No Widget for:" + att);
}
}
var pa = form.getMetaAttributeByName("Problem_Überschrift");
setEnabled(pa,false);
Diese so definierte Funktion bietet nun die Möglichkeit, ein Feld zu aktivieren (true) oder zu deaktivieren (false) .
var widget = att.getWidget();
if (widget != null){
return widget.getWidgetValue();
}
else{
println("No Widget for:" + att);
}
return null;
}
var uWidget = form.getMetaAttributeByName("Hauptauswahl");
var widgetValue = getWidgetValue(uWidget);
if (widgetValue == null)
{
widgetValue="";
}
if (widgetValue == "Problem")
{
setEnabled(pa,true);
}
Um passend zur Eingabe Felder zu aktivieren oder deaktivieren nimmt man die Funktion getWidgetValue und vergleicht diesen Wert mit einem Vergleichswert, um die passenden Felder zu aktivieren oder deaktivieren.
Um beim Aufrufen eines Formulares Felder zu deaktivieren, muss im Formular-Tab "Aktivieren-Aktion" setPreventEnable verwendet werden.
Dies sieht dann so aus:
Um ein anderes Formular zu aktivieren verwendet man activateFormById(ID), dies aktiviert das Formular mit der angegebenen ID.
Also wird wenn man Eintritt betätigt das Formular für den Eintritt aktiviert.
Damit nach der Aktivierung das Formular auch an der Richtigen stelle in der Liste steht verwendet man resetAndRestore().
Um ein Formular zu deaktivieren verwendet man deactivateFormById(ID), dies deaktiviert das Formular mit der angegebenen ID.
Eine vollständige Aktivierung und Deaktivierung in einem Callback sieht so aus:
{
formPanel.deactivateFormById(81);
formPanel.activateFormById(79);
formPanel.resetAndRestore();
}
Das vorgestellte Formular ("Änderungsmanagement2.xml") finden Sie in den Anhängen dieses Tutorials, können es herunterladen und per Import als neues Formular in Ihre todo4teams-Instanz einbinden.