Wiederholungen

In XLSForms kann eine Gruppe von Fragen mehrmals wiederholt werden. Nachfolgend sind Beispiele für die Verwendung von Wiederholungen aufgeführt:

  • Erfassen mehrerer Antworten auf die gleiche Frage in einem Survey
  • Erfassen separater, kleinerer Sammlungen von Datensätzen, z. B. Name, Alter und Geschlecht jeder Person in einem Haushalt
  • Erfassen mehrerer Kartenfragen in einem Survey
Wiederholen zum Bereitstellen mehrerer Antworten auf die gleiche Frage

Wenn Sie einen Survey mit Wiederholungen veröffentlichen, wird jede Wiederholung als zugehörige Tabelle im Feature-Layer erstellt oder als zugehöriger Layer, wenn die Wiederholung eine Geopunkt-, Geotrace- oder Geoshape-Frage enthält.

Verwenden von Wiederholungen

Um eine Gruppe von Fragen in Survey123 zu wiederholen und so mehrere Antworten zu erfassen, führen Sie auf der Registerkarte survey Ihres Arbeitsblattes die folgenden Schritte aus:

  1. Geben Sie in der Zeile, in der die Wiederholung beginnen soll, begin repeat in die Spalte type ein.
  2. Geben Sie in der Spalte name einen Namen für die Wiederholung an.
  3. Geben Sie in die Zeilen unterhalb dieses Eintrags die Fragen ein, die in die Wiederholung eingeschlossen werden sollen.
  4. Geben Sie unmittelbar nach den Fragen end repeat in die Spalte type ein.

Im Survey wird eine Gruppe von Fragen erstellt, die Sie den Survey-Ergebnissen wiederholt hinzufügen können. Standardmäßig können Sie die Fragen beliebig oft wiederholen. Es gibt keine Einschränkung für die Häufigkeit.

Punktpositionen aus der ersten Geopunkt-Frage in einer Wiederholung können auf jeder beliebigen Karte im Survey angezeigt werden. Weitere Informationen finden Sie unter Punkt-Überlagerungen auf Karten.

Angeben der Anzahl von Wiederholungsdatensätzen

Um die Anzahl der Wiederholungsdatensätze in einer Wiederholung zu definieren, legen Sie eine Wiederholungsanzahl fest, indem Sie die folgenden Schritte ausführen:

  1. Geben Sie in der Zeile, in der die Wiederholung beginnen soll, begin repeat in die Spalte type der Registerkarte survey ein.
  2. Geben Sie in der Spalte repeat_count einen numerischen Wert für die Anzahl der Wiederholungen an. Sie können auch einen Fragennamen oder eine Berechnung angeben, die einen numerischen Wert zurückgibt.
  3. Geben Sie in der Spalte name einen Namen für die Wiederholung an.
  4. Geben Sie in die Zeilen unterhalb dieses Eintrags die Fragen ein, die in die Wiederholung eingeschlossen werden sollen.
  5. Geben Sie in der letzten Zeile end repeat in die Spalte type ein.

Wenn ein Benutzer den Survey öffnet, wurde die in der Spalte repeat_count festgelegte Anzahl der Wiederholungen bereits erstellt. Benutzer können weder Wiederholungen erstellen noch Wiederholungen löschen.

Benutzer müssen vor dem Übermitteln der Survey-Antwort zu allen Wiederholungsdatensätzen navigieren, die durch den Wert repeat_count definiert sind. Andernfalls werden nicht alle Wiederholungsdatensätze übermittelt, da Ausdrücke und Standardeinstellungen erst dann auf Wiederholungen angewendet werden, wenn Benutzer zu dem Datensatz navigieren. Um sicherzustellen, dass alle Wiederholungen gesendet werden, können Sie Fragen in den Wiederholungen als erforderlich definieren. Beachten Sie jedoch, dass Fragen in Wiederholungen, auf die eine Anweisung des Typs "relevant" oder "bedingt erforderlich" angewendet wird, beim Senden nicht ausgewertet werden.

Hinweis:

Das Verhalten einer Wiederholung mit einer sich ändernden Wiederholungsanzahl hängt davon ab, ob der Benutzer eine Survey-Antwort erstellt oder eine bereits gesendete Antwort bearbeitet.

  • Wenn eine Survey-Antwort erstellt wird, wird in der mobilen App eine Schaltfläche oberhalb der Wiederholung angezeigt, um alle Datensätze, die Daten enthalten und die neue Wiederholungszahl übersteigen, zu löschen; leere Datensätze werden automatisch gelöscht. Unabhängig davon, ob auf diese Schaltfläche gedrückt wird, bewirkt das Senden der Survey-Antwort das Senden aller Datensätze mit Ausnahme leerer Datensätze.
  • Wird eine vorhandene Survey-Antwort bearbeitet, wird in der mobilen App oberhalb der Wiederholung die Meldung angezeigt, dass die Anzahl der Datensätze nicht mit der Anzahl der Wiederholungen übereinstimmt. Neue Wiederholungsdatensätze können nur hinzugefügt werden, wenn allowAdds in der Spalte bind::esri:parameters auf true festgelegt wurde. Datensätze, die die Anzahl der Wiederholungen überschreiten, können nicht gelöscht werden, da die mobile App das Löschen vorhandener Wiederholungsdatensätze nicht unterstützt. Bearbeitete Survey-Antworten können auch dann übermittelt werden, wenn die Anzahl der Wiederholungsdatensätze nicht mit der Anzahl der Wiederholungen übereinstimmt.

Aggregatfunktionen

Sie können Aggregationsfunktionen verwenden, um aus Antworten von Wiederholungen abgeleitete Werte zurückzugeben. Hierzu wird eine Frage innerhalb einer Wiederholung durch eine Frage außerhalb der Wiederholung referenziert. Die folgende Formel zählt beispielsweise die Antworten auf eine einzelne Frage in Wiederholungen:

count(${repeated_question})

Zum Aggregieren von Antworten können Sie die folgenden Funktionen verwenden:

  • count
  • sum
  • min
  • max
  • join

Diese Funktionen beziehen sich nur auf die aktuelle Survey-Antwort. Andere Datensätze im Feature-Layer werden nicht berücksichtigt. Sie können auch Fragen mit sum und count in der Wiederholung einschließen. Die Werte sum und count werden für jeden neuen Datensatz berechnet, der der Wiederholung hinzugefügt wird. Die Berechnungen für vorherige Einträge in der Wiederholung werden jedoch nicht automatisch aktualisiert. Diese Berechnungen können Sie mit der Schaltfläche Aktualisieren neben der Frage manuell aktualisieren. Die Verwendung von min und max wird nur außerhalb der Wiederholung unterstützt.

Hinweis:

Bei Verwendung in der mobilen Survey123-App können die Funktionen sum, count und join innerhalb oder außerhalb der Wiederholung platziert werden. Wenn sum, count und join in der Survey123-Web-App verwendet werden sollen, müssen sie außerhalb der Wiederholung platziert werden. Ein außerhalb der Wiederholung platzierter sum-, count- oder join-Wert kann in einer Berechnung innerhalb der Wiederholung referenziert werden.

Mithilfe der Funktion join können Sie Fragen verketten, die eine Zeichenfolge zurückgeben. Sie können auch die Funktion sum verwenden, um Geopunkt-Fragen in der Wiederholung als Geotrace- oder Geoshape-Frage außerhalb der Wiederholung zu verbinden.

Weitere Informationen zur Verwendung dieser Funktionen finden Sie unter Formeln.

Zurückgeben des Index eines Wiederholungsdatensatzes

Mit der Funktion position(..) können eine ganze Zahl zurückgeben lassen, die den Index des Wiederholungsdatensatzes in einer Wiederholung angibt. Der erste Datensatz in einer Wiederholung gibt 1 zurück, der zweite 2 usw. Im folgenden Beispiel wird die Funktion position(..) in einer ausgeblendeten Integer-Frage verwendet:

Beispiel der position(..)-Funktion in XLSForm
Vorsicht:

Die Funktion position(..) gibt immer 0 in der mobilen Survey123-App oder 1 in der Survey123-Web-App zurück, wenn sie außerhalb einer Wiederholung oder in einer Gruppe, die sich innerhalb einer Wiederholung befindet, verwendet wird.

Sie können die Funktion position(..) auch in einem Ausdruck verwenden. Im folgenden Beispiel verwendet die Funktion selected-at() position(..), um die Auswahlmöglichkeit, die in der Frage vom Typ "select_multiple" ausgewählt wurde, an der gleichen Position wie den aktuellen Wiederholungsdatensatz zurückzugeben und die Auswahlmöglichkeit in der Wiederholung als Hinweis anzuzeigen. Die Funktion selected-at() beginnt mit dem Zählen von Auswahlmöglichkeiten bei Null, sodass eins von position(..) abgezogen wird, um sicherzustellen, dass die Indizes übereinstimmen.

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

Beispiel der Funktionen "position(..)" und "selected-at()" in einem XLSForm

Sie können die Funktion position(..) in Kombination mit indexed-repeat() verwenden, um Fragenwerte aus bestimmten Wiederholungsdatensätzen zu extrahieren.

Verwenden von Werten aus indizierten Wiederholungen

Sie können die Funktion indexed-repeat() verwenden, um den Wert aus einer bestimmten Frage in einem Wiederholungsdatensatz zurückzugeben. Hierzu sind der Name der Frage, der Name der Wiederholung und die Indexnummer der Wiederholung in dieser Reihenfolge erforderlich. Das folgende Beispiel gibt die Antwort auf die Frage room_no für den dritten Datensatz in der Wiederholung floor zurück:

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

Sie können die Funktion indexed-repeat() für Wiederholungen innerhalb von Wiederholungen verwenden. Wird sie auf diese Art und Weise eingesetzt, empfängt sie nur Werte, die über die aktuell sichtbare übergeordnete Wiederholung zugänglich sind.

Vorsicht:

Die Funktion indexed-repeat() kann nicht in der Wiederholung verwendet werden, die sie referenziert, da es sonst zu einem Zirkelbezug kommt. Zum Beispiel kann der folgende Ausdruck nicht für eine Berechnung in der Wiederholung defects verwendet werden:

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

Bekannte Einschränkungen

In Bezug auf die Verwendung von Wiederholungen in Survey123 bestehen die folgenden bekannten Einschränkungen und unerwarteten Verhaltensweisen:

  • Wenn ein Survey eine leere Wiederholung enthält und sich zwischen begin repeat und end repeat keine Fragen befinden, kann keine der Survey-Antworten übermittelt werden.
  • Wenn ein Survey mehrere Wiederholungen enthält und eine davon eine Geopunkt-, Geotrace- oder Geoshape-Frage aufweist, wird die Benennung der Beziehung möglicherweise falsch veröffentlicht.
  • Geschachtelte Wiederholungen unterstützen nur Eins-zu-Viele-Beziehungen. Zudem darf es zu jedem Child-Element nur ein Parent-Element geben.
  • Durch geschachtelte Wiederholungen mit einem Ausdruck in der Spalte relevant und einem Ausdruck in der Spalte repeat_count werden alle vorhandenen gespeicherten Daten im ersten Wiederholungsdatensatz gelöscht. Dies können Sie verhindern, indem Sie den relevanten Ausdruck in den Ausdruck repeat_count einbinden, sodass keine Wiederholungsdatensätze erstellt werden, wenn die Wiederholung nicht relevant ist.
  • Das Bearbeiten einzelner Antworten in der Survey123-Web-App oder -Website wird für Surveys mit geschachtelten Wiederholungen nicht unterstützt.