HOW TO
Bei Fragen vom Typ "Mehrfachauswahl" in Survey123 werden die Namen der ausgewählten Auswahloptionen als CSV-Zeichenfolge, d. h. "Option1,Option2,Option3,Option4", gespeichert. Es ist zwar hilfreich, die eindeutigen Namen von Auswahloptionen zu speichern, aber manchmal soll bequem auf eine Liste der Beschriftungen der ausgewählten Auswahloptionen zugegriffen werden können. Nehmen wir als Beispiel die Pflanzennamen "Acacia", "Banksia", "Callistemon" und "Eucalyptus".
Die Verwendung von Beschriftungen statt Namen bietet mehr Flexibilität und Spielraum bei den Benennungsregeln. Um die Lesbarkeit zu verbessern, muss die CSV-Zeichenfolge neu formatiert werden, um Leerzeichen zwischen den Optionen einzufügen. Dies ist zeitaufwendig, wenn es manuell erfolgt. Es ist möglich, ein neues Objekt in einem XLSForm zu erstellen, um die ausgewählten Auswahloptionen mit der Beschriftung anstelle des Namens neu zu formatieren. Zu diesem Zweck können wir eine Reihe von Formeln im Feld "Berechnung" kombinieren. In diesem Beispiel werden die wissenschaftlichen und Trivialnamen einiger australischer Pflanzen verwendet.
Da wir mehrere Funktionen kombinieren werden, empfiehlt es sich, am Endpunkt zu beginnen und nach außen fortzuschreiten. Zunächst verwenden wir die Funktionen "jr:choice-name()" und "selected-at()":
jr:choice-name(selected-at(${PlantSpeciesCSV},0), '${PlantSpeciesCSV}')
Wir können die Funktion "concat()" verwenden, um alle Beschriftungen aller ausgewählten Antworten in einer Zeichenfolge mit der gewünschten Interpunktion zu verbinden.
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}'))
Dann müssen wir eine Reihe von verschachtelten if-Anweisungen erstellen, um die Beschriftungen nach der Anzahl der ausgewählten Antworten zu filtern. Wir legen die Bedingung für jede if-Anweisung so fest, dass sie "true" zurückgibt, wenn bei der angegebenen Zahl ein Wert oder eine Auswahl vorhanden ist. Die Zählung beginnt bei Null, sodass "3" die vierte ausgewählte Auswahl zurückgibt. Um beispielsweise die Beschriftungen anzuzeigen, wenn drei Auswahloptionen ausgewählt sind, legen wir die Bedingung auf "selected-at(${PlantSpeciesCSV},2)" fest. Wenn diese Bedingung "TRUE" zurückgibt, wird die verkettete Zeichenfolge ausgegeben, d. h. "Gold Dust Wattle", "Silver Banksia" und "Willow Bottlebrush". Wenn die Bedingung nicht erfüllt ist, testen wir die nächste if-Anweisung. Dies wird so lange fortgesetzt, bis die Bedingung "TRUE" zurückgibt. Wenn keine der Bedingungen erfüllt ist, können wir festlegen, dass eine benutzerdefinierte Anweisung wie z. B. No Plants Observed zurückgegeben wird, die angibt, dass keine Auswahloptionen ausgewählt wurden.
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'))))
Folgende Punkte müssen berücksichtigt werden:
Artikel-ID: 000031066
Unterstützung durch ArcGIS-Experten anfordern
Esri Support App herunterladen