A inclusão de botões em um formulário interativo fornece aos usuários finais uma maneira de iniciar uma ação, por exemplo, adicionar e excluir instâncias de subformulários que definam seções, como linhas de item, em um formulário de pedido.
Também é possível adicionar uma dica de ferramenta ao botão Excluir para exibir as palavras “Excluir item” quando o usuário posicionar o cursor sobre o botão. O uso de botões Excluir separados é uma boa maneira de permitir que os usuários removam linhas específicas do formulário.
Por exemplo, a amostra de formulário interativo de Pedido de compra tem um botão Adicionar item e um botão Excluir rotulado como “X” para cada subformulário detail. Quando o usuário clica no botão Adicionar item, um script adiciona uma linha de item. Por outro lado, quando esse usuário clica em um dos botões Excluir, um script exclui a linha de item associada.

Você também pode usar a caixa de diálogo Action Builder no menu Ferramentas para criar recursos interativos comuns nos formulários com layout flutuante, sem gravar scripts. Consulte
Como criar ações nos formulários.Botão Adicionar item
O seguinte script JavaScript no evento click do botão Adicionar Item permite que os usuários adicionem uma linha de item à amostra de formulário interativo de Pedido de compra. Esse script também recalcula o formulário de forma que o campo Total inclua a nova linha no cálculo.
Como os usuários apenas adicionam linhas de item usando o botão Adicionar Item, esse script não precisa verificar o valor de contagem (ocorrência) mínima.
// 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);
Botão Excluir
O seguinte script JavaScript no evento click do botão Excluir permite que os usuários usem esse botão para excluir uma instância do subformulário detail da amostra de formulário interativo de Pedido de compra. Esse script também recalcula o formulário de forma que o campo Total não inclua mais a linha excluída no cálculo.
// 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);
Como o valor inicial de ocorrência mínima para o subformulário detail é 2, o script precisa reduzir esse valor para permitir que o usuário do formulário exclua as duas linhas de item que são exibidas automaticamente no momento em que o formulário é renderizado. Esse script é adicionado ao evento initialize do subformulário detail.
// Reset the minimum occurrence value of the detail subform.
this.occur.min = "0";
Como o formulário permite que os usuários excluam todas as instâncias do subformulário detail, o script para o evento calculate do campo Total (numTotal) precisa verificar se existe pelo menos uma instância do campo numAmount no subformulário detail. Caso contrário, um erro será exibido porque o cálculo não consegue localizar nenhuma ocorrência do campo numAmount. Esse script é adicionado ao evento Calculate do campo numTotal.
// Verify at least one instance of the numAmount field exists.
if (exists(detail[0].numAmount) == 1) then
Sum(detail[*].numAmount)
endif