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.

tutorial4.png

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.:

function setEnabled(att,en){
    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) .

function getWidgetValue(att){
    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.

form.getMetaAttributeByName("Problem_Überschrift").setPreventEnable(true);

Dies sieht dann so aus:

tutorial5.png

Um ein anderes Formular zu aktivieren verwendet man activateFormById(ID), dies aktiviert das Formular mit der angegebenen ID.

formPanel.activateFormById(79);

eintritt

Also wird wenn man Eintritt betätigt das Formular für den Eintritt aktiviert.

eintritt_anzeige.png

Damit nach der Aktivierung das Formular auch an der Richtigen stelle in der Liste steht verwendet man resetAndRestore().

formPanel.resetAndRestore();

Um ein Formular zu deaktivieren verwendet man deactivateFormById(ID), dies deaktiviert das Formular mit der angegebenen ID.

formPanel.deactivateFormById(81);

Eine vollständige Aktivierung und Deaktivierung in einem Callback sieht so aus:

if (widget == "Eintritt")
{
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.

     

Unterseiten