Expressões de formulário

Você pode usar expressões em uma pesquisa para controlar o comportamento padrão das perguntas. Uma pergunta, ou um conjunto de perguntas, pode ser ocultada e revelada com base em respostas anteriores utilizando expressões na coluna relevante . Quando uma pergunta é ocultada por meio de uma expressão na coluna relevante, nenhum dado é enviado para a pergunta.

Anotação:

No aplicativo de campo ArcGIS Survey123, se uma resposta for inserida para uma pergunta que foi ocultada posteriormente devido a uma expressão relevante, a resposta será apagada. Se a pergunta se tornar relevante novamente, uma nova resposta deve ser inserida. No aplicativo da web, a resposta não é apagada, portanto, se a pergunta se tornar relevante novamente, a resposta inserida anteriormente será usada.

Você também pode aplicar expressões à coluna de somente leitura, o que pode desativar a entrada para uma pergunta ou grupo com base no resultado da expressão. A coluna exigida também suporta expressões, permitindo que a pesquisa exija que o usuário responda a uma pergunta apenas sob condições específicas.

Anotação:

As expressões de somente leitura s não são suportadas no aplicativo da web.

As perguntas anteriores devem sempre ser referidas nas expressões com o formato ${field_name}.

Visibilidade da pergunta

Você pode ocultar uma pergunta da visualização com uma expressão usando a coluna body::esri:visible. Esta coluna oculta a pergunta se a expressão que ela contém não for avaliada como verdadeira, enquanto mantém o conteúdo da pergunta. Por exemplo, a expressão ${edit_location}='yes' faz com que a pergunta seja exibida apenas se a pergunta edit_location estiver definida para yes.

Esse comportamento é semelhante ao da coluna relevante, com ambas as colunas ocultando uma pergunta até que a expressão na coluna seja avaliada como verdadeira. A principal diferença é que body::esri:visible não apaga o valor de uma pergunta que não seja visível pela expressão e envia valores existentes para a camada de feição. Use a coluna relevante em vez de body::esri:visible quando deseja garantir que a pergunta não tenha valores calculados ou armazenados quando não for relevante.

Ao usar as colunas body::esri:visible ou relevante para controlar a visibilidade da pergunta, obrigatórios, padrões, restrições e máscaras de entrada são aplicados apenas quando a pergunta está visível.

Você também pode controlar a visibilidade das perguntas usando o tipo de pergunta oculta e a aparência oculta, mas elas não podem ser controladas com uma expressão.

Anotação:

As perguntas de imagem, áudio e arquivo não suportam ser ocultadas pela coluna body::esri:visible.

Expressões simples

A melhor maneira de utilizar uma destas expressões é alterar o comportamento ou visibilidade de uma pergunta, a menos que uma resposta em particular tenha sido fornecida anteriormente. Por exemplo, a seguinte expressão verifica se a resposta da pergunta anterior é verdadeira:

${previous_question} = 'true'

O exemplo a seguir verifica se a resposta da pergunta anterior foi maior ou igual a 100:

${previous_question} < 100

O tipo de pergunta select_multiple contém valores de forma diferente de outros tipos de pergunta, com cada resposta marcada inserida na ordem em que foi selecionada, separada por vírgulas. Por exemplo, a seleção de respostas A e B nesta ordem apresentará a resposta como A, B. Para usar uma pergunta select_multiple como parte de uma expressão, você deve usar a função selected. O exemplo a seguir verifica se o usuário respondeu a pergunta anterior com A e funciona independentemente das outras respostas escolhidas:

selected(${previous_question}, 'A')

A função count-selected conta o número de opções que foram selecionadas em uma pergunta select_multiple e fornece um número para usar como operador. O exemplo a seguir verifica se a pergunta anterior tinha mais de duas opções selecionadas:

count-selected(${previous_question}) > 2

Você pode usar a função count-selected como uma restrição em perguntas de imagem ou arquivo com a aparência multiline, para controlar o número de arquivos enviados.

Expressões matemáticas

O exemplo a seguir combina vários operadores e perguntas:

${previous_question} + ${other_previous_question} <= 100

Ao usar operadores matemáticos, pode ser necessário converter valores em números. No exemplo anterior, assume-se que previous_question e other_previous_question são inteiros ou decimais, mas se os tipos de pergunta forem strings, converta-os da seguinte maneira:

int(${previous_question}) + int(${other_previous_question}) <= 100

Você também pode executar expressões matemáticas nas perguntas date, que são salvos como Epoch time, a quantidade de milissegundos validada desde 1 de Janeiro de 1970. A expressão a seguir revela uma pergunta apenas se a resposta à pergunta anterior for mais de duas semanas antes de hoje:

if( ${previous_question}='',false,today() - ${previous_question} > 1000*60*60*24*15)

Expressões regulares

Uma expressão regular é uma sequência de caracteres usada para corresponder a padrões em strings. No Survey123, se o padrão corresponder, a expressão retornará verdadeiro, caso contrário, se o padrão não corresponder, a expressão retornará falso.

Você pode usar expressões regulares em qualquer coluna que aceite expressões para alterar o comportamento de uma pergunta, a menos que a string fornecida por outra pergunta esteja em um determinado formato. O exemplo a seguir, quando colocado na coluna relevante, exibe apenas uma pergunta se outra pergunta tiver sido respondida apenas com letras:

regex(${question},'[A-Za-z]')

O exemplo a seguir, quando colocado na coluna choice_filter de uma pergunta select_one para nomes de ruas, mostrará apenas as opções de ruas contidas na lista citystreets que correspondem ao nome da cidade selecionada em uma pergunta anterior denominadacity:

regex(citystreets,${city})

Para mais informações sobre expressões regulares, consulte Fórmulas.