Instrução
Selecionar Múltiplas Perguntas no Survey123 armazena os nomes das opções selecionadas como uma string CSV, ou seja, Opção1,Opção2,Opção3,Opção4. Embora seja útil armazenar os nomes exclusivos das opções, às vezes queremos acessar facilmente uma lista dos rótulos das opções selecionadas. Por exemplo, os nomes das plantas Acacia, Banksia, Callistemon e Eucalyptus.
Temos mais flexibilidade e liberdade com convenções de nomenclatura ao escolher Rótulos em comparação com Nomes. Para melhorar a legibilidade, a string CSV também deve ser reformatada para incluir espaços entre as opções, o que é demorado quando feito manualmente. É possível criar um novo objeto em um XLSForm para reformatar as opções selecionadas usando o Rótulo em vez do Nome. Podemos fazer isso combinando uma série de fórmulas no campo Cálculo. Os nomes científicos e comuns de algumas plantas Australianas são usados neste exemplo.
Como combinaremos várias funções, é uma boa ideia começar no ponto final e construir para fora. Para começar, usaremos as funções jr:choice-name() e selected-at():
jr:choice-name(selected-at(${PlantSpeciesCSV},0), '${PlantSpeciesCSV}')
Podemos usar a função concat() para unir todos os rótulos de todas as respostas selecionadas em uma string, com a pontuação desejada.
concat(jr:choice-name(selected-at(${PlantSpeciesCSV},0), '${PlantSpeciesCSV}'), ', ', jr:choice-name(selected-at(${PlantSpeciesCSV},1), '${PlantSpeciesCSV}'), ', ', jr:choice-name(selected-at(${PlantSpeciesCSV},2), '${PlantSpeciesCSV}'), ', and ', jr:choice-name(selected-at(${PlantSpeciesCSV},3), '${PlantSpeciesCSV}'))
A partir daqui, precisamos criar uma série de instruções if aninhadas para filtrar nossos rótulos pelo número de respostas escolhidas. Definimos a condição para que cada instrução if retorne true se tivermos um valor ou escolha no número fornecido. A contagem começa do zero, então '3' retornará a quarta escolha selecionada. Por exemplo, se quisermos exibir os rótulos quando selecionamos três opções, definimos a condição como selected-at(${PlantSpeciesCSV},2). Se esta condição retornar TRUE, então nossa string concatenada é gerada, ou seja, Gold Dust Wattle, Silver Banksia e Willow Bottlebrush. Se a condição for falsa, testamos a próxima instrução if. Isso continua até que a condição retorne TRUE. Se nenhuma das condições for atendida, poderemos especificar que uma instrução personalizada, como Nenhuma Planta Observada , seja retornada, indicando que nenhuma opção foi selecionada.
if(selected-at($PlantSpeciesCSV},3),concat(jr:choice-name(selected-at(${PlantSpeciesCSV},0), '${PlantSpeciesCSV}'), ', ',
jr:choice-name(selected-at(${PlantSpeciesCSV},1), '${PlantSpeciesCSV}'), ', ', jr:choice-name(selected-at(${PlantSpeciesCSV},2), '${PlantSpeciesCSV}'), ', and ', jr:choice-name(selected-at(${PlantSpeciesCSV},3),
'${PlantSpeciesCSV}')), if(selected-at($PlantSpeciesCSV},2),concat(jr:choice-name(selected-at(${PlantSpeciesCSV},0), '${PlantSpeciesCSV}'), ', ',
jr:choice-name(selected-at(${PlantSpeciesCSV},1), '${PlantSpeciesCSV}'), 'and ', jr:choice-name(selected-at
(${PlantSpeciesCSV},2), '${PlantSpeciesCSV}')), if(selected-at($PlantSpeciesCSV},1),concat(jr:choice-name(selected-at(${PlantSpeciesCSV},0), '${PlantSpeciesCSV}'), 'and ',
jr:choice-name(selected-at(${PlantSpeciesCSV},1), '${PlantSpeciesCSV}')), if(selected-at($PlantSpeciesCSV},0),jr:choice-name(selected-at(${PlantSpeciesCSV},0), '${PlantSpeciesCSV}'), 'No Plants Observed'))))
Algumas coisas a serem observadas:
ID do Artigo: 000031066
Obtenha ajuda de especialistas do ArcGIS
Baixe o Aplicativo de Suporte da Esri