Als u knoppen toevoegt aan een interactief formulier, biedt u eindgebruikers de mogelijkheid een handeling te starten, bijvoorbeeld het toevoegen en verwijderen van exemplaren van subformulieren die secties zoals itemregels in een bestelformulier definiëren.
U kunt ook knopinfo toevoegen aan de verwijderknop, zodat Item verwijderen wordt weergegeven wanneer de gebruiker de aanwijzer boven de knop plaatst. Het gebruik van afzonderlijke verwijderknoppen is een goede manier om de gebruikers de mogelijkheid te geven specifieke rijen uit het formulier te verwijderen.
Het interactieve voorbeeldformulier Inkooporder heeft bijvoorbeeld een knop Item toevoegen en een verwijderknop met het label X voor elk detailsubformulier. Als de gebruiker op de knop Item toevoegen klikt, wordt een itemregel toegevoegd via een script. Als de gebruiker op een van de verwijderknoppen klikt, wordt de bijbehorende itemregel verwijderd.

U kunt ook het dialoogvenster Action Builder in het menu Opties openen om interactieve functies te maken in formulieren met een stroombare indeling, zonder dat u scripts hoeft te schrijven. Zie
Acties maken in formulieren.Knop Item toevoegen
Met het volgende JavaScript-script in de click-gebeurtenis van de knop Item toevoegen kunnen gebruikers een itemregel toevoegen aan het interactieve voorbeeldformulier Inkooporder. Het formulier wordt door dit script ook opnieuw berekend waardoor het veld Totaal de nieuwe regel in de berekening bevat.
Aangezien gebruikers itemregels alleen toevoegen met de knop Item toevoegen, hoeft de minimumwaarde (voorvalwaarde) niet te worden gecontroleerd in het script.
// 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);
Knop Verwijderen
Met het volgende JavaScript-script in de click-gebeurtenis van de knop Verwijderen kunnen gebruikers met de knop Verwijderen een exemplaar van het detailsubformulier verwijderen uit het interactieve voorbeeldformulier Inkooporder. Het formulier wordt door dit script ook opnieuw berekend, waardoor het veld Totaal de verwijderde regel in de berekening niet meer bevat.
// 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);
Aangezien de initiële minimale voorvalwaarde voor het detailsubformulier 2 is, moet het script de minimale voorvalwaarde verlagen om het voor de persoon die het formulier invult mogelijk te maken de twee itemregels te verwijderen die automatisch verschijnen wanneer het formulier wordt gegenereerd. Dit script is toegevoegd aan de gebeurtenis initialize van het detailsubformulier.
// Reset the minimum occurrence value of the detail subform.
this.occur.min = "0";
Aangezien gebruikers in dit formulier alle exemplaren van het detailsubformulier kunnen verwijderen, moet door het script voor de gebeurtenis calculate van het veld Totaal (numTotal) worden gecontroleerd dat er ten minste één exemplaar van het veld numAmount voorkomt in het detailsubformulier. Anders treedt er een fout op, omdat bij de berekening geen exemplaar van het veld numAmount kan worden gevonden. Dit script is toegevoegd aan de gebeurtenis calculate van het veld numTotal.
// Verify at least one instance of the numAmount field exists.
if (exists(detail[0].numAmount) == 1) then
Sum(detail[*].numAmount)
endif