Vous êtes sur la page 1sur 56

XLSForm.

org
fr Tableau de référence XLSForm
 Qu'est-ce qu'un XLSForm ?
 Format de base
o La fiche d'enquête
o La feuille de travail des choix
o Mise en place de vos feuilles de travail
 Types de questions
o GPS
o GPS avec précisionSeuil
o Choix multiple
o Choix multiple à partir du fichier
o Rang
o Gamme
o Image
o Qualité d'enregistrement audio
o Métadonnées
o Données XML externes
 Astuces
o Conseils réguliers
o Conseils d'orientation
 Formules
 Contraintes
o Message de contrainte
 Pertinent
 Calcul
 Déclencher
 Requis
o Message requis

1
 Choix aléatoires
 Regrouper les questions
o Imbriquer des groupes dans des groupes
o Saut
 Répétitions
o Nombre de répétitions fixe
o Nombre de répétitions dynamiques
o N'ajoutez des répétitions que dans certaines conditions
o Représentant zéro répétition
 Prise en charge de plusieurs langues
 Médias
 Pré-chargement des données CSV
o Comment extraire des données de CSV
 Sélections dynamiques à partir de données préchargées
 Sélections en cascade
 Sélections externes
 Défaut
 Lecture seulement
 Apparence
 Feuille de calcul des paramètres
o Formulaires cryptés
o Spécifiez un autre serveur
o Spécifiez le nom de soumission du formulaire
o Spécifiez le nom du nœud racine XForms
o Plusieurs formulaires de page Web
o Formulaires de thème de grille
 Invites de style
 Utilisation avancée et extensibilité
 Outils prenant en charge XLSForms

2
 Davantage de ressources
 À propos de ce site
 Histoire
Qu'est-ce qu'un XLSForm ?
XLSForm est une norme de formulaire créée pour simplifier la création de
formulaires dans Excel. La création se fait dans un format lisible par l'homme à
l'aide d'un outil familier que presque tout le monde connaît - Excel. XLSForms
fournit une norme pratique pour le partage et la collaboration sur la création de
formulaires. Ils sont simples à utiliser mais permettent la création de formulaires
complexes par une personne familière avec la syntaxe décrite ci-dessous.
Le XLSForm est ensuite converti en un ODK XForm , un standard de formulaire
ouvert populaire, qui vous permet de créer un formulaire avec des fonctionnalités
complexes, comme la logique de saut, de manière cohérente sur un certain nombre
de plates-formes de collecte de données Web et mobiles.
Format de base
Chaque classeur Excel comporte généralement deux feuilles de calcul
: enquête et choix. Une troisième feuille de calcul facultative,
appelée paramètres, peut ajouter des spécifications supplémentaires à votre
formulaire et est décrite ci-dessous .
La fiche d'enquête
Cette feuille de calcul donne à votre formulaire sa structure globale et contient la
majeure partie du contenu du formulaire. Il contient la liste complète des questions
et des informations sur la façon dont elles doivent apparaître dans le
formulaire. Chaque ligne représente généralement une question ; cependant, il
existe certaines autres fonctionnalités décrites ci-dessous que vous pouvez ajouter
au formulaire pour améliorer l'expérience utilisateur.
La feuille de travail des choix
Cette feuille de travail est utilisée pour spécifier les choix de réponse pour les
questions à choix multiples. Chaque ligne représente un choix de réponse. Les

3
choix de réponse avec le même nom de liste sont considérés comme faisant partie
d'un ensemble de choix connexe et apparaîtront ensemble pour une question. Cela
permet également de réutiliser un ensemble de choix pour plusieurs questions (par
exemple, des questions oui/non).
Mise en place de vos feuilles de travail
Ces deux feuilles de calcul ont un ensemble de colonnes obligatoires qui doivent
être présentes pour que le formulaire fonctionne. De plus, chaque feuille de calcul
comporte un ensemble de colonnes facultatives qui permettent un contrôle
supplémentaire sur le comportement de chaque entrée dans le formulaire, mais
qui ne sont pas indispensables. Chaque entrée doit avoir des valeurs pour chacune
des colonnes obligatoires, mais les colonnes facultatives peuvent être laissées
vides.
 La feuille de calcul de l'enquête comporte 3 colonnes obligatoires
: type , name et label .
o La colonne type spécifie le type d'entrée que vous attendez pour la question.
o La colonne de nom spécifie le nom de variable unique pour cette entrée. Deux
entrées ne peuvent pas avoir le même nom. Les noms doivent commencer par une
lettre ou un trait de soulignement. Les noms ne peuvent contenir que des lettres,
des chiffres, des traits d'union, des traits de soulignement et des points. Les noms
sont sensibles à la casse.
o La colonne d'étiquette contient le texte réel que vous voyez pour la question dans
le formulaire. Alternativement, des colonnes de traduction d'étiquettes peuvent
être utilisées.

taper nom étiqueter

aujourd'hui aujourd'hui
select_one genre genre Sexe du répondant ?
entier âge Âge du répondant ?

4
taper nom étiqueter

enquête les choix paramètres


 La feuille de calcul des choix comporte également 3 colonnes obligatoires : nom
de la liste , nom et étiquette .
o La colonne du nom de la liste vous permet de regrouper un ensemble de choix
de réponses liés, c'est-à-dire des choix de réponses qui doivent apparaître
ensemble sous une question.
o La colonne de nom spécifie le nom de variable unique pour ce choix de réponse.
o La colonne d'étiquette affiche le choix de réponse exactement tel que vous
souhaitez qu'il apparaisse sur le formulaire. Alternativement, des colonnes de
traduction d'étiquettes peuvent être utilisées.

liste de noms nom étiqueter

genre transgenres transgenres


genre femme Femme
genre homme Homme
genre autre Autre
enquêteles choixparamètres
Les colonnes que vous ajoutez à votre classeur Excel, qu'elles soient obligatoires
ou facultatives, peuvent apparaître dans n'importe quel ordre. Les colonnes
facultatives peuvent être complètement omises. Les lignes ou les colonnes
peuvent être laissées vides pour faciliter la lisibilité, mais les données après 20
colonnes ou lignes vides adjacentes sur une feuille ne seront pas traitées. Toutes
les mises en forme de fichiers .xlsx sont ignorées, vous pouvez donc utiliser des
lignes de séparation, des ombres et d'autres mises en forme de polices pour rendre
le formulaire plus lisible.

5
Une chose à garder à l'esprit lors de la création de formulaires dans Excel est que
la syntaxe que vous utilisez doit être précise. Par exemple, si vous
écrivez Choix ou choix au lieu de choix , le formulaire ne fonctionnera pas.
Types de questions
XLSForm prend en charge un certain nombre de types de questions. Ce ne sont là
que quelques-unes des options que vous pouvez entrer dans la colonne type de la
feuille de calcul de l'enquête dans votre XLSForm :

Type de question Saisie de la réponse

Saisie d'un nombre entier (c'est-à-dire un


entier
nombre entier).
décimal Entrée décimale.
gamme Entrée de plage (y compris la note)
texte Réponse en texte libre.
question à choix multiples ; une seule réponse
select_one [options]
peut être sélectionnée.
question à choix multiples ; plusieurs réponses
select_multiple [options]
peuvent être sélectionnées.
select_one_from_file Choix multiples à partir du fichier ; une seule
[fichier] réponse peut être sélectionnée.
select_multiple_from_file Choix multiples à partir du fichier ; plusieurs
[fichier] réponses peuvent être sélectionnées.
rang [options] Question de classement ; commander une liste.
Affiche une note à l'écran, ne prend aucune
note entrée. Raccourci pour type=text avec
readonly=true.
géopoint Collectez une seule coordonnée GPS .

6
Type de question Saisie de la réponse

Enregistrez une ligne de deux coordonnées GPS


trace géographique
ou plus .
Enregistrer un polygone de multiples
géoforme coordonnées GPS ; le dernier point est le même
que le premier point.
date Saisie des dates.
temps Saisie de l'heure.
dateHeure Accepte une entrée de date et d'heure.
Prenez une photo ou téléchargez un fichier
image
image .
Prenez un enregistrement audio ou téléchargez
l'audio
un fichier audio.
L'audio est enregistré en arrière-plan lors du
audio de fond
remplissage du formulaire.
Prenez un enregistrement vidéo ou téléchargez
vidéo
un fichier vidéo.
Entrée de fichier générique (txt, pdf, xls, xlsx,
déposer
doc, docx, rtf, zip)
Scanner un code-barres, nécessite l'installation
code à barre
de l'application du scanner de codes-barres.
Effectuer un calcul ; voir la section Calcul ci-
calculer
dessous.
Confirmer l'invite qui définit la valeur sur "OK"
reconnaître
si elle est sélectionnée.

7
Type de question Saisie de la réponse

Un champ sans élément d'interface utilisateur


caché associé qui peut être utilisé pour stocker une
constante
Ajoute une référence à un fichier de données
xml-externe
XML externe
GPS
Par exemple, pour collecter le nom et les coordonnées GPS d'un magasin, vous
écrivez ceci :

taper nom étiqueter

texte nom du magasin Quel est le nom de ce magasin ?


géopoint store_gps Récupérez les coordonnées GPS de ce magasin.
enquêteles choixparamètres
Pour collecter une ligne ou une forme de coordonnées GPS, vous pouvez utiliser
l'une des options suivantes :

taper nom étiqueter indice

Veuillez marcher le long du pipeline et


trace
tuyau Pipeline enregistrer les coordonnées de chaque
géographique
point d'angle
Veuillez marcher le long de la
géoforme frontière Frontière frontière et enregistrer les coordonnées
de chaque point d'angle
enquêteles choixparamètres
Voir question_types XLSForm pour un aperçu de chaque type de question utilisé
dans un formulaire.
GPS avec précisionSeuil

8
Lors de l'enregistrement des coordonnées GPS dans ODK Collect, ODK collect
collecte automatiquement le GPS lorsqu'un niveau de précision de 5 mètres ou
moins est atteint. Vous pouvez modifier ce comportement par défaut en spécifiant
un precisionThreshold ; celle-ci peut être inférieure à 5 m ou supérieure à 5
m. Vous devrez ajouter une colonne avec l'en-tête body::accuracyThreshold sur
la feuille d'enquête de votre XLSForm. Spécifiez ensuite votre valeur de seuil de
précision préférée pour cette colonne sur votre question géopoint, comme dans
l'exemple ci-dessous :

taper nom étiqueter body::précisionSeuil

Récupérez les coordonnées


géopoint store_gps 1.5
GPS de ce magasin.
enquêteles choixparamètres
Voir le formulaire gps_accuracy_threshold pour un exemple qui utilise cet
attribut.
Choix multiple
XLSForm prend en charge les questions select_one (sélectionnez une seule
réponse) et select_multiple (sélectionnez plusieurs réponses). La rédaction d'une
question à choix multiples nécessite l'ajout d'une feuille de calcul de choix à votre
classeur Excel. Voici un exemple de question select_one :

taper nom étiqueter

select_one oui_non aime_pizza Aimes-tu la pizza?


enquêteles choixparamètres

liste de noms nom étiqueter

Oui Non Oui Oui


Oui Non Non Non
enquêteles choixparamètres

9
Notez que le oui_non dans la feuille de calcul de l'enquête doit correspondre
au oui_non dans la colonne du nom de la liste dans la feuille de calcul des
choix . Cela garantit que le formulaire affiche la bonne liste de choix de réponses
pour une question particulière.
Nous pouvons également ajouter des questions à choix multiples qui permettent
de sélectionner plusieurs réponses, comme ceci :

taper nom étiqueter

select_multiple Quelles sont vos garnitures de


garnitures_favorites
pizza_toppings pizza préférées ?
enquêteles choixparamètres

liste de noms nom étiqueter

garnitures de pizza fromage Fromage


garnitures de pizza pepperoni Pepperoni
garnitures de pizza saucisse Saucisse
enquêteles choixparamètres
Noms de choix
La namecolonne de la feuille de choix définit les valeurs qui seront enregistrées
lorsque chaque choix est sélectionné lors de la collecte des données. Les noms de
choix pour select_multiple ne doivent pas contenir d'espaces car les espaces sont
utilisés comme séparateur lorsqu'une réponse avec plusieurs choix sélectionnés
est enregistrée. Les noms de choix pour les questions select_one peuvent contenir
des espaces. Cependant, nous vous recommandons de les éviter pour faciliter
l'analyse. De plus, cela permet de convertir la question en un select_multiple dans
une future version du formulaire.
En général, les noms de choix doivent être uniques dans une même liste de
choix. Si deux choix de la même liste ont le même nom, ils seront impossibles à
distinguer dans l'analyse. Si vous avez des noms de choix en double, vous

10
obtiendrez une erreur et votre formulaire ne sera pas converti. Cependant, il peut
parfois être approprié d'avoir des noms de choix en double. Un exemple serait si
vous utilisez un select en cascade et que les choix portant le même nom sont
différenciés par une question précédente. Si vous devez utiliser des noms de choix
en double, vous pouvez supprimer l'erreur en utilisant
le allow_choice_duplicatesparamètre :

allow_choice_duplicates

Oui
enquêteles choixparamètres
Précisez autre
Pour les questions à choix multiples, les enquêtes incluent souvent une option
permettant de marquer autre lorsque leur choix de réponse n'est pas
répertorié. Ensuite, on leur demande généralement de spécifier l'autre option. Cela
est possible via XLSForm en incluant or_other après le nom de la liste de choix
de réponses dans la feuille de calcul de l'enquête. La feuille de calcul des choix
reste la même. Voir ci-dessous:

taper nom étiqueter

select_multiple Quelles sont vos garnitures de


favorite_topping
pizza_toppings or_other pizza préférées ?
enquêteles choixparamètres

liste de noms nom étiqueter

liste de noms nom étiqueter


garnitures de pizza fromage Fromage
garnitures de pizza pepperoni Pepperoni
garnitures de pizza saucisse Saucisse
enquêteles choixparamètres

11
Cliquez sur le lien pour consulter le pizza_questionnaire complet .
Avertissement
Lorsque vous exportez des données à l'aide de cette option or_other , dans la
colonne favorite_topping , vous verrez une valeur other . Une colonne distincte
contiendra la réponse aux questions dans lesquelles l'utilisateur a
sélectionné autre . Cela rend l'analyse des données plus lourde, nous ne
recommandons donc pas la construction or_other pour les efforts de collecte de
données à grande échelle. Voir la section pertinente ci-dessous pour une méthode
alternative plus appropriée pour les projets à grande échelle.
Widget de localisation
Un utilisateur peut souhaiter sélectionner un emplacement à partir d'une vue
cartographique pendant la collecte de données. Pour activer cette fonctionnalité,
vous devez ajouter l' attribut d'apparence de carte ou de carte rapide à
une question select_one . La feuille de choix aura également besoin d'une
colonne de géométrie ajoutée pour le list_name noté dans les questions
select_one. La géométrie doit être spécifiée au format ODK . Cette fonctionnalité
n'est actuellement disponible que sur ODK Collect. Voir ci-dessous:

liste de
nom étiqueter géométrie
noms

liste de noms nom étiqueter géométrie


36,7965483 -1,3182517
placer shofco Shofco
00
Clinique médicale 36,7967088 -1,3170903
placer gemkam
Gemkam 00
36,7955008 -1,3167834
placer silanga Pharmacie Silanga
00

12
liste de
nom étiqueter géométrie
noms

Clinique médicale 36,7990986 -1,3179328


placer undugu
d'Undugu 00
enquêteles choixparamètres
Choix multiple à partir du fichier
Les options d'une question à choix multiples peuvent également être extraites d'un
fichier séparé au lieu de la feuille de choix. Ceci est particulièrement utile si les
options sont dynamiques ou si la liste d'options est utilisée dans plusieurs
enquêtes. Trois types de fichiers sont pris en charge : les fichiers CSV, XML et
GeoJSON. Voir les exemples d'utilisation ci-dessous :
| taper | nom | étiquette | filtre_choix | | ————————————— | —- | —
————————— | ————— | | select_multiple_from_file pays.csv | vivre
| Dans quels pays avez-vous vécu ? | | | select_one_from_file pays.xml | cou | Dans
quel pays vivez-vous maintenant ? | | | select_one_from_file pays.xml | cit | Quelle
est la ville la plus proche ? | nom=${cou} | | select_one_from_file menages.csv
| hh | Sélectionnez le numéro du ménage
| | | ====================================== | ====
| ==============================|=================| | enquête
| | | | Légende : Utilisation de CSV et XML
| taper | nom | étiquette | apparence | | ——————————————— | —-
| ———————————– | ———— | | select_one_from_file
établissement_de_santé.geojson | site | Sélectionnez l'établissement de santé visité
| carte | | ============================================ | ====
| ===================================|============= =| | enquête
| | | | Légende : Utilisation de GeoJSON

13
Les fichiers nécessitent un format spécifique. Un fichier CSV nécessite une
colonne nameet labelqui représente la valeur et l'étiquette des options. Un fichier
XML nécessite une structure comme illustré ci-dessous :
<root>
<item>
<name/>
<label/>
...
</item>
</root>

Un GeoJSON nécessite que chaque entité, ou point, ait une propriété id et title, ou
un attribut du point. Le GeoJSON doit être défini par une seule FeatureCollection
de niveau supérieur, et il ne fonctionne actuellement que pour la géométrie
ponctuelle, comme indiqué en détail sur le site de documentation ODK .
Les fichiers CSV, XML et GeoJSON peuvent avoir des colonnes supplémentaires,
des nœuds XML ou des fonctionnalités et des propriétés personnalisées tant que
les exigences de base mentionnées ci-dessus sont remplies.
Si les fichiers CSV, XML ou GeoJSON utilisent des noms différents pour le
choix nameet label, ajoutez une colonne à la feuille d'enquête
nommée parameters, et spécifiez les noms personnalisés avec les
paramètres valueet label. Voir les exemples d'utilisation ci-dessous :
| taper | nom | étiquette | paramètres | | ————————————— | —- | —
—————————— | ————— | | select_multiple_from_file pays.csv
| vivre | Dans quels pays avez-vous vécu ? | valeur=ccode | | select_one_from_file
pays.xml | cou | Dans quel pays vivez-vous maintenant ? | étiquette=cname
| | select_one_from_file menages.csv | hh | Sélectionnez le numéro du ménage
| value=housenum, label=housename
| | ====================================== | ====

14
| =================================|===============
==| | enquête | | | | Légende : Utilisation de CSV et XML
| taper | nom | étiquette | apparence | paramètres | | ————————————
——— | —- | ———————————– | ———— | ————————
| | select_one_from_file établissement_de_santé.geojson | site | Sélectionnez
l'établissement de santé visité | carte | valeur = id, étiquette = nom
| | ============================================ | ====
| ===================================|=============
=| ======================== | | enquête | | | | |
Légende : Utilisation de GeoJSON
Notez que ce type de question est généralement le moyen préféré pour créer des
questions sélectionnées à partir de données externes, car il est le plus polyvalent
et fonctionne avec toutes les applications. Cependant, si votre fichier de données
externe se compose de plusieurs milliers de lignes, veuillez vérifier attentivement
si les performances sont satisfaisantes sur le périphérique le plus bas que vous
avez l'intention d'utiliser. S'il est trop lent, envisagez d'utiliser des sélections
externes ou des sélections dynamiques à partir de données préchargées si votre
application de collecte de données le prend en charge.
Rang
Le widget de classement peut être utilisé pour permettre aux répondants de
commander une liste d'options. La réponse est enregistrée sous la forme d'une liste
ordonnée et séparée par des espaces de valeurs d'options où toutes les options sont
toujours incluses. La syntaxe est très similaire aux questions à choix multiples.

taper nom étiqueter

classer les garnitures Commandez des garnitures de pizza avec


garnitures
de pizza votre favori sur le dessus
enquêteles choixparamètres

15
liste de noms nom étiqueter

garnitures de pizza fromage Fromage


garnitures de pizza pepperoni Pepperoni
garnitures de pizza saucisse Saucisse
enquêteles choixparamètres
Pour éviter les biais, il est souvent recommandé d'utiliser la fonction de
randomisation en conjonction avec ce widget.
Gamme
Pour limiter les entrées entières ou décimales à une plage spécifique, vous pouvez
utiliser la question de plage . Cette question peut être utilisée avec 3 paramètres
facultatifs séparés par des espaces : start , end et step dans une colonne de
paramètres . Les valeurs par défaut sont respectivement 0, 10 et 1. L'exemple ci-
dessous créera une question qui permet la saisie de 0 à 17 avec un pas de 1.
L'utilisation d'un pas décimal entraînera la collecte de valeurs décimales.

taper nom étiqueter paramètres

gamme montant Quel est l'âge de l'enfant ? début=0 fin=17 pas=1


enquêteles choixparamètres
Pour afficher une question de plage sous forme de widget d'évaluation à l'aide
d'étoiles, vous pouvez ajouter l'apparence d'évaluation comme indiqué ci-
dessous :

taper nom étiqueter apparence paramètres

Quelle note donnez- début=1 fin=5


gamme noté notation
vous ? étape=1
enquêteles choixparamètres
Image

16
Pour télécharger un fichier image, le type de question image peut être utilisé. Pour
vous assurer que les images ne sont pas trop grandes, vous pouvez éventuellement
définir le paramètre max-pixels qui réduira automatiquement la taille de l'image
téléchargée pour qu'elle corresponde au plus grand côté de l'image avec la valeur
de pixel fournie.

taper nom étiqueter paramètres

image image Télécharger une image max-pixels=1000


enquêteles choixparamètres
Qualité d'enregistrement audio
Certains clients utilisent une valeur de qualité dans la colonne des
paramètres pour configurer la qualité d'enregistrement audio pour les types de
questions audio ou background-audio . Les deux types de questions
acceptent les valeurs de qualitévoice-only , lowet normal. audio accepte en outre
une qualité de externalpour spécifier qu'une application externe doit être utilisée
pour l'enregistrement.

taper nom paramètres

l'audio animal_sound qualité=normale


enquêteles choixparamètres
Métadonnées
XLSForm propose un certain nombre d'options de type de données pour la
collecte de métadonnées :

Type de
Signification
métadonnées

commencer Date et heure de début de l'enquête.


fin Date et heure de fin de l'enquête.
aujourd'hui Jour de l'enquête.

17
Type de
Signification
métadonnées

Reference de Identifiant client unique. Peut être réinitialisé par


l'appareil l'utilisateur.
numéro de téléphone Numéro de téléphone (si disponible).
nom d'utilisateur Nom d'utilisateur configuré (si disponible).
e-mail Adresse e-mail configurée (si disponible).
Consigner le comportement de l'énumérateur lors de la
Audit
saisie des données
Notez que certains champs de métadonnées ne s'appliquent qu'aux formulaires
basés sur les téléphones mobiles.
Par exemple, si vous souhaitez collecter tous ces types de métadonnées, mettez
les éléments suivants dans votre formulaire (généralement au début, mais cela
peut se trouver à n'importe quel moment de votre formulaire) :

taper nom étiqueter paramètres

commencer commencer
fin fin
aujourd'hui aujourd'hui
Reference de Reference de
l'appareil l'appareil
numéro de numéro de
téléphone téléphone
nom d'utilisateur nom d'utilisateur
e-mail e-mail

18
taper nom étiqueter paramètres

[facultatif, voir ci-


Audit Audit
dessous]
enquêteles choixparamètres
Notez qu'il n'y a pas d'étiquettes associées aux types de questions de
métadonnées. En effet, le téléphone capture ces variables automatiquement. Ces
questions n'apparaîtront pas sur l'écran du téléphone, mais vous les verrez lorsque
vous consulterez les données de votre sondage soumises. Le Tutoriel
XLSForm montre comment les métadonnées sont utilisées dans un formulaire.
Auditer le comportement des enquêteurs et le suivi de l'emplacement
Remarque : pour l'instant, cette fonctionnalité n'est disponible que dans Collect,
mais pas dans les formulaires Web Enketo.
La métaquestion d'audit permettra à ODK Collect d'enregistrer la manière dont
les utilisateurs naviguent dans un formulaire lors de la saisie de données. Par
exemple, cela peut être utilisé pour mesurer le temps qu'un enquêteur a pris pour
remplir une question, les réponses qui ont été modifiées plus tard ou le moment
où le formulaire a été enregistré.
En option, la métaquestion d'audit peut être configurée pour enregistrer
également l'emplacement de l'enquêteur tout au long de l'entretien. Cela peut être
utile pour le contrôle de la qualité ou pour enregistrer les chemins exacts
empruntés entre chaque répondant. Pour ce faire, ajoutez une colonne
appelée parameters à votre formulaire et saisissez les trois paramètres
requis : location-priority , location-min-interval et location-max-age .
Cet exemple ci-dessous collecterait la position GPS précise toutes les 180
secondes et supprimerait les coordonnées collectées il y a plus de 300 secondes.

19
taper nom étiqueter paramètres

location-priority=haute précision location-min-


Audit Audit
interval=180 location-max-age=300
enquêteles
choixparamètres
Consultez cette page dans la documentation ODK Collect pour plus de détails sur
la métaquestion d'audit , les paramètres de suivi de localisation disponibles et le
format du fichier journal audit.csv créé pour chaque soumission.
Données XML externes
Pour les utilisateurs avancés, qui doivent effectuer des requêtes complexes sur des
données externes sans restrictions, un fichier de données XML externe peut être
ajouté avec le type de question xml-external . La valeur dans la colonne de
nom peut être utilisée pour faire référence à ces données dans n'importe quelle
formule (par exemple pour un calcul, une contrainte, pertinent ou un filtre de
choix) à l'aide de la fonction instance('name') . Un fichier portant le même nom
et l' extension .xml doit être téléchargé avec le formulaire. Voir ci-dessous pour
un exemple qui nécessite de télécharger un fichier appelé houses.xml avec le
formulaire.
Si votre fichier de données externe se compose de plusieurs milliers de lignes,
veuillez vérifier attentivement si les performances sont satisfaisantes sur l'appareil
aux spécifications les plus basses que vous avez l'intention d'utiliser. S'il est trop
lent, envisagez d'utiliser des sélections externes à la place si votre application de
collecte de données le prend en charge.

taper nom étiqueter calcul

xml-
Maisons
externe

20
taper nom étiqueter calcul

Combien de
entier pièces
chambres?
count(instance('houses')/house[rooms =
calculer compter
current()/../rooms ])
enquêteles choixparamètres
Astuces
Conseils réguliers
Parfois, vous souhaitez ajouter un petit indice à une question de votre formulaire,
indiquant à l'utilisateur comment répondre à la question, mais vous ne voulez pas
que l'indice fasse partie de la question elle-même. Il est facile d'ajouter des indices
aux questions dans XLSForms. Ajoutez simplement une colonne d'indice et
ajoutez votre message d'indice. Voir ci-dessous pour un exemple.

taper nom étiqueter indice

Quel est le nom de ce Regardez sur l'enseigne si le


texte nom
magasin ? magasin a une enseigne.
Récupérez les coordonnées
géopoint géopoint
GPS de ce magasin.
enquêteles choixparamètres
Le Tutoriel XLSForm fournit plus d'exemples de questions avec des indices.
Conseils d'orientation
Il existe un type spécial d'indice qui n'est normalement pas affiché dans le
formulaire. Il n'est affiché que dans les vues spéciales. Un exemple serait de
montrer ces conseils sur des imprimés ou lors d'une formation pour les
enquêteurs. Ces conseils sont appelés conseils de guidage et peuvent être ajoutés
dans la colonne guidance_hint . Voir ci-dessous pour un exemple.

21
taper nom étiqueter guidance_hint pertinent

entier âge Âge?


Cela ne sera affiché que pour l'âge ${age} >
texte nom Nom?
> 18 ans. 18
enquêteles
choixparamètres
Formules
Les formules sont utilisées dans les colonnes de contrainte , pertinentes , de
calcul et de déclencheur et éventuellement également dans les colonnes par
défaut et obligatoires . Les formules vous permettent d'ajouter des fonctionnalités
supplémentaires et des mesures de la qualité des données à vos formulaires.
Les formules sont composées de fonctions et d'opérateurs (+,*,div,etc.). Une liste
complète bien documentée des opérateurs et des fonctions peut être trouvée dans
la documentation ODK . Pour les connaisseurs en technique, la spécification
XForms sous-jacente est le véritable document source des fonctions prises en
charge .
Contraintes
Une façon de garantir la qualité des données consiste à ajouter des contraintes aux
champs de données de votre formulaire. Par exemple, lorsque vous demandez
l'âge d'une personne, vous voulez éviter les réponses impossibles, comme -22 ou
200. L'ajout de contraintes de données dans votre formulaire est facile à
faire. Vous ajoutez simplement une nouvelle colonne, appelée contrainte , et
tapez la formule spécifiant les limites de la réponse. Dans l'exemple ci-dessous,
la réponse pour l'âge de la personne doit être inférieure ou égale à 150. Notez
comment le .dans la formule renvoie à la variable de la question.

taper nom étiqueter contrainte

entier âge Quel âge as-tu? . <= 150

22
taper nom étiqueter contrainte

enquêteles choixparamètres
Dans cet exemple, la formule . <= 150indique que la valeur saisie .pour la question
doit être inférieure ou égale à 150. Si l'utilisateur met 151 ou plus comme réponse,
il ne sera pas autorisé à passer à la question suivante ou soumettre le formulaire.
D'autres expressions utiles à utiliser dans la colonne de contrainte peuvent être
trouvées ici . Regardez sous la section Opérateurs .
Message de contrainte
Si vous souhaitez inclure un message avec votre contrainte, indiquant à
l'utilisateur pourquoi la réponse n'est pas acceptée, vous pouvez ajouter une
colonne Constraint_message à votre formulaire. Voir l'exemple ci-dessous.

taper nom étiqueter contrainte message_contrainte

Le répondant doit être âgé de


Âge du
entier âge_intimé . >=18 18 ans ou plus pour répondre
répondant
au sondage.
enquêteles choixparamètres
Dans cet exemple, si l'utilisateur saisit un âge inférieur à 18 ans, le message
d'erreur dans la colonne Constraint_message s'affiche. Plus d'exemples sur les
contraintes ont été illustrés dans ce XLSForm .
Pertinent
Une grande fonctionnalité de XLSForm est la possibilité de sauter une question
ou de faire apparaître une question supplémentaire en fonction de la réponse à une
question précédente. Vous trouverez ci-dessous un exemple de la façon de
procéder en ajoutant une colonne pertinente pour une question select_one , en
utilisant notre exemple de garniture de pizza d'avant :

23
taper nom étiqueter pertinent

Aimes-tu la
select_one oui_non aime_pizza
pizza?
select_multiple Garnitures ${aime_pizza} =
favorite_topping
pizza_toppings or_other préférées 'oui'
enquêteles choixparamètres
Dans cet exemple, on demande au répondant : « Aimez-vous la pizza ? » Si la
réponse est oui , la question sur la garniture de pizza apparaît ci-dessous. Notez
le ${ }autour de la variable likes_pizza . Celles-ci sont nécessaires pour que le
formulaire fasse référence à la variable de la question précédente.
Dans l'exemple suivant, ci-dessous, nous utilisons une syntaxe pertinente pour
une question select_multiple , qui est légèrement différente de l' exemple de
question select_one ci-dessus.

taper nom étiqueter pertinent

select_one Aimes-tu
aime_pizza
oui_non la pizza?
select_multipl
Garniture
e favorite_toppin
s ${aime_pizza} = 'oui'
pizza_topping g
préférées
s or_other
Quel est
votre type
sélectionné(${favorite_topping
texte fromage_favori de
}, 'fromage')
fromage
préféré ?
enquêteles choixparamètres

24
liste de noms nom étiqueter

garnitures de pizza fromage Fromage


garnitures de pizza pepperoni Pepperoni
garnitures de pizza saucisse Saucisse
enquêteles choixparamètres
Étant donné que la question sur la garniture de pizza permet des réponses
multiples, nous devons utiliser l' selected(${favorite_topping},
'cheese')expression, car nous voulons que la question sur le fromage apparaisse
chaque fois que l'utilisateur sélectionne le fromage comme l'une des réponses
(que des réponses supplémentaires soient sélectionnées ou non).
Nous avons mentionné précédemment qu'il existait une méthode alternative pour
spécifier autre pour les questions à choix multiples, qui est plus appropriée pour
les enquêtes à grande échelle. Cela peut être fait en utilisant la même syntaxe
pertinente de l'exemple ci-dessus :

étiquet
taper nom pertinent
er

Quelles
sont vos
select_multi
garnitur
ple
garnitures_favorites es de
pizza_toppin
pizza
gs
préférée
s?
favorite_toppings_ot Précisez sélectionné(${favorite_toppi
texte
her autre : ngs}, 'autre')
enquêteles choixparamètres

25
liste de noms nom étiqueter

garnitures de pizza fromage Fromage


garnitures de pizza pepperoni Pepperoni
garnitures de pizza saucisse Saucisse
garnitures de pizza autre Autre
enquêteles choixparamètres
Notez que vous devez inclure autre comme choix de réponse dans la feuille de
calcul des choix .
Calcul
Votre enquête peut effectuer des calculs en utilisant les valeurs des questions
précédentes. Dans la plupart des cas, l'utilisation d'une question de type calcul est
appropriée. Par exemple, dans l'enquête ci-dessous, nous avons calculé le
pourboire pour un repas et l'avons affiché à l'utilisateur :

taper nom étiqueter calcul

décimal montant Quel était le prix du repas ?


${montant} *
calculer conseil
0,18
18 % de pourboire pour votre
note afficher
repas : ${tip}
enquêteles choixparamètres
Notez que le ${tip} dans la dernière ligne sera remplacé par le montant réel du
pourboire lors de la visualisation et du remplissage du formulaire.
Le type de calcul calcule du texte , mais des calculs peuvent également être
ajoutés à tout autre type de question. Les types non textuels peuvent être utiles
pour l'analyse des données, par exemple si une date ou une date-heure est

26
calculée. Si aucune étiquette et aucun indice ne sont inclus, le calcul sera
masqué. Voir exemple ci-dessous qui est l'équivalent du formulaire précédent :

taper nom étiqueter indice calcul

décimal montant Quel était le prix du repas ?


${montant} *
texte conseil
0,18
18 % de pourboire pour votre
note afficher
repas : ${tip}
enquêteles choixparamètres
Et ceci est un exemple lorsqu'un type non textuel est nécessaire en raison
d'exigences d'analyse de données :

taper nom étiqueter indice calcul

date jour aujourd'hui()


enquêteles choixparamètres
Notez que l'utilisation de types de calcul non textuels n'a aucun effet sur
l'utilisation du résultat du calcul dans le formulaire lui-même. C'est un
malentendu courant.
Si une étiquette ou un indice est inclus, la question sera visible sur le formulaire
et la valeur calculée sera affichée dans le champ de saisie ou le widget. Ceci n'est
généralement recommandé que pour les questions en lecture seule afin d'éviter
de recalculer (effacer) une valeur saisie par l'utilisateur. Voir exemple ci-dessous :

lecture
taper nom étiqueter calcul
seulement

Quel était le prix du


décimal montant
repas ?

27
lecture
taper nom étiqueter calcul
seulement

18 % de pourboire ${montant} *
note afficher
pour votre repas : 0,18
La date d'aujourd'hui
date aujourd'hui vrai aujourd'hui()
est:
enquêteles choixparamètres
Notez que la différence avec le premier formulaire de cette section est la façon
dont la valeur de pourboire calculée est affichée. Dans le premier exemple, il était
affiché dans l'étiquette et dans le dernier exemple, il est affiché dans un champ de
saisie en lecture seule.
Déclencher
Une colonne de déclenchement peut être utilisée pour exécuter un calcul
uniquement lorsqu'une autre question visible dans le formulaire change . Cela
signifie que la question qui sert de déclencheur doit avoir une étiquette ou un
indice (sinon elle sera masquée). Voir un exemple simple mais très utile ci-
dessous :

taper nom étiqueter calcul déclencher

Entrez la température
entier temp
actuelle
dateHeure temp_ts maintenant() ${temp}
enquêteles choixparamètres
Cela calculera un horodatage immédiatement après qu'un répondant a entré une
température. Si l'utilisateur revient en arrière et modifie la température,
l'horodatage sera recalculé.
Toutes les fonctionnalités de calcul standard s'appliquent également à ces calculs
spéciaux déclenchés par un changement de valeur. Ainsi, vous pouvez par

28
exemple utiliser une étiquette ou un indice pour afficher la question de calcul sur
le formulaire à l'utilisateur.
Plusieurs questions peuvent avoir le même déclencheur. Voir cet exemple, où
deux calculs sont déclenchés par la question de la température (l'un est masqué et
l'autre est affiché) :

lecture
taper nom étiqueter calcul déclencher
seulement

Entrer la
entier temp température
en Celsius
dateHeure temp_ts maintenant() ${temp}
Température
32 + 1,8 *
texte temp_F en ${temp} vrai
${temp}
Fahrenheit
273,15
calculer temp_K ${temp}
+ ${temp}
enquêteles choixparamètres
Dans le formulaire ci-dessus, la question temp_F est présentée à l'utilisateur et la
question temp_K est masquée, comme elles le seraient si le déclencheur n'était
pas utilisé.
Une différence importante et puissante avec les calculs réguliers est que la valeur
de calcul avec un déclencheur peut également être vide , ce qui sert à effacer
une valeur du formulaire. Voir exemple ci-dessous :

taper nom étiqueter calcul déclencher

Comment s'appelle la personne la plus


texte nom
âgée ici ?

29
taper nom étiqueter calcul déclencher

entier âge Quel âge a cette personne ? ${nom}


enquêteles choixparamètres
Si le répondant utilisant ce formulaire a saisi le nom et l'âge de la personne A et
découvre par la suite qu'il y a une personne plus âgée B, le champ de l'âge sera
effacé dès que le nom de la personne B aura été saisi.
Requis
Il est simple de marquer certaines questions comme requis dans votre
formulaire. Les marquer comme requis signifie que l'utilisateur ne pourra pas
passer à la question suivante ou soumettre le formulaire sans entrer une réponse à
cette question.
Pour rendre les questions obligatoires, ajoutez une colonne obligatoire à votre
feuille de calcul d'enquête. Sous cette colonne, marquez les questions comme
requis en écrivant oui . Voir l'exemple ci-dessous :

taper nom étiqueter contrainte requis

entier âge Quel âge as-tu? . <= 150 Oui


enquêteles choixparamètres
Message requis
Si vous souhaitez personnaliser le message affiché aux utilisateurs lorsqu'ils
laissent une question obligatoire vide, vous pouvez ajouter une
colonne required_message à votre formulaire. Voir l'exemple ci-dessous.

taper nom étiqueter requis message_requis

Âge du Désolé, cette réponse est


entier âge_intimé Oui
répondant obligatoire.
enquêteles choixparamètres
Choix aléatoires

30
Pour tout type de question qui affiche une liste de choix , l'ordre des choix affichés
à l'utilisateur peut être randomisé avec la colonne des paramètres . Voir ci-
dessous:

taper paramètres nom étiqueter

garnitures select_one randomiser=vrai haut Préféré?


enquêteles choixparamètres
Pour une randomisation reproductible, une graine peut être explicitement fournie
comme indiqué ci-dessous. Pour en savoir plus sur l'algorithme de randomisation
utilisé, voir ici .

taper paramètres nom étiqueter calcul

Dakota une fois(décimal-date-


calculer
du Sud heure(maintenant()))
garnitures randomize=true,
haut Préféré?
select_one graine=${sd}
enquêteles choixparamètres
Notez qu'il once()est utilisé pour empêcher la re-randomisation, par exemple
lorsqu'un brouillon d'enregistrement est chargé pour modification.
Regrouper les questions
Pour créer un groupe de questions dans votre formulaire, essayez ce qui suit :

taper nom étiqueter

commencer le
intimé Intimé
groupe
texte nom Entrez le nom du répondant
Entrez la position du répondant au sein de
texte position
l'école.

31
taper nom étiqueter

groupe final
enquêteles choixparamètres
C'est un bon moyen de regrouper les questions connexes pour l'exportation et
l'analyse des données. Remarquez que le groupe final ne nécessite pas de nom ou
d'étiquette, car il est masqué dans le formulaire.
Imbriquer des groupes dans des groupes
Les groupes de questions peuvent être imbriqués les uns dans les autres :

taper nom étiqueter

commencer le
hôpital Hôpital
groupe
texte nom Quel est le nom de cet hôpital ?
commencer le
médicament_vih Médicaments contre le VIH
groupe
select_one Cet hôpital a-t-il des médicaments
avoir_médicament_vih
oui_non contre le VIH ?
groupe final
groupe final
enquêteles choixparamètres
Vous devez toujours mettre fin au groupe le plus récent qui a été créé en
premier. Par exemple, le premier groupe de fin que vous voyez ferme le groupe
de médicaments contre le VIH et le second ferme le groupe d'hôpital de
début. Lorsque vous travaillez avec des groupes et que vous continuez à recevoir
des messages d'erreur lorsque vous essayez de télécharger votre formulaire,
vérifiez que pour chaque groupe de début , vous avez un groupe de fin .
Saut

32
Une fonctionnalité intéressante de XLSForm est la possibilité d'ignorer un groupe
de questions en combinant la fonctionnalité de groupe avec une syntaxe
pertinente. Si vous souhaitez ignorer un groupe de questions en une seule fois,
placez l'attribut pertinent au début d'un groupe comme suit :

taper nom étiqueter pertinent

entier âge Quel âge as-tu?


commencer le ${âge} <=
enfant Enfant
groupe 5
Enregistrez la circonférence à mi-
entier muac
hauteur du bras de cet enfant.
select_one Le test de diagnostic rapide de l'enfant
mrdt
oui_non est-il positif ?
groupe final
enquêteles choixparamètres
Dans cet exemple, les deux questions du groupe d'enfants ( muac et mrdt )
n'apparaîtront que si l' âge de l'enfant à la première question est inférieur ou égal
à cinq ans.
Répétitions
Un utilisateur peut répéter des questions en utilisant la construction begin
repeat et end repeat :

taper nom étiqueter

commencer à répéter enfant_repeat


texte nom Nom de l'enfant
décimal Poids à la naissance Poids de naissance de l'enfant
select_one male_female sexe Sexe de l'enfant
terminer la répétition

33
taper nom étiqueter

enquêteles choixparamètres

liste de noms nom étiqueter

homme Femme homme Homme


homme Femme femme Femme
enquêteles choixparamètres
Dans cet exemple, les champs name , birthweight et sex sont regroupés dans une
répétition, et l'utilisateur peut collecter les mêmes informations sur plusieurs
enfants en sélectionnant l'option dans le formulaire pour ajouter une autre
répétition.
La colonne label est facultative pour begin repeat . L'attribution d'une étiquette
à une répétition ajoutera l'étiquette en tant que titre au bloc de questions répétées
dans le formulaire.
When a repeat is shown in a table of contents, the label used to represent each
repeat is the label of the first group inside that repeat. In the example below, if a
repeat is filled out with
values Preity for first_name, Zinta for last_name and 71 for age, that repeat will
be summarized as "Preity Zinta - 71":

type name label

begin repeat person_repeat


begin group person ${first_name} ${last_name} - ${age}
text first_name First name
text last_name Last name
integer age Age
end group

34
type name label

end repeat
surveychoicessettings
The Delivery Outcome XLSForm is another repeat example.

Fixed repeat counts

Instead of allowing an infinite number of repeats, the form designer can specify
an exact number of repeats by using the repeat_count column:

type name label repeat_count

begin repeat child_repeat 3


text name Child's name
decimal birthweight Child's birthweight
end repeat
surveychoicessettings
In the above example, exactly 3 child repeats will be created.

Dynamic repeat counts

The repeat count can be set to an expression that refers to other fields in the form.
In the example below, the number that the user inputs for
the num_hh_members field dictates the number of hh_member repeats added:

type name label repeat_count

Number of household
integer num_hh_members
members?

35
type name label repeat_count

begin
hh_member ${num_hh_members}
repeat
text name Name
integer age Age
end
repeat
surveychoicessettings

Only add repeats in certain conditions

Like with groups, all of the questions in a repeat can be skipped based on some
condition. In the example below, the person filling out the form will only be given
the opportunity to add children if they first indicate that there are children to add:

type name label relevant

select_one Do any children live


has_child
yes_no here?
${has_child} =
begin repeat child_repeat
'yes'
text name Child's name
decimal birthweight Child's birthweight
end repeat
surveychoicessettings

list_name name label

yes_no yes Yes

36
list_name name label

yes_no no No
surveychoicessettings

Representing zero repeats

By default, the person filling the form will see the questions corresponding to one
repeat before getting the option to add more. To represent 0 repeats, there are three
options:

 teach the people filling out the form to delete the first repeat added
 if the exact number of repeats is known ahead of time, use a dynamic repeat count
 if the exact number of repeats is not known ahead of time, use relevant to only
prompt the user for repeats if there are some to add

Multiple language support

It’s easy to add multiple languages to a form. You simply have to name
your label::language1 (code), label::language2 (code), etc., and your forms will
be available in multiple languages. See the example below. Select a different form
language from the pulldown menu of data collection application (this may be
located under the Menu key). For the form below, English and Español will show
up as the possible options.

type name label::English (en) label::Español (es) constraint

integer age Quel âge as-tu? Quel âge as-tu? . <= 150
enquêteles choixparamètres
Vous pouvez également ajouter différentes colonnes de langue pour les astuces et
les fichiers multimédias en utilisant la même ::language (code)construction,

37
comme illustré dans l'exemple ci-dessous. Voir aussi la table de référence
XLSForm , qui comprend une liste de tous les en-têtes de colonne pouvant
accepter une modification de langue.

indice
indice::Néerlanda image::Néerlanda
::Anglai image ::Anglais (fr)
is (nl) is (nl)
s (fr)

un old_person_cartoon.p
un indice ouwe_strip.png
soupçon ng
enquêteles choixparamètres
Form language and user interface language may be the determined separately by
the application and may not match. To facilitate matching both (in the future), it
is recommended, though optional, to add a 2-character language code after the
language name. The official 2-character language codes, called subtags are
published here (search the page with Ctrl-F or Cmd-F).

Media

You can include questions in your form that display images or that play video or
audio files. If using the ODK mobile client for form submission, you need to put
the media files that you want to include in the /odk/forms/formname-
media folder on your phone, and then reference the exact file name in
the media column in your form. See below for an example of how to do this.

type name label image video

note media_example Media example example.jpg example.mp4


surveychoicessettings
Check out the Birds XLSForm which illustrates the use of media files. You can
also click on the link to see the Birds webform .

38
Media is translatable in the same way as labels and hints as explained in
the languages section.

Pre-loading CSV data

Pre-loading data is done when one wants to reference pre-existing data in a survey
form. You can be able to reference data in your survey form (the survey you are
now authoring), from a pre- existing data in a specific survey form or any other
source. For example if you have pre-existing data from a household survey and
you want to collect follow-up data about the household occupants. You can be
able to reference the household survey data in your survey form. To reference pre-
existing data in a survey form:

 Upload one or more .csv files as support files when you upload your form
definition (the same way you upload media support files as explained in
the Media section).The first row of each .csv file should be a header that includes
short:
o unique names for each column
o subsequent rows which should contain the data itself
Each csv file should contain at least one column that can be used to uniquely
identify each row. Such columns will be used, at survey time, to look up which
row's data to pull into the survey. For the columns that will be used for looking
up rows add _key to the end of the column name in the first row. Any columns
with names ending in _key will be indexed for faster look-ups on your survey
devices. See below an example of the columns on a .csv file:

name_key name

mango Mango
orange Orange

39
How to pull data from CSV

You can be able to pull data from .csv file by including one or more .csv files in
your form during the survey time. For each data field that you want to pull into
your survey:

 Add a calculate field to your survey.


 Give that field a name
 Then in its calculation column, call the pulldata() function, indicating which
field to pull from which row of which .csv file.

See below for an example:

type name label calculation

pulldata('fruits', 'name',
calculate fruit
'name_key', 'mango')
The fruit ${fruit}
note note_fruit
pulled from csv.
surveychoicessettings
Once you have loaded .csv data into a survey field using the pulldata() function,
you can reference that field in later relevance conditions, constraints, and labels,
just as you would reference any other field that was filled in by the user.
Click on the link to see an example of a pre-loading sample form and the .csv file
used with form can be found here
Important notes on usage of pre-loaded data
 Compress a large .csv file into a .zip archive before uploading it.
 Save .csv file in UTF-8 format if pre-loaded data contains non-English fonts or
special characters this enables your Android device to render the text correctly.

40
 Data fields pulled from a .csv file are considered to be text strings therefore use
the int() or number() functions to convert a pre-loaded field into numeric form.
 If the .csv file contains sensitive data that you may not want to upload to the
server, upload a blank .csv file as part of your form, then replace it with the real
.csv file by hand-copying the file onto each of your devices.

Dynamic selects from pre-loaded data

If the recommended methods described in Multiple Choice from File do not meet
your requirements you can consider the method below if your data collection
application supports it.
Once your form has one or more pre-loaded .csv files, you can dynamically pull
the choice lists for select_one and select_multiple fields from those .csv files.
Multiple-choice fields with dynamic choice lists follow the same general syntax
as regular, static select_one and select_multiple fields as previously covered in
the Multiple choice questions section.

The following should be done:

 specify select_one listname or select_multiple listname in the type column


(where listname is the name of your choice list)
 specify any special appearance styles in the appearance column
 include one or more rows for your listname on the choices worksheet.
Below is an example of the survey worksheet:

type name label appearance

select_one fruits fruits Select a fruit search('fruits')


surveychoicessettings

There are three differences when the choice list should be pulled from one of your
pre-loaded .csv files:
41
 In the appearance column:
 Include a search() expression that specifies which .csv rows to include in the
choice list.
 If the field should use a non-default appearance style. The non-default appearance
style goes into the column first, followed by a space, then the search()
expression. [e.g., quick search()]
 On the choices worksheet:
 a row should indicate which .csv columns to use for the label and selected value.
As follows:
o list_name column: specify the name of your choice list as you normally would.
o name column: include the name of the .csv column to use for uniquely identifying
selected choices.
o label column: include the name of the .csv column to use for labeling the choices.
Note:
If you wish to include multiple columns in the labels, include a comma-separated
list of all columns to include. The name column will be dynamically populated
based on the column name you put there, and the label column will be dynamically
populated based on the column name(s) you put there.
 In your choices worksheet row, you may also include a .csv column name in the
image column. If you do, the image filename to use will be pulled from the
specified .csv column.
Note:
If you refer to image files in this way, you must always upload those image files
as media file attachments when you upload your form to the server.
See below an example of the choices worksheet:

list name name label

fruits name_key name


surveychoicessettings

42
Cliquez sur le lien pour voir un exemple d'exemple de formulaire de recherche et
de sélection et le fichier .csv utilisé avec le formulaire peut être trouvé ici .
Il existe une série d'options pour indiquer les lignes .csv à inclure dans la liste de
choix à l'aide de l' expression search() , consultez cet article pour plus
d'informations sur ces expressions search().
Sélections en cascade
De nombreux formulaires commencent par demander l'emplacement du
répondant, chaque sélection d'emplacement spécifiant quels seront les choix
d'emplacement ultérieurs (par exemple, État » district » village). Au lieu d'ajouter
un champ select_one pour chaque option d'emplacement, vous pouvez utiliser la
sélection en cascade. Pour utiliser les sélections en cascade, vous devrez créer une
colonne choice_filter dans votre feuille de calcul d'enquête et ajouter les colonnes
d'attributs d'emplacement dans votre feuille de calcul de choix. Découvrez un
exemple XLSForm ici .
Sélections externes
Si un formulaire comporte des sélections avec un grand nombre de choix (par
exemple, des centaines ou des milliers), ce formulaire peut ralentir le chargement
et la navigation du formulaire si Multiple Choice from File est utilisé. La
meilleure solution à ce problème consiste à utiliser des sélections externes dans
les applications de collecte de données (telles que ODK Collect) qui le prennent
en charge.
L'activation des sélections externes est simple.
 Au lieu de select_one pour le type d'invite, utilisez select_one_external .
 Au lieu de la feuille de choix , placez les choix externes dans la
feuille external_choices .
Voir le formulaire select_one_external pour un exemple qui utilise des choix
normaux et externes.

43
Lorsqu'un XLSForm avec des choix externes est converti en un XForm, deux
fichiers seront produits, le XForm (par exemple, form-filename.xml) avec tous
les choix normaux, et un itemsets.csv avec les choix externes.
Le fichier itemsets.csv peut être téléchargé sur n'importe quel serveur compatible
ODK (par exemple, ODK Aggregate) en tant que fichier multimédia. Il sera
téléchargé sur n'importe quel fichier compatible ODK (par exemple, ODK
Collect) comme tout autre fichier multimédia et enregistré dans le dossier [form-
filename]-media. Des clients comme ODK Collect chargent des fichiers
multimédias à partir de la carte SD et ainsi votre formulaire avec un grand nombre
de choix se chargera désormais très rapidement.
Défaut
L'ajout d'un champ par défaut signifie qu'une question sera préremplie avec une
réponse lorsque l'utilisateur verra la question pour la première fois. Cela peut aider
à gagner du temps si la réponse est celle qui est couramment sélectionnée ou cela
peut servir à montrer à l'utilisateur quel type de choix de réponse est attendu. Voir
l'exemple ci-dessous.

taper nom étiqueter défaut

date date_enquête Date de l'enquête ? 2010-06-15


décimal lester Poids du répondant ? (en kg) 51.3
enquêteles choixparamètres
Le répondant peut simplement modifier la réponse en tapant dans le champ de
réponse et en saisissant une autre réponse.
Vous pouvez également ajouter un calcul par défaut, qui ne sera calculé qu'une
seule fois lors du chargement du formulaire ou - si la question est à l'intérieur
d'une répétition - lorsque la répétition est ajoutée.

44
taper nom étiqueter défaut

Entrez la date à laquelle l'événement s'est


date d aujourd'hui()
produit ?
enquêteles choixparamètres
Lecture seulement
L'ajout d'un champ en lecture seule signifie qu'une question ne peut pas être
modifiée. Les champs en lecture seule peuvent être combinés avec des champs
par défaut pour fournir des informations à un utilisateur.

taper nom étiqueter lecture seulement défaut

entier nombre S'il vous plaît patient est: Oui 5


enquêteles choixparamètres
Apparence
La colonne d'apparence vous permet de modifier l'apparence des questions dans
votre formulaire. Le tableau suivant répertorie les attributs d'apparence possibles
et la façon dont la question apparaît dans le formulaire.

Attribut
Type de question Description
d'apparence

Idéal si utilisé avec des clients Web,


multiligne texte rend la zone de texte longue de
plusieurs lignes.
select_one, Les choix de réponse apparaissent
minimal
select_multiple dans un menu déroulant.
Uniquement pertinent pour les clients
rapide select_one mobiles, cet attribut fait passer
automatiquement le formulaire à la

45
Attribut
Type de question Description
d'apparence

question suivante une fois qu'une


réponse a été sélectionnée.
Pour les appareils mobiles
sans
date uniquement, utilisé pour supprimer le
calendrier
calendrier.
Sélectionnez un mois et une année
mois année date
uniquement pour la date.
Sélectionnez seulement une année
année date
pour la date.
Pour les clients Web uniquement, cela
horizontal- select_one,
affiche les choix de réponse
compact select_multiple
horizontalement.
Pour les clients Web uniquement, cela
select_one,
horizontal affiche les choix de réponse
select_multiple
horizontalement, mais en colonnes.
Idéal s'il est utilisé avec des clients
Web, les choix de réponse
aimer select_one
apparaissent sous la forme d'une
échelle de Likert.
Affiche les choix de réponse côte à
côte avec un remplissage minimal et
select_one,
compact sans boutons radio ni cases à
select_multiple
cocher. Particulièrement utile avec les
choix d'images.

46
Attribut
Type de question Description
d'apparence

Identique à la précédente, mais passe


compact automatiquement à la question
select_one
rapide suivante (dans les clients mobiles
uniquement).
L'ensemble du groupe de questions
liste de champ groupes apparaît sur un seul écran (pour les
clients mobiles uniquement).
select_one, Affiche les étiquettes de choix de
étiqueter
select_multiple réponse (et non les entrées).
Utilisé conjointement avec
l'attribut label ci-dessus, affiche les
entrées de réponse sans les étiquettes
liste- select_one,
(assurez-vous de placer les
sansétiquette select_multiple
champs label et list-nolabel dans un
groupe avec l'attribut field-list si vous
utilisez un client mobile).
Un moyen plus simple d'obtenir la
même apparence que ci-dessus
consiste à appliquer cet attribut à
table-liste groupes
l'ensemble du groupe de questions
(cela pourrait ralentir un peu le
formulaire).
Vous permet de tracer votre signature
signature image dans votre formulaire (clients mobiles
uniquement).

47
Attribut
Type de question Description
d'apparence

Vous permet de dessiner un dessin


dessiner image avec votre doigt sur l'écran de
l'appareil mobile.
Permet à un utilisateur de sélectionner
carte, carte select_one,
un choix parmi de nombreuses
rapide select_one_from_file
fonctionnalités sur une carte
Un XLSForm avec tous les attributs d'apparence de ce tableau est disponible ici .
Feuille de calcul des paramètres
La feuille de calcul des paramètres est facultative, mais il est fortement
recommandé de spécifier au minimum form_title , form_id et version . D'autres
paramètres vous permettent de personnaliser davantage votre formulaire,
notamment la définition d'un thème de style général ou le cryptage de vos
enregistrements.
Un exemple de feuille de calcul de paramètres est ci-dessous :

langag
form_titl form_i nom de Clé
version e par
e d l'instance publique
défaut

201702150 concat(${prénom Anglais IIBIjANBg


Exemple ex_id
1 }, ' ', ${nom}) (fr) …
enquêteles choixparamètres
Les en-têtes de colonne de paramètres disponibles sont :
 form_title : Le titre du formulaire qui est montré aux utilisateurs. Le titre du
formulaire est extrait de form_id si form_title est vide ou manquant.

48
 form_id : Le nom utilisé pour identifier de manière unique le formulaire sur le
serveur. L'ID du formulaire est extrait du nom du fichier XLS si form_id est vide
ou manquant.
 version : chaîne qui représente cette version. Une convention courante consiste à
utiliser des chaînes de la forme 'aaaammjjrr'. Par exemple, 2017021501 est la 1ère
révision du 15 février 2017.
 instance_name : expression utilisant des champs de formulaire à identifier pour
chaque soumission de formulaire. En savoir plus .
 default_language : Dans les formulaires localisés, cela définit la langue à utiliser
par défaut. Le même format que celui décrit pour l'ajout de traductions doit être
utilisé, y compris le code de langue.
 public_key : pour les formulaires activés par le chiffrement, c'est là que la clé
publique est copiée et collée. En savoir plus .
 submit_url : cette URL peut être utilisée pour remplacer le serveur par défaut
auquel les enregistrements finalisés sont soumis. En savoir plus .
 style : pour les formulaires Web, spécifiez le style du formulaire. En savoir plus .
 name : nom du noeud racine XForms. Ceci est rarement nécessaire, en savoir
plus .
Formulaires cryptés
Les formulaires activés par le chiffrement fournissent un mécanisme pour garder
les enregistrements finalisés privés à tout moment. Cela inclut le temps après
qu'un enregistrement est marqué comme final qu'il est stocké sur l'appareil et le
serveur ainsi que pendant le transport, même lorsque http est utilisé pour la
communication. Les enregistrements cryptés, y compris leurs fichiers téléchargés,
tels que les photos, sont totalement inaccessibles à toute personne ne possédant
pas la clé privée.
Pour chiffrer les formulaires XLS, ajoutez la colonne public_key à la feuille
de calcul des paramètres et collez la clé RSA publique encodée en base64
comme valeur.

49
form_i
Clé publique
d

monenq IIBIjANBgklawWEserewrwesgdreewrwe32serfserpeuwrwerewtwe
uête r23sgfrqjwerk3423432…
enquêteles choixparamètres
Pour plus d'informations sur les formulaires cryptés et sur la manière de générer
les clés RSA, consultez la documentation ODK et cet exemple de formulaire .
Spécifiez un autre serveur
Il est possible de spécifier un autre serveur auquel envoyer vos soumissions dans
la colonne submit_url de la feuille de calcul des paramètres . Assurez-vous
d'utiliser l'URL complète à laquelle les soumissions doivent être envoyées, y
compris le chemin .
Si cette colonne est omise ou laissée vide, les soumissions iront à la destination
par défaut du fournisseur que vous utilisez pour vos sondages.
Spécifiez le nom de soumission du formulaire
Dans la feuille de calcul des paramètres , vous pouvez spécifier un nom unique
pour chaque soumission de formulaire à l'aide des champs remplis par l'utilisateur
lors de l'enquête. Sur la feuille de calcul des paramètres, ajoutez une colonne
appelée instance_name . Écrivez l'expression qui définit le nom d'instance de
formulaire unique à l'aide des champs de la feuille de calcul de l'enquête.
Découvrez cet exemple XLSForm qui calcule le nom de l'instance en tant que
nom et prénom de l'utilisateur couplé à l'uuid de soumission du formulaire.
Spécifiez le nom du nœud racine XForms
Dans de rares cas, il peut être utile de spécifier explicitement un nom de nœud
racine pour le XForm généré. Par exemple, cela peut être nécessaire si vous mettez
à jour un formulaire qui a été converti avec un ancien convertisseur de formulaire
qui utilisait un nom de nœud racine autre que data. Dans la feuille de calcul des
paramètres , vous pouvez spécifier un identifiant à utiliser pour le nom du nœud

50
racine XForms en ajoutant une colonne appelée name . Par défaut, le nom du
nœud racine XForms est data.
Plusieurs formulaires de page Web
Les formulaires Web peuvent être divisés en plusieurs pages à l'aide des pages de
thème de style .
Un exemple de formulaire divisé en plusieurs pages peut être consulté sur le
formulaire Web Widgets sur les pages .
Dans l' onglet Paramètres , créez une colonne appelée style et définissez-la
sur pages , comme suit :

form_title form_id style

exemple de titre example_id pages


enquêteles choixparamètres
Dans votre onglet d'enquête , regroupez les questions que vous souhaitez voir
apparaître sur chaque page, puis définissez l'apparence du groupe sur field-
list . Voir l'exemple ci-dessous.

taper nom étiqueter apparence

taper nom étiqueter apparence


commencer le groupe groupe 1 liste de champ
texte nom Nom du répondant
entier âge Âge du répondant
texte adresse Adresse du répondant
groupe final
enquêteles choixparamètres
Consultez cet article de blog pour plus d'informations sur la création de
formulaires Web multipages. La source XLSForm est ici .
Formulaires de thème de grille

51
Le style de grille thématique permet à votre formulaire d'imiter l'apparence des
enquêtes papier traditionnelles en compactant plusieurs questions sur une seule
ligne. Ce style est mieux utilisé avec des écrans plus grands (par exemple, des
ordinateurs ou des tablettes). Il fait également une belle impression!
Veuillez cliquer sur le lien pour voir un exemple de formulaire Web sur le thème
Grid .
Pour créer un formulaire Grid, dans l' onglet settings , sous la colonne style ,
écrivez theme-grid , comme suit :

form_title form_id style

exemple de titre example_id grille thématique


enquêteles choixparamètres
Dans votre onglet sondage , regroupez les questions que vous souhaitez voir
apparaître dans chaque section puis définissez l'apparence de chaque champ en
fonction de la largeur souhaitée (la largeur par défaut est de 4). Voir l'exemple ci-
dessous.

taper nom étiqueter apparence

commencer le groupe groupe 1


texte nom Nom du répondant w3
entier âge Âge du répondant w1
texte adresse Adresse du répondant w4
groupe final
enquêteles choixparamètres
Consultez cet article de blog pour plus d'informations sur la création de
formulaires Grid. L' exemple XLSForm du thème Grille est ici .
Invites de style

52
La prise en charge de Markdown dans XLSForm permet de mettre davantage
l'accent sur le gras et l'italique, des en-têtes de différentes tailles, diverses polices
et couleurs et des liens Web cliquables dans ODK Collect 1.4.9 et Enketo.
 souligner les mots en les enveloppant à l'intérieur _ou*
 accentuez fortement les mots en les enveloppant à l'intérieur __ou**
 ajouter un lien en utilisant[name of link](url)
 ajoutez des en-têtes de différentes tailles en ajoutant # ( le plus grand ) à ######
( le plus petit ) au texte de l'en-tête
 texte de style pour la couleur ou la police avec des balises span (par
exemple, <span style="color:#f58a1f">orange</span> , <span style="color:red;
font-family:cursive">rouge et cursive</span> )
 ajoutez un saut de ligne où vous le souhaitez avec Ctrl-Entrée ou Ctrl-Alt-Entrée
(peut être une combinaison de touches différente pour certains tableurs)
 ajoutez vos emojis préférés 😍📋😍 !
 utiliser un exposant avec la <sup>balise (par exemple, 100 m<sup>2</sup>se
transforme en 100 m 2 )
 utiliser l'indice avec la <sub>balise (par exemple H<sub>2</sub>O, se
transforme en H 2 O)
 utilisez le \caractère avant #, *, _, et \pour éviter que des effets de style spéciaux
ne soient déclenchés par ces caractères
Utilisation avancée et extensibilité
Il est possible d'utiliser XLSForm pour créer des XForms avec des fonctionnalités
personnalisées ou expérimentales. C'est idéal pour les applications personnalisées
avec une fonctionnalité spécifique qui ne convient pas à la communauté plus
large.
La feuille d'enquête prend en charge 3 préfixes de colonne ( instance :: , bind
:: , body :: ) qui ajoutent des attributs à la sortie XForm, que ce soit dans
l' instance principale , bind ou form control . Pour en savoir plus sur XForms,

53
consultez la spécification ODK XForms . L'exemple ci-dessous ajoute un attribut
"hxl" personnalisé au nœud d'instance principal d'une question.

taper nom étiqueter instance ::hxl

entier population Combien de personnes présentes ? #population


enquêteles choixparamètres
La feuille de paramètres prend en charge la définition (séparés par plusieurs
espaces) d'espaces de noms personnalisés supplémentaires et de préfixes d'espace
de noms à l'aide de la colonne des espaces de noms . Vous pourrez ensuite utiliser
ces espaces de noms dans la feuille d'enquête, par exemple pour définir
correctement un attribut personnalisé avec le propre espace de noms de votre
organisation . Voir l'exemple ci-dessous qui ajoute 2 espaces de noms
supplémentaires et les utilise pour ajouter des attributs personnalisés :

titre espaces de noms

Mon formulaire esri="http://esri.com/xforms" enk="http://enketo.org/xforms


enquêteles choixparamètres

lier ::
taper nom étiqueter bind::esri:fieldLength
enk: pour

texte desc Décrire 50


texte desc_comment commentaires ${a}
enquêteles choixparamètres
Outils prenant en charge XLSForms
 Sur un
 Encéto
 ODK
 KoBoToolBox
 CommCare

54
 SondageCTO
 DataWinners
 Kit de données sécurisé (SDK)
 Tattara
 Survey123 pour ArcGIS
 Boîte à outils de santé communautaire
Davantage de ressources
Le document standard XLSform peut vous guider à travers les types d'entrée
spécifiques, les en-têtes de colonne, etc. qui sont une syntaxe légitime dans
XLSForms. Si vous souhaitez approfondir votre compréhension de XForms et
aller au-delà de XLSForms, voici quelques ressources pour les comprendre :
 XForms pris en charge par l'écosystème ODK
 Consignes de conception des formulaires ODK
 Présentation de la conception du formulaire Ona
 Centre d'aide à la conception de formulaires KoBoToolbox
À propos de ce site
XLSForm.org est un projet soutenu par la communauté visant à créer un point de
référence commun pour la norme XLSForm.
Si vous souhaitez contribuer ou améliorer cette documentation, veuillez visiter le
référentiel GitHub de notre projet .
Histoire
Le XLSForm a été développé à l'origine par Andrew Marder et Alex Dorey
du Sustainable Engineering Lab de l'Université de Columbia . Lorsque XLSForms
a été adopté par la communauté ODK, SEL a travaillé avec l'équipe ODK pour
développer la spécification actuelle. PyXForm , la bibliothèque utilisée pour
convertir XLSForms en XForms, est un projet open source pris en charge par les
membres d'ODK, SEL, Ona, SurveyCTO et KoBoToolbox.
XLSForm.org
 XLSForm.org

55
 info@xlsform.org

Ce site vous aidera à créer des XLSForms. XLSForm est un outil utilisé pour
simplifier la création de formulaires. XLSForm convertira les formulaires créés dans
Excel en XForms pouvant être utilisés avec un certain nombre de plates-formes Web
ou mobiles.

56

Vous aimerez peut-être aussi