Ir para conteúdo principal

Condições em questionários

Condições em formulários Web

Nota: algumas capturas de ecrã ainda mostram a interface em inglês; as designações traduzidas aparecem no texto.

As condições permitem mostrar ou ocultar secções de um formulário com base nas respostas do utilizador.

São úteis quando pretende que o formulário siga um percurso diferente consoante a resposta do utilizador. Por exemplo, pode mostrar uma secção adicional apenas se o utilizador responder "Sim" [Yes] a uma pergunta, selecionar uma opção específica de escolha múltipla ou assinalar uma determinada caixa de seleção.

As condições podem basear-se nos seguintes componentes:

  • "Sim/Não" [Yes/No]

  • "Escolha múltipla" [Multiple choice]

  • "Caixa de seleção" [Checkbox]

O conteúdo que aparece ou desaparece pode ser colocado num componente "Secção" [Section].

Siga as etapas abaixo para configurar uma condição e consulte o formulário de exemplo como referência.

Etapa 1

Aceda ao "Construtor de formulários" [Form Builder], localize a pergunta que irá controlar a condição e atribua-lhe um "nome de variável" [variable name].

O nome da variável deve ser curto e fácil de reconhecer. Não pode conter espaços.

Exemplos:

Pergunta de sim/não

Formulários MyDocSafe - exemplo de um nome de variável

  • Se a pergunta de sim/não for "É residente no Reino Unido?", pode atribuir ao componente o nome "UK_resident".

Pergunta de escolha múltipla

  • Numa pergunta de escolha múltipla, "De que país é?", as respostas podem ser "Reino Unido" [UK], "Polónia" [Poland], "Alemanha" [Germany], "Outro" [Other]. O nome da variável pode ser "Country".

Pergunta com caixas de seleção

  • Numa pergunta com caixas de seleção, "Em que produtos tem interesse?", as respostas podem ser "Relatório anual" [Annual report], "IVA" [VAT], "Escrituração contabilística" [Bookkeeping]. O nome da variável pode ser "Product".

Etapa 2

Adicione secções se pretender agrupar perguntas de seguimento que devem ser mostradas ou ocultadas com base na mesma condição. Para uma pergunta simples de sim/não, pode adicionar perguntas que devem aparecer quando a resposta é "Sim" e outras quando a resposta é "Não" [No].

Etapa 3

Associe as secções às respostas adequadas. Aceda à secção "Condição" [Condition] para introduzir a fórmula (detalhes abaixo). Utilize "Avançado" [Advanced] se a condição de que necessita for complexa.

A forma de escrever a condição depende do tipo de componente de onde provém a resposta:

  • Para componentes de sim/não, a condição deve ser: variable_name==true ou variable_name==false; por exemplo, UK_resident==true. Tenha em atenção que o sinal de igual duplo indica igualdade.

  • Para componentes de escolha múltipla, a variável é um objeto com as propriedades "text" e "index".
    Por exemplo: Country.text == "UK" ou Country.index == 0
    ​

    • No exemplo 2 acima, se a condição for "O país escolhido é a Polónia", a condição será Country.text=="Poland". Se a condição for "Foi escolhida a terceira opção", a condição será Country.index == 2 (sim, está correto: o índice do primeiro item é 0, o do segundo é 1, etc.).

  • Para caixas de seleção, é necessário indicar as opções que lhe interessam; tendo como referência o exemplo 3 acima:

    • Se o nome da variável for Product, a primeira opção será Product[0], a segunda será Product[1] e assim sucessivamente.

    • Se a condição for "Foi escolhida a opção IVA", a condição a escrever será Product[1]==true.

    • Se a condição for "Foi escolhida a opção Relatório anual OU IVA", a condição será "Qualquer uma" [Any] para duas expressões: Product[0]==true e Product[1]==true.

    • Se a condição for "Foram escolhidas as opções Relatório anual E IVA", a condição será "Todas" [All] para duas expressões: Product[0]==true e Product[1]==true.

  • Para o componente "País" [Country], é necessário fazer referência a uma seleção específica. Existem várias formas de o fazer. Apresentamo-las abaixo por ordem de preferência:

    • Se a variável for Country e a condição for "Se forem escolhidos os Estados Unidos", utilize uma destas opções:

      • Country.name == "United States of America"

      • Country.alpha3code == "USA"

      • Country.alpha2code == "US"

    • Preferimos a primeira opção porque, embora exija mais escrita, o valor pode ser facilmente obtido na lista de países apresentada pelo componente.

Formulário de exemplo:

Tenha em atenção que as condições podem funcionar com estruturas mais complexas. Por exemplo:

  • As condições podem fazer referência a variáveis inseridas em secções. Neste caso, certifique-se de que atribui um nome de variável a cada secção que contém a variável de origem e de que faz referência ao "caminho" completo da variável na condição (por exemplo, SectionName.VariableName).

  • As condições podem fazer referência a variáveis inseridas noutros formulários. Neste caso, aplica-se uma regra semelhante à anterior: é necessário atribuir uma variável ao próprio formulário, que deve estar no "espaço" correto. Também terá de ajustar a fórmula

    • para caixas de seleção: em vez de FormName.SectionName.QuestionName[1]==true, deve escrever FormName.SectionName.QuestionName.values[1]==true

    • para escolha múltipla: em vez de FormName.Section.Name.QuestionName.index==2 , deve escrever FormName.Section.Name.QuestionName.index=="o texto da opção fica aqui"

Combinar condições

Pode combinar facilmente condições em expressões complexas com o assistente.

Por exemplo, se pretender combinar duas condições que tenham de ser verdadeiras ao mesmo tempo, escolha a opção "Todas":

Este exemplo significa "mostrar o componente atual quando a pessoa é residente no Reino Unido e é proprietária de uma habitação"

Se, em alternativa, pretender que qualquer uma das condições seja verdadeira, escolha a opção "Qualquer uma":

Este exemplo significa "mostrar o componente atual quando a pessoa é residente no Reino Unido ou nos Estados Unidos"

Também pode criar estruturas mais complexas, aninhadas ou agrupadas:

O exemplo acima significa "mostrar o componente atual quando a pessoa é proprietária de uma habitação ou tem um património líquido elevado e é residente no Reino Unido ou nos Estados Unidos".

Isto respondeu à sua pergunta?