Como ocultar e mostrar objetos

Este exemplo demonstra como ocultar os botões ao imprimir um formulário, e também como ocultar e mostrar os objetos alterando os valores de presença em tempo de execução.

Nota: Você também pode usar a caixa de diálogo Criador de ações no menu Ferramentas para mostrar e ocultar objetos dos formulários com layout flutuante, sem gravar scripts. Para obter informações, consulte Como criar ações nos formulários

Neste exemplo, todos os objetos de formulário estão sendo exibidos no formulário.

O usuário pode usar as listas suspensas na área Valores de presença para mostrar ou ocultar os objetos. No diagrama a seguir, o campo Endereço está oculto e o layout do formulário foi ajustado adequadamente. O botão Imprimir Formulário também não está visível.

Nota: Para ocultar e mostrar objetos em tempo de execução, salve seu formulário como um arquivo de formulário em PDF dinâmico do Acrobat.

Para ver este e outros exemplos de script, visite o LiveCycle Developer Center.

Script dos valores de presença para subformulários

O script para os valores de presença para subformulários usa uma declaração de alternância para manipular as três opções de presença que um usuário pode aplicar ao objeto do subformulário:

switch(xfa.event.newText) { 
    case 'Invisible': 
        Subform1.presence = "invisible"; 
        break; 
    case 'Hidden (Exclude from Layout)': 
        Subform1.presence = "hidden"; 
        break; 
    default: 
        Subform1.presence = "visible"; 
        break; 
}

Script dos valores de presença para campos de texto

Script dos valores de presença para campos de texto A primeira variável armazena o número de objetos contidos no Subform1:

    var nSubLength = Subform1.nodes.length;

A segunda armazena o nome do campo de texto que o usuário seleciona na lista suspensa Campos de texto:

    var sSelectField = fieldList.rawValue;

O script a seguir usa o método replace para remover todos os espaços do nome do campo armazenados na variável sSelectField, permitindo que o valor da lista suspensa corresponda ao nome do objeto na paleta Hierarquia:

    sSelectField = sSelectField.replace(' ', '');

Esse script usa um loop For para circular todos os objetos contidos no Subform1:

    for (var nCount = 0; nCount < nSubLength; nCount++) {

Se o objeto atual no Subform1 for do tipo campo e o objeto atual tiver o mesmo nome do objeto selecionado pelo usuário, os seguintes casos de alternância serão executados:

     if ((Subform1.nodes.item(nCount).className == "field") & (Subform1.nodes.item(nCount).name == sSelectField)) {

O script a seguir usa uma declaração de alternância para manipular os três valores de presença que um usuário pode aplicar aos objetos do campo de texto:

        switch(xfa.event.newText) { 
            case 'Invisible': 
                Subform1.nodes.item(nCount).presence = "invisible"; 
                break; 
            case 'Hidden (Exclude from Layout)': 
                Subform1.nodes.item(nCount).presence = "hidden"; 
                break; 
            default: 
                Subform1.nodes.item(nCount).presence = "visible"; 
                break; 
        } 
    } 
}

Script dos valores de presença para botões

O script dos valores de presença para botões requerem duas variáveis. Essa variável armazena o número de objetos contidos no Subform1:

    var nSubLength = Subform1.nodes.length;

Essa variável armazena o nome do botão que o usuário seleciona na lista suspensa Botões:

var sSelectButton = buttonList.rawValue;

O script a seguir usa o método replace para remover todos os espaços do nome do botão armazenados na variável sSelectField, permitindo que o valor da lista suspensa corresponda ao nome do objeto na paleta Hierarquia:

     sSelectButton = sSelecButton.replace(/\s/g, '');

Esse script usa um loop For para circular todos os objetos contidos no Subform1:

for (var nCount = 0; nCount < nSubLength; nCount++) {

Se o objeto atual no Subform1 for do tipo campo e o objeto atual tiver o mesmo nome do objeto selecionado pelo usuário, execute os seguintes casos de alternância:

    if ((Subform1.nodes.item(nCount).className == "field") & 
    Subform1.nodes.item(nCount).name == sSelectButton)) {

Esse script usa uma declaração de alternância para manipular os cinco valores de presença que um usuário pode aplicar aos objetos do botão.

Nota: A propriedade relevant indica se um objeto deve aparecer quando o formulário for impresso.
        switch(xfa.event.newText) { 
            case 'Invisible': 
                Subform1.nodes.item(nCount).presence = "invisible"; 
                break; 
            case 'Hidden (Exclude from Layout)': 
                Subform1.nodes.item(nCount).presence = "hidden"; 
                break; 
            case 'Visible (but Don\'t Print)': 
                Subform1.nodes.item(nCount).presence = "visible"; 
                Subform1.nodes.item(nCount).relevant = "-print"; 
                break; 
            case 'Invisible (but Print Anyway)': 
                Subform1.nodes.item(nCount).presence = "invisible"; 
                Subform1.nodes.item(nCount).relevant = "+print"; 
                break; 
            default: 
                Subform1.nodes.item(nCount).presence = "visible"; 
                break; 
        }     
    } 
}

Script para redefinir listas suspensas

Use o método resetData para redefinir todas as listas suspensas para seus valores padrão:

    xfa.host.resetData();

Use o método remerge para unir o design de formulário e os dados. Nesse caso, o método retorna efetivamente os objetos na área Objetos de formulário para seus estados originais:

    xfa.form.remerge();