Répétitions

Un fichier XLSForm peut répéter un ensemble de questions plusieurs fois. Voici quelques exemples d’utilisation des répétitions :

  • Capturer plusieurs réponses à la même question dans une même enquête
  • Capturer de plus petits ensembles distincts d’enregistrements, par exemple, le nom, l’âge et le sexe des personnes composant un foyer
  • Capturer plusieurs questions Carte dans une seule enquête

Répéter pour fournir plusieurs réponses à une seule question

Lorsque vous publiez une enquête contenant des répétitions, chaque répétition est créée en tant que table associée à la couche d’entités ou en tant que couche associée si la répétition contient une question de type géopoint, géotrace ou géoforme.

Utiliser des répétitions

Pour répéter un ensemble de questions afin de capturer plusieurs réponses, procédez de la manière suivante dans l’onglet survey (enquête) de la feuille de calcul :

  1. Sur la ligne où vous souhaitez commencer la répétition, saisissez begin repeat (commencer la répétition) dans la colonne type.
  2. Tapez un nom pour la répétition dans la colonne name.
  3. Dans les lignes situées sous cette entrée, saisissez les questions que vous souhaitez inclure dans la répétition.
  4. Immédiatement après les questions, tapez end repeat dans la colonne type.

Un ensemble de questions est créé dans l’enquête ; vous pouvez l’ajouter plusieurs fois aux résultats de l’enquête. Par défaut, le nombre de fois que vous pouvez répéter les questions n’est pas limité.

Les localisations des points provenant de la première question de type géopoint d’une répétition peuvent être affichés sur n’importe quelle carte dans l’enquête. Pour plus d’informations, reportez-vous à la rubrique Superpositions de points sur les cartes.

Apparence

Lorsque la colonne appearance (apparence) d’une question de type début de répétition est définie sur minimal, l’ensemble de questions n’est pas visible au démarrage. L’utilisateur doit cliquer sur le bouton du signe plus pour voir les questions répétées. Cette option est utile si les questions répétées n’appellent pas une réponse dans l’enquête. Cette apparence est définie dans l’option de début de question répétée.

Apparence minimale pour une répétition dans l’application de terrain

Si une répétition, dont le nombre de répétitions est égal à zéro, est définie sur minimal, les contrôles de la répétition et leurs étiquettes ne sont pas visibles.

Lorsque l’apparence d’une question de type début de répétition est définie sur compact, la répétition apparaît dans un état réduit au démarrage et peut être développée par l’utilisateur. Cela peut s’avérer utile pour les enquêtes longues que l’utilisateur peut trouver difficiles à lire et à parcourir. Cette apparence est définie dans l’option de début de question répétée.

Contrairement à d’autres apparences, les répétitions peuvent utiliser simultanément les options minimal et compact en définissant l’apparence sur minimal compact. Les questions d’une répétition sont présentées de manière à la fois réduite (compact) et masquée (minimal).

Lorsque l’apparence d’une question de type début de répétition est définie sur tabular (tabulaire), les questions de la répétition se présentent sous forme de table. Pour plus d’informations, reportez-vous à la section Répétitions tabulaires.

Remarque :

Dans Survey123 Connect, vous pouvez également définir les apparences suivantes pour les répétitions des enquêtes utilisées avec l’application de terrain Survey123 ou l’application Web Survey123 :

  • Lorsque la colonne style de la feuille settings (paramètres) est définie sur pages et que l’apparence de chaque question de type début de répétition est définie sur field-list, chaque ensemble reproductible de questions s’affiche sur une page distincte de l’enquête. Ce comportement est le même que pour un groupe.
  • Si vous définissez la colonne style de la feuille settings (paramètres) sur fixed-grid ou dynamic-grid, les répétitions de votre enquête peuvent être paramétrées pour afficher les questions correspondantes dans une mise en page sous forme de grille. Ce comportement est le même que pour un groupe.

Répétitions tabulaires

Remarque :

Cette section décrit les fonctions qui sont uniquement disponibles dans Survey123 Studio et Survey123 Mobile.

Dans Survey123 Connect, l’application de terrain Survey123 et l’application Web Survey123, l’apparence tabular (tabulaire) et ses paramètres XLSForm associés sont ignorés.

Lorsque l’apparence d’une question de type début de répétition est définie sur tabular (tabulaire), les questions de la répétition se présentent sous forme de table. Dans la vue tabulaire, les enregistrements de la répétition sont présentés sous forme de lignes et les questions de la répétition sont présentées sous forme de colonnes. La vue tabulaire vous permet de modifier les données directement dans ses cellules. Vous pouvez en outre trier les enregistrements et y accéder dans la répétition.

La vue tabulaire est illustrée dans l’image suivante :

Vue tabulaire d’une répétition

Voici la description des légendes de l’image ci-dessus :

  1. Touchez le bouton de menu de chaque ligne pour accéder aux options Edit in form view (Modifier dans la vue du formulaire), Copy to new record (Copier dans un nouvel enregistrement) et Delete (Supprimer).
  2. L’icône de lecture seule indique qu’une question (colonne) ne peut pas être modifiée dans la vue tabulaire.
  3. Touchez un en-tête de colonne pour trier la vue tabulaire par ordre croissant et, éventuellement, procédez comme suit :
    • Touchez à nouveau l’en-tête de colonne pour trier par ordre décroissant.
    • Touchez l’en-tête de colonne une troisième fois pour désactiver le tri (rétablir l’ordre d’origine des lignes). Vous pouvez également toucher un autre en-tête de colonne pour trier en fonction de cette colonne.
  4. Touchez une cellule pour modifier sa valeur. Certains types de question seulement peuvent être modifiés dans la vue tabulaire.
  5. Touchez le bouton d’effacement d’une cellule pour supprimer sa valeur.

Vous pouvez également modifier des enregistrements individuels dans la vue du formulaire. La vue du formulaire présente des enregistrements répétés dans une vue d’enquête distincte et complète.

L’apparence tabular (tabulaire) peut être utilisée avec les apparences minimal et compact.

Pour commencer à utiliser les répétitions tabulaires, procédez comme suit dans Survey123 Studio :

  1. Définissez l’apparence sur tabular (tabulaire) pour la question de début de répétition.

    La vue tabulaire reste vide si vous n’y ajoutez pas de questions.

  2. Ajoutez une ou plusieurs questions à la vue tabulaire en saisissant showInTabularView=true dans la colonne body::esri:style pour chaque question.
  3. Configurez la vue tabulaire avec des paramètres facultatifs.

Ajouter des questions à la vue tabulaire

Vous pouvez ajouter des questions à la vue tabulaire en saisissant showInTabularView=true dans la colonne body::esri:style pour les questions de la répétition. Vous pouvez modifier les types de question suivants dans la vue tabulaire :

  • Texte
  • entier
  • decimal
  • date
  • heure
  • dateTime

Tous les autres types de question s’affichent sous forme de colonnes en lecture seule dans la vue tabulaire.

Attention :

Tenez compte des points suivants lorsque vous ajoutez des questions à la vue tabulaire :

  • Les questions de la répétition qui comportent une expression (y compris yes) dans la colonne readonly ne peuvent pas être modifiées dans la vue tabulaire.
  • Les questions de la répétition qui comportent une expression dans la colonne body::esri:visible ou qui présentent l’apparence hidden (masqué) ne s’affichent pas dans la vue tabulaire.
  • Les questions de la répétition qui comportent une expression dans la colonne relevant (pertinent) ne s’affichent pas dans la vue tabulaire.
  • Les questions de la répétition qui comportent une expression (y compris yes) dans la colonne required (requis) ou une expression dans la colonne constraint (contrainte) s’affichent dans la vue tabulaire. Lorsqu’une ou plusieurs conditions required ou constraint ne sont pas remplies, un avertissement général apparaît au-dessus de la vue tabulaire avec une icône d’avertissement en regard de chaque enregistrement (ligne) comportant des erreurs. Vous ne pouvez pas envoyer l’enquête tant que ces erreurs n’ont pas été corrigées. Vous pouvez modifier les enregistrements de la vue du formulaire pour voir les messages d’avertissement constraint et required de chaque question. Lorsque la répétition comporte des erreurs, l’option Edit in form view (Modifier dans la vue du formulaire) est disponible même lorsque le paramètre editInFormView dans la colonne body::esri:style est défini sur false.

Options de la vue tabulaire

Vous pouvez configurer les options associées aux enregistrements (lignes) dans la vue tabulaire en spécifiant des paramètres dans la colonne body::esri:style pour une question de type début de répétition. Ces paramètres facultatifs sont décrits dans la table ci-dessous. Vous pouvez ajouter plusieurs paramètres en les séparant par des espaces. En voici un exemple :

addRecordMode=form copyToNewRecord=false

Lorsque vous définissez l’apparence d’une question de type début de répétition sur tabular (tabulaire) et ne spécifiez aucun paramètre dans la colonne body::esri:style pour cette question, les options Edit in form view (Modifier dans la vue du formulaire), Copy to new record (Copier dans un nouvel enregistrement) et Delete (Supprimer) sont disponibles dans la vue tabulaire par défaut.

ParamètreDescription
addRecordMode

Spécifiez le mode du bouton Add record (Ajouter un enregistrement) et de l’option Copy to new record (Copier dans un nouvel enregistrement) dans la vue tabulaire. La valeur par défaut est row. Lorsque la valeur est row, le nouvel enregistrement est ajouté à la vue tabulaire. Lorsque la valeur est form, le nouvel enregistrement est ouvert dans la vue du formulaire.

Valeurs : row | form

Exemple :

addRecordMode=form
editInFormView

Affichez ou masquez l’option Edit in form view (Modifier dans la vue du formulaire) dans la vue tabulaire. La valeur par défaut est true.

Remarque :

Lorsque la répétition comporte des erreurs, l’option Edit in form view (Modifier dans la vue du formulaire) est activée même lorsque le paramètre editInFormView est défini sur false.

Valeurs : true | false

Exemple :

editInFormView=false
copyToNewRecord

Affichez ou masquez l’option Copy to new record (Copier dans un nouvel enregistrement) dans la vue tabulaire. Cette option permet aux utilisateurs de dupliquer un enregistrement dans la répétition. La valeur par défaut est true. Le paramètre addRecordMode détermine le mode d’ajout de l’enregistrement dupliqué.

Valeurs : true | false

Exemple :

copyToNewRecord=true
editInTabularView

Activez ou désactivez la mise à jour dans la vue tabulaire. La valeur par défaut est true. Lorsque la valeur est false, toutes les cellules de la vue tabulaire sont en lecture seule.

Valeurs : true | false

Exemple :

editInTabularView=false

Limitations associées à l’utilisation des répétitions tabulaires

Les limitations suivantes s’appliquent aux répétitions tabulaires :

  • L’apparence tabular (tabulaire) n’est pas prise en charge pour les répétitions imbriquées.
  • L’option Copy to new record (Copier dans un nouvel enregistrement) ne copie pas les pièces jointes ou les répétitions imbriquées dans le nouvel enregistrement. Cela est cohérent avec le comportement en cas de copie des enregistrements d’enquête dans un nouvel enregistrement depuis le dossier Sent (Éléments envoyés) ou Inbox (Boîte de réception).
  • Lorsque la vue tabulaire est triée, il est recommandé de ne pas modifier les valeurs de la colonne à laquelle le tri s’applique puisque le tri s’actualise immédiatement à chaque touche.
  • Lorsqu’une répétition tabulaire se trouve dans un groupe comportant une expression pertinente, sa vue tabulaire est vide si le groupe est rendu pertinent.
  • Dans les langues qui s’écrivent de droite à gauche, la séquence des colonnes dans la vue tabulaire ne s’inverse pas et les en-têtes de colonnes ne sont pas toujours alignés sur la droite.

Spécifier le nombre d’enregistrements répétés

Remarque :

Cette section décrit les fonctions qui sont uniquement disponibles dans Survey123 Connect et l’application de terrain Survey123. Ces fonctions ne sont pas disponibles dans Survey123 Studio ou Survey123 Mobile.

Pour indiquer le nombre d’enregistrements répétés dans une répétition, définissez un nombre d’enregistrements en procédant comme suit :

  1. Sur la ligne où vous voulez commencer la répétition, saisissez begin repeat (commencer la répéttion) dans la colonne type de l’onglet survey (enquête).
  2. Indiquez une valeur numérique correspondant au nombre de répétitions dans la colonne repeat_count.

    Vous pouvez également indiquer un nom de question ou un calcul qui renvoie une valeur numérique.

  3. Tapez un nom pour la répétition dans la colonne name.
  4. Dans les lignes situées sous cette entrée, saisissez les questions que vous souhaitez inclure dans la répétition.
  5. Dans la dernière ligne, tapez end repeat dans la colonne type .

Lorsqu’un utilisateur ouvre l’enquête, les répétitions, dont le nombre est défini dans la colonne repeat_count (nombre_répétitions), sont déjà créées. L’utilisateur ne peut ni créer, ni supprimer de répétitions.

Les utilisateurs doivent parcourir les enregistrements répétés définis par la valeur repeat_count avant l’envoi de la réponse à l’enquête. Sinon, tous les enregistrements répétés ne sont pas envoyés. En effet, les expressions et les valeurs par défaut ne peuvent pas être appliquées aux répétitions tant que les utilisateurs ne parcourent pas l’enregistrement Pour vous assurer que toutes les répétitions sont envoyées, vous pouvez rendre les questions obligatoires dans les répétitions. Les questions dans les répétitions auxquelles une instruction obligatoire conditionnelle ou pertinente est appliquée ne sont pas évaluées lors de l’envoi.

Remarque :

Une répétition avec un nombre de répétitions variable se comporte différemment selon que l’utilisateur crée une réponse d’enquête ou en modifie une qui a déjà été envoyée, comme suit :

  • Lors de la création d’une réponse d’enquête, l’application de terrain affiche un bouton en haut de la répétition pour supprimer tous les enregistrements contenant des données qui dépassent le nouveau nombre de répétitions ; les enregistrements vierges sont supprimés automatiquement. Que ce bouton soit activé ou non, tous les enregistrements, hormis ceux qui sont vides, sont envoyés lors de l’envoi de la réponse à l’enquête.
  • Lors de la mise à jour d’une réponse, l’application de terrain affiche un bouton en haut de la répétition pour indiquer que le nombre d’enregistrements ne correspond pas au nombre de répétitions. Il est possible d’ajouter de nouveaux enregistrements répétés seulement si allowAdds est défini sur true dans la colonne bind::esri:parameters. Les enregistrements au-delà du nombre de répétitions ne peuvent pas être supprimés, car l’application de terrain ne prend pas en charge la suppression des enregistrements répétés existants. Les réponses d’enquête mises à jour sont envoyées même si le nombre d’enregistrements ne correspond pas au nombre de répétitions.

Fonctions agrégées

Remarque :

Cette section décrit les fonctions qui sont uniquement disponibles dans Survey123 Connect et l’application de terrain Survey123. Ces fonctions ne sont pas disponibles dans Survey123 Studio ou Survey123 Mobile.

Vous pouvez utiliser les fonctions d’agrégation pour renvoyer des valeurs dérivant des réponses dans les répétitions. Dans ce but, une question dans une répétition est référencée par une question en dehors de cette répétition. Par exemple, la formule suivante compte les réponses à une même question dans les répétitions :

count(${repeated_question})

Vous pouvez utiliser les fonctions suivantes pour agréger des réponses :

  • count
  • sum
  • min
  • max
  • join

Ces fonctions ne s'appliquent qu'aux réponses à l'enquête actuelle. Elles ne prennent pas en compte d’autres enregistrements dans la couche d’entités. Vous pouvez également inclure des questions utilisant sum et count dans la répétition. Toutefois, si les fonctions sum et count sont calculées pour chaque nouvel enregistrement ajouté à la répétition, les calculs des entrées précédentes de la répétition ne sont pas mis à jour automatiquement. Vous pouvez actualiser manuellement ces calculs à l’aide du bouton Refresh (Actualiser) en regard de la question. L’utilisation des fonctions min et max n’est possible qu’en dehors de la répétition.

Remarque :

Lorsqu’elles sont utilisées dans l’application de terrain Survey123, les fonctions sum, count et join peuvent être placées dans la répétition ou en dehors de celle-ci. Si les fonctions sum, count et join doivent être utilisées dans l’application Web Survey123, elles doivent être placées hors de la répétition. Une valeur sum, count ou join externe à la répétition peut être référencée dans un calcul interne à la répétition.

Vous pouvez utiliser la fonction join pour concaténer des questions qui renvoient une chaîne. Il est également possible d’utiliser la fonction sum pour associer des questions de type géopoint dans la répétition sous forme de question de type géotrace ou géoforme hors de la répétition.

Pour plus d’informations sur l’utilisation de ces fonctions, consultez la rubrique Formules.

Renvoyer l’index d’un enregistrement de répétition

Vous pouvez utiliser la fonction position(..) pour renvoyer un entier reflétant l’index d’un enregistrement de répétition dans une répétition. Prenons l’exemple d’un cas où le premier enregistrement d’une répétition renvoie la valeur 1, le deuxième enregistrement la valeur 2, etc. Dans l’exemple suivant, la fonction position(..) est utilisée dans une question avec entier masquée au sein d’une répétition :

Exemple de fonction position(..) dans XLSForm

Attention :

La fonction position(..) renvoie toujours 0 dans Survey123 Mobile et l’application de terrain Survey123 ou 1 dans l’application Web Survey123 lorsqu’elle est utilisée hors d’une répétition ou dans un groupe qui se trouve dans une répétition.

Vous pouvez aussi utiliser la fonction position(..) dans une expression. Dans l’exemple suivant, la fonction selected-at() utilise position(..) pour renvoyer le choix qui a été sélectionné à la question de type select_multiple (choix multiples) à la même position que l’enregistrement de répétition en cours et afficher le choix dans la répétition sous forme de note. La fonction selected-at() commence à compter les choix à partir de zéro, donc un est soustrait de position(..) afin de garantir la correspondance des index comme suit :

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

Exemple des fonctions position(..) et selected-at() dans un formulaire XLSForm

Vous pouvez utiliser la fonction position(..) avec indexed-repeat() pour extraire les valeurs de questions à partir d’enregistrements de répétition particuliers.

Utiliser les valeurs des répétitions indexées

Remarque :

Cette section décrit les fonctions qui sont uniquement disponibles dans Survey123 Connect et l’application de terrain Survey123. Ces fonctions ne sont pas disponibles dans Survey123 Studio ou Survey123 Mobile.

Vous pouvez utiliser la fonction indexed-repeat() pour renvoyer la valeur d’une question spécifique dans un enregistrement de répétition. Le nom de la question, le nom de la répétition et le numéro d’index de la répétition sont alors requis dans cet ordre. L’exemple suivant renvoie la réponse à la question room_no pour le troisième enregistrement de la répétition floor :

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

Vous pouvez utiliser la fonction indexed-repeat() pour les répétitions au sein de répétitions. Utilisée de cette manière, elle ne reçoit que les valeurs accessibles à partir de la répétition parent actuellement visible.

Attention :

La fonction indexed-repeat() ne peut pas être utilisée dans la répétition qu’elle référence, car cela créerait une référence circulaire. Par exemple, l’expression suivante ne peut pas être utilisée pour un calcul dans la répétition nommée defects :

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

Limitations connues

Les limitations connues et les comportements inattendus suivants s’appliquent lorsque des répétitions sont utilisée dans Survey123 :

  • Si une enquête contient plusieurs répétitions, dont une comportant une question de type géopoint, géotrace ou géoforme, la dénomination de la relation risque d’être publiée dans le désordre.
  • Les répétitions imbriquées prennent uniquement en charge les relations un vers plusieurs et chaque enfant ne peut avoir qu’un seul parent.
  • Les répétitions imbriquées avec à la fois une expression dans la colonne relevant (pertinent) et une expression dans la colonne repeat_count (nombre_répétitions) effacent toutes les données enregistrées existantes dans le premier enregistrement de répétition. Pour éviter cela, incorporez l’expression pertinente dans l’expression repeat_count afin de ne créer aucun enregistrement répété lorsque la répétition n’est pas pertinente.
  • La mise à jour de réponses individuelles n’est pas prise en charge pour les enquêtes qui contiennent des répétitions imbriquées dans l’application Web Survey123 ou sur le site Web Survey123.