PROBLEM
In ArcGIS Survey123 Connect werden Formeln verwendet, um Berechnungen mit mehreren Eingaben durchzuführen, um den Gesamtwert zu berechnen. Wenn das Feld für den Gesamtwert als schreibgeschützt festgelegt ist und die Spalte "calculation" für den Gesamtwert angegeben ist, wird der Gesamtwert automatisch berechnet, wenn alle Eingabefelder angegeben werden. Ein Beispiel wäre die Berechnung der Gesamtkosten eines Bauvorhabens (Gesamtwert) auf der Grundlage der Preise für Fliesen, Rohre, Zement und Arbeitskräfte (Eingaben) oder die Bestimmung der geschätzten Population von Wildtieren in einem Schutzgebiet (Gesamtwert) auf der Grundlage der Beobachtung mehrerer Tierarten (Eingaben). Wenn jedoch eines der Eingabefelder leer ist, kann der Gesamtwert nicht berechnet werden.
Die folgende Abbildung zeigt, dass das schreibgeschützte Feld für den Gesamtwert ("Total cost") so konfiguriert ist, dass dort die Summe mehrerer Eingaben ("Admin cost", "Finance cost", "Legal cost" und "Insurance") im ArcGIS Survey123 Connect-XLSForm berechnet wird.
Die folgende Abbildung zeigt das ArcGIS Survey123-Webformular, in dem das Feld für den Gesamtwert ("Total cost") nicht berechnet wird, wenn eines der Eingabefelder ("Insurance") leer ist.
Ein leeres Feld gilt als NULL-Wert. In ArcGIS Survey123 werden NULL-Werte in einer Berechnung nicht erkannt, sodass das Feld für den Gesamtwert nicht berechnet wird, wenn das Eingabefeld leer ist.
Führen Sie die folgenden Schritte aus, um ein schreibgeschütztes Feld zu erstellen, in dem der Gesamtwert automatisch berechnet wird, auch wenn das Eingabefeld leer bleibt bzw. keine Antwort enthält.
Festlegen einer Bedingung, um für das leere Feld Null zugrunde zu legen
Das Feld für den Gesamtwert wird berechnet, indem für die Eingabefelder eine "if"-Bedingung festgelegt wird. Die Bedingung wird angegeben, um festzulegen, dass ein leeres Feld dem Wert Null entspricht.
Hinweis: Fragen vom Typ "hidden" werden von Survey123 standardmäßig als Textfelder betrachtet. Benutzer haben jedoch die Möglichkeit, einen anderen Feldtyp für ausgeblendete Fragen anzugeben.
if(${decimal_fieldname}>0, ${decimal_fieldname}, 0)
Hinweis: Wenn eine Bedingung im Feld des Typs decimal oder integer statt im Feld des Typs hidden festgelegt wird, wird die Fehlermeldung "Fehler beim Konvertieren von XLSForm" zurückgegeben.
round(number(${hidden_fieldname1}) + number(${hidden_fieldname2}) + number(${hidden_fieldname3}) + ..., number of decimal places)
Die folgende Abbildung zeigt das ArcGIS Survey123 Connect-XLSForm mit den konfigurierten Bedingungen und dem berechneten Gesamtwert.
Die folgende Abbildung zeigt das ArcGIS Survey123-Webformular. Obwohl eines der Eingabefelder (Insurance) leer ist, wird der Gesamtwert (Total cost) berechnet.
Festlegen des Standardwertes auf Null
Wenn Sie den Standardwert auf Null festlegen, wird jedes Eingabefeld, das unbeantwortet bleibt, als Null berechnet, anstatt leer zu bleiben und als NULL-Wert gespeichert zu werden.
Hinweis: Die Nachteile dieser Methode sind: • Sofern im Eingabefeld kein Wert angegeben ist, wird stets die Zahl Null auf dem Bildschirm angezeigt. • Die Null im Eingabefeld muss manuell gelöscht werden, bevor ein Wert angegeben werden kann. • Wenn ein Benutzer einen Wert im Eingabefeld angibt und sich später entscheidet, das Feld unbeantwortet zu lassen, muss er nach dem Löschen des angegebenen Eingabewertes manuell die Zahl Null einfügen. Wenn er dies nicht tut, wird das Feld als NULL-Wert berücksichtigt, und das Feld für den Gesamtwert kann nicht berechnet werden.
round(${decimal_fieldname1} + ${decimal_fieldname2} + ${decimal_fieldname3} + ..., number of decimal places)
Die folgende Abbildung zeigt das ArcGIS Survey123 Connect-XLSForm mit dem konfigurierten Standardwert und dem berechneten Gesamtwert.
Die folgende Abbildung zeigt das ArcGIS Survey123-Webformular. Da der Standardwert auf Null festgelegt ist, wird das Feld für den Gesamtwert auch dann berechnet, wenn eines der Eingabefelder unbeantwortet geblieben ist.
Unterstützung durch ArcGIS-Experten anfordern
Esri Support App herunterladen