O tipo de pergunta select_multiple exibe uma lista onde o respondente pode selecionar uma ou mais opções. Por predefinição as escolhas são renderizadas como caixas de verificação. O valor armazenado é uma lista separada por espaços de todos os valores de escolha selecionados.

Especificação XLSForm Básica

folha de trabalho survey:

typenamelabel
select_multiple cropscrops_grownQue culturas o agregado familiar cultiva?

folha de trabalho choices:

list_namenamelabel
cropsmaizeMilho
cropsbeansFeijão
cropsriceArroz
cropsvegetablesLegumes
cropsotherOutro

Para mais detalhes consulte a especificação XLSForm.

Formato de dados armazenados

A coluna exportada contém uma lista separada por espaços de valores selecionados:

  maize beans vegetables
  

Use a função selected() — não = — ao testar valores de select_multiple em expressões (veja abaixo).

Utilizações

As perguntas select_multiple são usadas para:

  1. Recolher múltiplas respostas aplicáveis (por ex., fontes de rendimento, culturas cultivadas, sintomas)
  2. Itens de concordância em estilo de caixa de verificação (por ex., “Selecione todos que se aplicam”)
  3. Inventários de idiomas ou competências
  4. Qualquer pergunta onde múltiplas respostas são simultaneamente válidas

Opções de aparência

AparênciaDescrição
(nenhuma)Caixas de verificação predefinidas, uma por linha
minimalWidget de seleção múltipla em menu suspenso
compactGrelha compacta, colunas ajustam-se à largura do ecrã
compact-NGrelha compacta forçada para N colunas
horizontalEscolhas dispostas horizontalmente numa linha (web)
horizontal-compactHorizontal, espaçamento compacto (web)
labelMostra apenas etiquetas, sem caixas de verificação (use com list-nolabel)
list-nolabelMostra apenas caixas de verificação, sem etiquetas (use com label)
columns(N)Exibir em N colunas (extensão rtSurvey)

Exemplo: Layout compacto de 3 colunas

typenamelabelappearance
select_multiple symptomssymptomsSelecione todos os sintomas observadoscompact-3

Usar selected() em expressões

Como o valor armazenado é uma cadeia separada por espaços, deve usar selected() para testar se uma escolha específica foi selecionada. Usar = não funcionará corretamente.

Em relevant

Mostrar uma pergunta de seguimento apenas se “outro” foi selecionado:

typenamelabelrelevant
select_multiple cropscrops_grownQue culturas são cultivadas?
textcrops_otherPor favor especifique outras culturasselected(${crops_grown}, 'other')

Em constraint

Exigir pelo menos 2 escolhas:

typenameconstraintconstraint_message
select_multiple issuesissuescount-selected(.) >= 2Selecione pelo menos 2 problemas

Limitar a um máximo de 3:

typenameconstraintconstraint_message
select_multiple prioritiesprioritiescount-selected(.) <= 3Selecione no máximo 3 prioridades

Opção “Nenhum dos anteriores” / opção exclusiva

Um padrão comum é tornar uma opção mutuamente exclusiva com todas as outras. Use um constraint para impô-lo:

typenamelabelconstraintconstraint_message
select_multiple issuesissuesSelecione todos os problemas presentesnot(selected(., 'none') and count-selected(.) > 1)“Nenhum” não pode ser selecionado com outras opções

Contar e resumir seleções

FunçãoExemploResultado
count-selected(field)count-selected(${crops_grown})Número de escolhas selecionadas
selected(field, value)selected(${crops_grown}, 'maize')verdadeiro/falso
selected-at(field, index)selected-at(${crops_grown}, 0)Primeiro valor selecionado
choice-label(field, value)choice-label(${crops_grown}, 'maize')Etiqueta para um valor

Melhores Práticas

  1. Use sempre selected() em relevant, constraint e calculate — nunca = ou !=.
  2. Adicione uma restrição para limitar o número máximo de seleções se o design da pergunta o exigir.
  3. Inclua uma opção “Nenhum” ou “Não aplicável” quando zero seleções é uma resposta válida.
  4. Para listas longas (15+ escolhas), use minimal (menu suspenso de seleção múltipla) para evitar rolagem excessiva.
  5. Exporte dados e use divisão de cadeia de caracteres na sua ferramenta de análise — o formato separado por espaços requer divisão antes de pivotar.

Limitações

  • Os valores de select_multiple não podem ser comparados diretamente com =. Use sempre selected().
  • A aparência compacta pode não renderizar bem para etiquetas de escolha muito longas.
  • Ao filtrar escolhas com choice_filter, a filtragem aplica-se a todas as escolhas exibidas, tal como em select_one.
Esta página foi útil?