Durch das Hinzufügen von Schaltflächen zu einem interaktiven Formular erhalten Endbenutzer die Möglichkeit, eine Aktion auszulösen, wie z. B. das Hinzufügen oder Entfernen von Teilformularen, durch die Abschnitte wie Elementzeilen in einem Bestellformular definiert werden.
Darüber hinaus können Sie eine QuickInfo zur Schaltfläche zum Löschen hinzufügen, die den Text „Element löschen“ anzeigt, wenn der Benutzer mit der Maus auf die Schaltfläche zeigt. Der Einsatz separater Schaltflächen zum Löschen ist nützlich, um den Benutzern das Löschen bestimmter Zeilen aus dem Formular zu ermöglichen.
So verfügt das interaktive Musterbestellformular beispielsweise für jedes Detail-Teilformular über eine Schaltfläche zum Hinzufügen eines Elements sowie über eine Schaltfläche zum Löschen, die durch ein „X“ markiert ist. Wenn der Benutzer auf die Schaltfläche zum Hinzufügen eines Elements klickt, wird vom Skript eine Elementzeile hinzugefügt. Wenn der Benutzer dagegen auf eine der Schaltflächen zum Löschen klickt, wird die entsprechende Elementzeile vom Skript gelöscht.
Sie können gängige interaktive Funktionen in Formularen mit flexiblem Layout auch über das Action Builder-Dialogfeld im Menü „Extras“ erstellen, ohne Skripten zu schreiben. Siehe
Erstellen von Aktionen in FormularenSchaltfläche „Element hinzufügen“
Mit dem folgenden JavaScript-Skript im Klicken-Ereignis der Schaltfläche zum Hinzufügen eines Elements können Benutzer eine Elementzeile zum interaktiven Musterbestellformular hinzufügen. Durch das Skript wird das Formular ebenfalls neu berechnet, so dass das Feld mit der Gesamtsumme die neue Zeile enthält.
Da Benutzer Elementzeilen nur über die Schaltfläche „Element hinzufügen“ hinzufügen können, muss das Skript den minimalen Zählerwert (den Wert für das minimale Vorkommen) nicht überprüfen.
// Invoke the Instance Manager to add one instance of the detail subform.
_detail.addInstance(1);
//Invoke the recalculate method to include the field values from the added subform in calculations.
xfa.form.recalculate(1);
Schaltfläche „Löschen“
Mit dem folgenden JavaScript-Skript im Klicken-Ereignis der Schaltfläche zum Löschen können Benutzer die entsprechende Schaltfläche verwenden, um eine Instanz des Detail-Teilformulars des interaktiven Musterbestellformulars zu löschen. Durch das Skript wird das Formular außerdem neu berechnet, so dass das Feld für die Gesamtsumme die gelöschte Zeile nicht mehr enthält.
// Invoke the Instance Manager to remove the current instance of the detail subform.
_detail.removeInstance(this.parent.index);
// Invoke the recalculate method to update the form calculations.
xfa.form.recalculate(1);
Da der anfängliche Mindestwert für das Vorkommen des Detail-Teilformulars 2 ist und somit automatisch zwei Elementzeilen angezeigt werden, muss dieser Mindestwert mit Hilfe des Skripts reduziert werden, damit zwei Elementzeilen gelöscht werden können. Dieses Skript wird dem Initialisieren-Ereignis des Detail-Teilformulars hinzugefügt.
// Reset the minimum occurrence value of the detail subform.
this.occur.min = "0";
Da es für Benutzer möglich ist, alle Instanzen des Detail-Teilformulars zu löschen, wird durch das Skript für das Berechnen-Ereignis des Summenfelds (numTotal) sichergestellt, dass sich mindestens eine Instanz des Felds numAmount im Detail-Teilformular befindet. Wenn bei der Berechnung keine Instanzen des Felds numAmount gefunden werden, tritt ein Fehler auf. Dieses Skript wird dem Berechnen-Ereignis des numTotal-Felds hinzugefügt.
// Verify at least one instance of the numAmount field exists.
if (exists(detail[0].numAmount) == 1) then
Sum(detail[*].numAmount)
endif