Repetições

Um XLSForm pode repetir uma coleção de perguntas várias vezes. Os exemplos de como repetições são utilizadas incluem o seguinte:

  • Capturar múltiplas respostas para a mesma pergunta em uma pesquisa.
  • Capturar coleções de registros menores, separadas, como o nome, idade e sexo de cada pessoa em uma casa.
  • Capturar múltiplas perguntas de mapa em uma pesquisa.

Repetir para fornecer várias respostas a uma única pergunta

Quando você publica uma pesquisa que inclui repetições, cada repetição é criada como uma tabela relacionada na camada de feição ou camada relacionada se a repetição tiver uma pergunta de ponto geográfico, traçado geográfico ou formato geográfico.

Utilizar repetições

Para repetir uma coleção de perguntas para capturar múltiplas respostas, complete as seguintes etapas na guia pesquisa da planilha:

  1. Na linha onde você deseja começar a repetição, digite begin repeat na coluna type.
  2. Forneça um nome para a repetição na coluna name.
  3. Nas linhas abaixo desta entrada, insira as perguntas que deseja incluir na repetição.
  4. Imediatamente após as perguntas, digite end repeat na coluna type.

Uma coleção de perguntas é criada na pesquisa que você pode adicionar repetidamente aos resultados da pesquisa. Por padrão, não há restrição quanto ao número de vezes que você pode repetir as perguntas.

As localizações do ponto da primeira pergunta de ponto geográfico em uma repetição podem ser exibidas em qualquer mapa da pesquisa. Para mais informações, consulte Sobreposições do ponto nos mapas.

Aparência

Ao definir a coluna appearance de uma pergunta begin repeat para minimal, uma coleção de perguntas não é visível na inicialização. O usuário deve clicar no botão de adição para visualizar as perguntas na repetição. Isto é útil quando perguntas repetidas não precisam ser completadas em uma pesquisa. Esta aparência é definida na pergunta de begin repeat.

Aparência minimal da repetição no aplicativo de campo

Se a repetição estiver definida para minimal e tiver uma contagem de repetição de zero, os controles de repetição e seu rótulo não estarão invisíveis.

Ao definir a aparência de uma pergunta begin repeat para compact, a repetição aparecerá em um estado recolhido na inicialização, que pode ser expandido pelo usuário. Isto é útil para pesquisas grandes que podem ser difíceis para o usuário ler e navegar. Esta aparência é definida na pergunta de begin repeat.

Diferentemente de outras aparências, as repetições podem utilizar minimal e compact ao mesmo tempo, definindo a aparência para minimal compact. Isto apresenta as perguntas em uma repetição em ambas as maneiras de recolhido (compacto) e oculto (mínimo).

Ao definir a aparência de uma pergunta begin repeat para tabular, as perguntas na repetição são apresentadas como uma tabela. Para mais informações, consulte Repetições tabulares.

Anotação:

No Survey123 Connect, você também pode definir a seguinte aparência para repetições em pesquisas usadas com o aplicativo de campo Survey123 ou aplicativo da web Survey123:

  • Definindo a coluna style na folha settings para pages e a aparência de cada pergunta begin repeat para field-list, cada coleção repetível de perguntas é exibida em uma página separada da pesquisa. Este comportamento é igual ao de um grupo.
  • A definição da coluna estilo na folha configurações para as repetiçõesfixed-grid ou dynamic-grid em sua pesquisa pode ser definida para exibir as perguntas contidas em um layout de grade. Este comportamento é igual ao de um grupo.

Repetições tabulares

Anotação:

Esta seção descreve uma funcionalidade que está disponível apenas no Survey123 Studio e Survey123 Mobile.

No Survey123 Connect, o aplicativo de campo Survey123 e aplicativo web Survey123, a aparência tabular e seus parâmetros XLSForm associados são ignorados.

Ao definir a aparência de uma pergunta begin repeat para tabular, as perguntas na repetição são apresentadas como uma tabela. Na visualização tabular, os registros da repetição são apresentados como linhas, e as perguntas da repetição são apresentadas como colunas. A visualização em tabela permite editar dados diretamente nas células, bem como classificar e navegar pelos registros na repetição.

A visualização tabular é mostrada na imagem a seguir:

Visão tabular de uma repetição

Os textos explicativos na imagem acima são detalhados da seguinte maneira:

  1. Toque no botão de menu de cada linha para acessar as opções Editar na visualização de formulário, Copiar para novo registro e Excluir.
  2. O ícone de somente leitura indica que uma pergunta (coluna) não pode ser editada na visualização tabular.
  3. Toque no cabeçalho de uma coluna para classificar a visualização tabular em ordem crescente e, opcionalmente, faça o seguinte:
    • Toque novamente no cabeçalho da coluna para classificar em ordem decrescente.
    • Toque no cabeçalho da coluna uma terceira vez para desativar a classificação (retorna à ordem original das linhas). Alternativamente, toque no cabeçalho de outra coluna para classificar com base nessa coluna.
  4. Toque em uma célula para editar seu valor. Apenas alguns tipos de pergunta podem ser editados na visualização tabular.
  5. Toque no botão de apagar em uma célula para excluir o seu valor.

Você também pode editar registros individuais na visualização de formulário. A visualização de formulário apresenta registros repetidos individuais em um formulário de pesquisa separado e completo.

A aparência tabular pode ser usada em conjunto com as aparências minimal e compact.

Para começar com repetições tabulares, complete as seguintes etapas no Survey123 Studio:

  1. Defina a aparência como tabular para a pergunta begin repeat.

    A visualização tabular permanece vazia até que você adicione perguntas a ela.

  2. Adicione uma ou mais perguntas à visualização tabular digitando showInTabularView=true na coluna body::esri:style de cada pergunta.
  3. Configure a visualização tabular com parâmetros opcionais.

Adicionar perguntas à visualização tabular

Você pode adicionar perguntas à visualização tabular digitando showInTabularView=true na coluna body::esri:style para as perguntas na repetição. Você pode editar os seguintes tipos de pergunta na visualização tabular:

  • texto
  • inteiro
  • decimal
  • data
  • hora
  • dateTime

Todos os outros tipos de pergunta são exibidos como colunas de somente leitura na visualização tabular.

Aviso:

Considere o seguinte ao adicionar perguntas à visualização tabular:

  • Perguntas na repetição que contenham uma expressão (incluindo yes) na coluna readonly não podem ser editadas na visualização tabular.
  • Perguntas na repetição que possuem uma expressão na coluna body::esri:visible ou que têm a aparência hidden não são exibidas na visualização tabular.
  • Perguntas na repetição que possuem uma expressão na coluna relevant não são exibidas na visualização tabular.
  • As perguntas na repetição que possuem uma expressão (incluindo yes) na coluna required ou uma expressão na coluna constraint são exibidas na visualização tabular. Quando uma ou mais condições, obrigatórias ou de restrição, não são atendidas, um aviso geral é exibido acima da visualização tabular, com um ícone de aviso ao lado de cada registro (linha) que apresenta erros. Você não pode enviar a pesquisa até que esses problemas sejam resolvidos. Você pode editar registros na visualização de formulário para verificar as mensagens de aviso sobre restrições e campos obrigatórios referentes a perguntas individuais. Quando a repetição apresenta erros, a opção Editar na visualização de formulário fica disponível, mesmo quando o parâmetro editInFormView na coluna body::esri:style está definido como false.

Opções da visualização tabulra

Você pode configurar opções relacionadas aos registros (linhas) na visualização tabular especificando parâmetros na coluna body::esri:style para uma pergunta begin repeat. Estes parâmetros opcionais estão descritos na tabela abaixo. Você pode adicionar vários parâmetros separando-os com espaços. Abaixo está um exemplo:

addRecordMode=form copyToNewRecord=false

Ao definir a aparência de uma pergunta begin repeat para tabular e não especificar parâmetros na coluna body::esri:style para essa pergunta, as opções Editar na visualização de formulário, Copiar para novo registro e Excluir ficam disponíveis na visualização tabular por padrão.

ParâmetroDescrição
addRecordMode

Especifique o modo para o botão Adicionar registro e para a opção Copiar para novo registro na visualização tabular. O padrão é row. Quando o valor é row, o novo registro é anexado à visualização tabular. Quando o valor é form, o novo registro é aberto na visualização de formulário.

Valores: row | form

Exemplo:

addRecordMode=form
editInFormView

Mostrar ou ocultar a opção Editar na visualização de formulário na visualização tabular. O padrão é true.

Anotação:

Quando a repetição apresenta erros, a opção Editar na visualização de formulário é habilitada mesmo quando o parâmetro editInFormView está definido como false.

Valores: true | false

Exemplo:

editInFormView=false
copyToNewRecord

Mostrar ou ocultar a opção Copiar para novo registro na visualização tabular. Esta opção permite aos usuários duplicar um registro na repetição. O padrão é true. O parâmetro addRecordMode determina como o registro duplicado é adicionado.

Valores: true | false

Exemplo:

copyToNewRecord=true
editInTabularView

Habilitar ou desabilitar edição na visualização tabular. O padrão é true. Quando o valor é false, todas as células na visualização tabular são de somente leitura.

Valores: true | false

Exemplo:

editInTabularView=false

Limitações ao usar repetições tubulares

As seguintes limitações se aplicam a repetições tabulares:

  • A aparência tabular não é suportada com repetições aninhadas.
  • A opção Copiar para novo registro não copia anexos ou repetições aninhadas para o novo registro. Isso é consistente com o comportamento ao copiar registros da pesquisa para um novo registro a partir da pasta Enviados ou Caixa de entrada.
  • Quando a visualização tabular estiver classificada, é recomendado não editar valores na coluna em que a classificação foi aplicada, pois a classificação é atualizada imediatamente a cada tecla pressionada.
  • Quando uma repetição tabular estiver dentro de um grupo que possui uma expressão relevante, sua visualização tabular ficará vazia quando o grupo se tornar relevante.
  • Em idiomas com direção da direita para a esquerda, a sequência de colunas na visualização tabular não é invertida, e os cabeçalhos das colunas nem sempre estão alinhados à direita.

Especifique o número de registros repetidos

Anotação:

Esta seção descreve a funcionalidade que está disponível apenas no Survey123 Connect e aplicativo de campo Survey123. Esta funcionalidade não está disponível no Survey123 Studio ou Survey123 Mobile.

Para especificar o número de registros repetidos em uma repetição, defina uma contagem de repetições completando as seguintes etapas:

  1. Na linha onde deseja iniciar a repetição, digite begin repeat na coluna type da guia survey.
  2. Forneça um valor numérico para o número de repetições na coluna repeat_count.

    Opcionalmente, forneça um nome de pergunta ou cálculo que retorne um valor numérico.

  3. Forneça um nome para a repetição na coluna name.
  4. Nas linhas abaixo desta entrada, insira as perguntas que deseja incluir na repetição.
  5. Na última linha, digite end repeat na coluna type.

Quando um usuário abre a pesquisa, o número de repetições definido na coluna repeat_count já está criado. Usuários não podem criar ou excluir reptições.

Os usuários devem navegar até todos os registros repetidos definidos pelo valor repeat_count antes de enviar a resposta da pesquisa. Caso contrário, nem todos os registros repetidos serão enviados pois expressões e padrões não podem ser aplicados às repetições até que os usuários naveguem até o registro. Para garantir que todas as repetições sejam enviadas, você pode fazer perguntas obrigatórias nas repetições. Perguntas em repetições com uma declaração relevante ou condicionalmente obrigatória aplicada não são avaliadas no momento do envio.

Anotação:

O comportamento de uma repetição com uma contagem de repetição variável é diferente, dependendo se o usuário está criando uma resposta de pesquisa ou editando uma que foi enviada anteriormente, como segue:

  • Ao criar uma resposta de pesquisa, o aplicativo de campo exibe um botão na parte superior da repetição para excluir todos os registros acima da nova contagem de repetições que contenham dados; registros em branco são excluídos automaticamente. Independentemente deste botão ser pressionado, o envio da resposta da pesquisa envia todos os registros, exceto os registros vazios.
  • Ao editar uma resposta de pesquisa existente, o aplicativo de campo exibe uma mensagem na parte superior da repetição para indicar que o número de registros não corresponde à contagem de repetições. Novos registros repetidos podem ser adicionados somente se allowAdds estiver definido como true na coluna bind::esri:parameters. Registros que excedem a contagem de repetições não podem ser excluídos porque o aplicativo de campo não oferece suporte à exclusão de registros de repetições existentes. As respostas editadas da pesquisa podem ser enviadas mesmo quando o número de registros repetidos não corresponde à contagem de repetições.

Agregar funções

Anotação:

Esta seção descreve a funcionalidade que está disponível apenas no Survey123 Connect e aplicativo de campo Survey123. Esta funcionalidade não está disponível no Survey123 Studio ou Survey123 Mobile.

Você pode usar funções agregadas para retornar valores derivados de respostas em repetições. Para fazer isso, uma pergunta em uma repetição é referenciada por uma pergunta fora da repetição. Por exemplo, a seguinte fórmula conta as respostas para uma única pergunta através de repetições:

count(${repeated_question})

Você pode usar as seguintes funções para agregar respostas:

  • count
  • sum
  • min
  • max
  • join

Estas funções somente se aplicam à resposta da pesquisa atual. Elas não levam em conta outros registros na camada de feição. Você também pode incluir perguntas usando sum e count na repetição. No entanto, enquanto os valores sum e count forem calculados para cada novo registro adicionado à repetição, os cálculos das entradas anteriores na repetição não serão atualizados automaticamente. Você pode atualizar esses cálculos manualmente usando o botão Atualizar ao lado da pergunta. O uso de min e max somente é suportado fora da repetição.

Anotação:

Quando utilizada no aplicativo de campo Survey123, as funções sum, count, e join podem ser colocada dentro ou fora da repetição. Se sum, count, e join forem usados no aplicativo da web Survey123, eles deverão ser colocados fora da repetição. Um valor de sum, count e join de fora da repetição pode ser referenciado em um cálculo dentro da repetição.

Você pode usar a função join para concatenar perguntas que retornam uma string. Você também pode usar a função sum para conectar perguntas de ponto geográfico na repetição como uma pergunta de traçado geográfico ou de forma geográfica fora da repetição.

Para informações sobre como utilizar estas funções, consulte Fórmulas.

Retornar o índice de um registro de repetição

Você pode usar a função position(..) para retornar um inteiro refletindo o índice do registro de repetição em uma repetição. Por exemplo, o primeiro registro em uma repetição retornará 1, o segundo retornará 2 e assim por diante. No seguinte exemplo, a função position(..) é usada em uma pergunta de número inteiro oculto em uma repetição:

Exemplo da função position(..) no XLSForm

Aviso:

A função position(..) sempre retorna 0 no Survey123 Mobile e aplicativo de campo Survey123 ou 1 no aplicativo da web Survey123 quando usada fora de uma repetição ou em um grupo que esteja em uma repetição.

Você também pode usar a função position(..) em uma expressão. No seguinte exemplo, a função selected-at() usa position(..) para retornar a opção que foi selecionada na pergunta de select_multiple na mesma posição do registro de repetição atual e exibir a opção na repetição como uma nota. A função selected-at() começa a contar opções do zero, então um é subtraído de position(..) para garantir a correspondência dos índices, como segue:

selected-at(${issues}, position(..)-1)

Exemplo das funções position(..) e selected-at() em um XLSForm

Você pode usar a função position(..) em combinação com indexed-repeat() para extrair valores de pergunta de registros de repetição específicos.

Usar valores de repetições indexadas

Anotação:

Esta seção descreve a funcionalidade que está disponível apenas no Survey123 Connect e aplicativo de campo Survey123. Esta funcionalidade não está disponível no Survey123 Studio ou Survey123 Mobile.

Você pode usar a função indexed-repeat() para retornar o valor de uma pergunta específica em um registro de repetição. Isso exige o nome da pergunta, o nome da repetição e o número do índice da repetição, nessa ordem. O seguinte exemplo retorna a resposta para a pergunta room_no, para o terceiro registro na repetição floor :

indexed-repeat(${room_no}, ${floor}, 3)

Você pode usar a função indexed-repeat() para repetições dentro de repetições. Quando usado desta forma, ela receberá apenas valores acessíveis da repetição principal atualmente visível.

Aviso:

A função indexed-repeat() não pode ser usada na repetição que faz referência, pois isso causará uma referência circular. Por exemplo, a seguinte expressão não pode ser usada para um cálculo na repetição denominada defects:

indexed-repeat(${defect_type}, ${defects}, 3)

Limitações conhecidas

O seguinte são limitações conhecidas e comportamentos inesperados ao utilizar repetições no Survey123:

  • Se uma pesquisa tiver várias repetições e uma das repetições tiver uma pergunta de ponto geográfico, traçado geográfico ou forma geográfica, a nomenclatura do relacionamento poderá ser publicada fora de ordem.
  • As repetições aninhadas suportam somente relacionamentos de um para muitos, e cada filho pode ter somente um pai.
  • Repetições agrupadas com uma expressão na coluna relevant e uma expressão na coluna repeat_count limparão todos os dados salvos existentes no primeiro registro de repetição. Para evitar isso, incorpore a expressão relevante na expressão repeat_count para que nenhum registro de repetição seja criado quando a repetição não for relevante.
  • A edição de respostas individuais no aplicativo da web Survey123 ou site Survey123 não é suportada para pesquisas que contêm repetições agrupadas.