Académique Documents
Professionnel Documents
Culture Documents
PROGRAMMATION DE
FORMULAIRE XLSFORMS
Cahier de participant.e.s
Le XLSForm est ensuite converti en XForm, une norme de formulaire ouverte très populaire qui
vous permet de créer un formulaire avec des fonctionnalités complexes, comme la logiquede saut,
de manière cohérente sur un certain nombre de plateformes de collecte de données Web et mobiles.
Les XLSForms sont compatibles avec le sous-ensemble de fonctionnalités XForm prises en charge
par le projet Javarosa. Les formulaires XLSForm sont pris en charge par un certain nombre de
plateformes de collecte de données populaires.
3
I. Format de base
Chaque classeur Excel comporte généralement deux feuilles de travail : « survey » et « choices ».
Une troisième feuille de calcul facultative, appelée « setting », peut ajouter des spécifications
supplémentaires à votre formulaire. Elle est décrite ci-dessous.
Ces deux feuilles de calcul comportent un ensemble de colonnes obligatoires qui doivent être
présentes pour que le formulaire fonctionne. En outre, chaque feuille de calcul comporte un ensemble
de colonnes facultatives qui permettent de mieux contrôler le comportement de chaque entrée du
formulaire, mais dont la présence n'est pas indispensable. Chaque entrée doit avoir des valeurs pour
chacune des colonnes obligatoires, mais les colonnes facultativespeuvent être laissées vides.
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. Un nombre quelconque de lignes peuvent être laissées vides.
Tout le formatage du fichier Excel (tel que les couleurs, les polices, taille…) est ignoré. Vous pouvez
donc utiliser des lignes de séparation, des ombres et d'autres formats de police pour rendre le
formulaire plus lisible.
Une chose à garder à l'esprit lorsque vous créez des formulaires dans Excel est que la syntaxe que
vous utilisez doit être précise. Par exemple, si vous écrivez « Choices » ou « choice » au lieu de
« choices », le formulaire ne fonctionnera pas.
5
II. Types de questions
XLSForm supporte un certain nombre de types de questions. Ce ne sont que quelques-unes des
options que vous pouvez saisir dans la colonne « type » de la feuille de travail « survey » dans votre
XLSForm :
Par exemple, pour collecter le nom et les coordonnées GPS d'un magasin, vous devez écrire ce qui
suit dans la feuille « survey »:
Voir le formulaire XLS Question_types pour un aperçu de chaque type de question utilisé dans un
formulaire.
6
Feuilles « survey »
type name label
select_one yes_no aime_pizza Vous aimez la pizza ?
Feuilles « choices »
List name name label
oui_non oui Oui
oui_non non Non
Nous pouvons également ajouter des questions à choix multiple qui permettent de sélectionner
plusieurs réponses, comme suit :
Feuilles « survey »
type name label
sélectionner_multiple favoris_toppings Quelles sont vos garnitures de pizza
pizza_toppings préférées ?
Feuilles « choices »
List name name label
pizza_toppings fromage Fromage
pizza_toppings pepperoni Pepperoni
pizza_toppings saucisse Saucisse
Avertissement : Lorsque vous exportez des données en utilisant cette option « or_other »
(ou_autre), dans la colonne favorite_topping, vous verrez une valeur autre. Une
colonne séparée contiendra la réponse aux questions pour lesquelles l'utilisateur a
sélectionné « autre ». Cela complique l'analyse des données, c'est pourquoi nous
ne recommandons pas l'utilisation de l'option « or_other » pour les collectes de
données à grande échelle. Voir la section Pertinente ci-dessous pour une méthode
alternative plus appropriée aux projets à grande échelle.
7
III. Métadonnées
XLSForm dispose d'un certain nombre d'options de type de données pour la collecte demétadonnées
:
Si je voulais que mon enquête recueille toutes ces métadonnées, je placerais leséléments suivants au
début de l'enquête :
Feuilles « survey »
type name label
start commencer
end fin
todays Aujourd_hui
deviceid Numéro_du_dispositif
subscriberid Numéro_abonné
simserial simserial
phonenumber Numéro_detéléphone
Remarquez qu'il n'y a pas d'étiquettes (« label ») associées aux types de questions sur les
métadonnées. Cela est dû au fait que 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
lesdonnées de votre enquête. Le tutoriel XLSForm montre comment les métadonnées sont utilisées
dans un formulaire.
IV. Conseils/indice
Il arrive que vous souhaitiez ajouter un petit indice à une question de votre formulaire, pour indiquer
à 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 conseils aux questions dans XLSForms. Il suffit
d'ajouter une colonne « hint » (d'indice) et d'ajouter votre message d'indice.
Voir ci-dessous pour un exemple.
Feuilles « survey »
8
type name label hint
Regardez sur le panneau si le magasin aun
text nom Quel est le nom de ce magasin ?
panneau.
Collectez les coordonnées GPS dece
geopoint geopoint
magasin.
Une façon d'assurer la qualité des données est d'ajouter des contraintes aux champs de données de
votre formulaire. Par exemple, lorsque vous demandez l'âge d'une personne, vousvoulez éviter les
réponses impossibles, comme -22 ou
200. Il est facile d'ajouter des contraintes de données dans votre formulaire. Il suffit d'ajouter une
nouvelle colonne, appelée contrainte, et de saisir 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 . de la formule renvoie à la variable de la question.
Feuilles « survey »
type name label constraint
integer age Quel âge avez-vous? . <= 150
Dans cet exemple, la formule « .<= 150 » signifie 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 pourra pas passer
à la question suivante ou soumettre le formulaire.
D'autres expressions utiles à utiliser dans la colonne des « constraint » peuvent être trouvées ici.
Regardez sous la rubrique
Section des « Operators »( opérateurs).
Feuilles « survey »
Dans cet exemple, si l'utilisateur saisit un âge inférieur à 18 ans, un message d'erreur apparaît dans
la colonne constraint_message. D'autres exemples de contraintes ont été illustrés dans ce
formulaire XLS.
9
VI. Saut de question / Pertinent
L'une des grandes caractéristiques 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 « relevant »
pour une question « select_one », en utilisant notre exemple de garniture de pizza :
Feuilles « survey »
Dans cet exemple, on demande à la personne interrogée : "Aimez-vous la pizza ?". Si la réponse
est oui, la question sur les garnitures de pizza apparaît ci-dessous. Notez les ${ } autour de la
variable « aime_pizza ». Ils sont nécessaires pour que le formulaire fasse référence à la variable de
la question précédente.
Dans l'exemple suivant, nous utilisons la syntaxe « relevant » (pertinente) pour une question
« select_multiple », qui est légèrement différente de l'exemple de question « select_one » ci-
dessus.
Feuilles « survey »
type name label relevant
select_one yes_no aime_pizza Vous aimez la pizza ?
select_multiple
favorite_topping Garnitures préférées ${ aime_pizza } = 'oui'
pizza_toppings ou_autre
Quel est votre type de selected(${favorite_topping},
texte Fromage_préféré
fromage préféré ? 'saucisse ')
Feuilles « choices »
list name name label
pizza_toppings fromage Fromage
pizza_toppings pepperoni Pepperoni
pizza_toppings saucisse Saucisse
10
Comme la question sur la garniture de la pizza permet plusieurs réponses, nous devons utiliser
l'expression selected(${favorite_topping}, 'saucisse'), car nous voulons que la question sur
le fromage apparaisse chaque fois que l'utilisateur sélectionne la Saucisse comme l'une des
réponses (que d'autres réponses soient sélectionnées ou non).
Nous avons mentionné précédemment qu'il existait une autre méthode pour spécifier d'autres
questions à choix multiple, plus appropriée pour les enquêtes à grande échelle. Cela peut être fait
en utilisant la même syntaxe pertinente que dans l'exemple ci-dessus :
Feuilles « survey »
type name label relevant
Quelles sontvos
sélectionner_multiple
favoris_toppings garnitures de pizza
pizza_toppings
préférées ?
selected(${favorite_toppings},
texte favoris_toppings_autres Précisez autre :
'autre')
Feuilles « choices »
list name name label
pizza_toppings fromage Fromage
pizza_toppings pepperoni Pepperoni
pizza_toppings saucisse Saucisse
pizza_toppings autre Autre
Notez que vous devez inclure « Autre » comme choix de réponse dans la feuille de « choices ».
VII. Formules
Les formules sont utilisées dans les colonnes « constraint », « relevant » et « calculation »
(Contrainte, Saut/Pertinent et Calcul). Vous avez déjà vu quelques exemples dans les sections
« constraint » et « relevant » ci-dessus. Les formules vous permettent d'ajouter des
fonctionnalités supplémentaires et des mesures de qualité des données à vos formulaires. Les
formules sont composées de fonctions et d'opérateurs (+, *, div, etc.). La liste complète de ces
derniers est la suivante :
11
VIII. Calculation (Calcul)
Votre enquête peut effectuer des calculs en utilisant les valeurs des questions précédentes. Dans la
plupart des cas, cela nécessite l'insertion d'une question de calcul. Par exemple, dans l'enquête ci-
dessous, nous avons calculé le pourboire pour un repas et l'avons affiché àl'utilisateur :
Feuilles « survey »
type name label calculation
decimal montant Quel était le prix du repas ?
calculate conseil ${mount} * 0.18
note afficher Le pourboire de 18% pour votre
repas est : ${conseil}fcfa
Notez que le ${conseil} de la dernière ligne sera remplacé par le montant réel du pourboirelorsque
vous consulterez et remplirez le formulaire.
IX. Requis/Obligation
Il est simple de marquer certaines questions comme obligatoires dans votre formulaire. Cela
signifie que l'utilisateur ne pourra pas passer à la question suivante ou soumettre leformulaire sans
avoir répondu à cette question.
Pour rendre les questions obligatoires, ajoutez une colonne « required » (obligatoire) à votre
feuille de calcul. Sous cette colonne, indiquez que les questions sont obligatoires en écrivant
« yes » ou « true ». Voir l'exemple ci-dessous :
Feuilles « survey »
type name label constraint required
entier âge Quel âge avez-vous ? . <= 150 yes
Feuilles « survey »
type name label
begin group repondant Répondant
texte nom Entrez le nom du répondant
texte position Indiquez la position du répondant au sein de
l'école.
eend group
12
C'est un bon moyen de regrouper des 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 caché
dans le formulaire.
Feuilles « survey »
type name label
begin group hopital Hôpital
texte nom Quel est le nom de cet hôpital ?
begin group medicaments anti-vih Médicaments contre le VIH
select_one yes_no avoir_un_medicament_hiv Cet hôpital dispose-t-il de médicamentscontre le VIH ?
end group
end group
Vous devez toujours fermer le groupe le plus récent qui a été créé en premier. Par exemple, lepremier
« end group » (groupe de fin) que vous voyez ferme le groupe de « Médicaments contre le VIH »,
et le second ferme le groupe de début d' « Hôpital ». Lorsque vous travaillez avec des groupes et que
vous obtenez des messages d'erreur en essayant de télécharger votre formulaire, vérifiez que pour
chaque « begin group » (groupe de départ), vous avez un « end group » (groupe de fin).
Feuilles « survey »
type name label relevant
integer age Quel âge avez-vous ?
begin group enfan t Enfant ${age} <= 5
integer muac Enregistrez la circonférence de la partie supérieure du bras de cet
enfant.
select_one yes_no mrdt Le test de diagnostic rapide de l'enfant est-ilpositif ?
end group
Dans cet exemple, les deux questions relatives au groupe d'enfants (muac et mrdt) n'apparaîtront
que si l'âge de l'enfant indiqué dans la première question est inférieur ou égal à cinq ans.
XIII. Répétitions
Un utilisateur peut répéter un groupe de questions en utilisant les constructions « begin repeat »
13
et « end repeat » :
Feuilles « survey »
type name label
begin repeat repetition_enfant
texte nom Nom de l'enfant
décimal poids_de_naissance Poids de l'enfant àla naissance
select_one male_female sexe Sexe de l'enfant
end repeat
Feuilles « choices »
list name name label
male_female homme Homme
male_female femme Femme
Dans cet exemple, les champs nom, poids_de_naissance et sexe sont regroupés dans un groupe
de répétition, et l'utilisateur peut répéter ce groupe autant de fois que nécessaire en sélectionnant
l'option dans le formulaire pour commencer une autre répétition.
La colonne « label » (étiquette) est facultative pour la « begin repeat » (répétition de début).
L'attribution d'une étiquette à un groupe de répétition ajoutera l'étiquette comme titre au bloc de
questions derépétition dans le formulaire.
Note : Au lieu d'autoriser un nombre infini de répétitions, l'utilisateur peut spécifier un nombre
exact de répétitions en utilisant la colonne « repeat_count » :
Feuilles « survey »
type name label repeat_count
begin repeat repetition_enfant 3
texte nom Nom de l'enfant
décimal poids_de_naissan Poids de l'enfant àla naissance
ce
select_one male_female sexe Sexe de l'enfant
end repeat
Feuilles « choices »
list name name label
male_female homme Homme
male_female femme Femme
Certaines plateformes prennent également en charge le comptage dynamique des répétitions. Dans
l'exemple ci-dessous, le nombre que l'utilisateur saisit dans le champ « num_hh_members »
détermine le nombre de répétitions du groupe « hh_member » :
Feuilles « survey »
type name label repeat_count
Nombre de membresdu ménage ?
integer nombre_hh_memb
res
14
commencer hh_member ${num_hh_members}
répéter
texte nom Nom
entier âge Âge
select_one
male_female genre Genre
répétition de fin
Feuilles « choices »
list name name label
masculin_féminin homme Homme
masculin_féminin femme Femme
Feuilles « survey »
type name label::Français label::English label::Español constraint
integer age Quel âge avez-vous ? How old are you? ¿Cuántos años tienes? . <= 150
Note : Vous pouvez également ajouter une colonne de langue différente pour les indices et les
fichiers multimédias ; il vous suffit d'utiliser la fonction « ::language » est à nouveau utilisée.
Consultez le documentstandard XLSForm pour savoir exactement quels types d'entêtes de
colonne peuvent accepter une modification de la langue.
XV. Médias
Vous pouvez inclure dans votre formulaire des questions qui affichent des images ou qui lisent des
fichiers vidéo ou audio. Si vous utilisez le client mobile ODK pour la soumission deformulaires,
vous devez placer les fichiers multimédias que vous souhaitez inclure dans le dossier
/odk/forms/formname-media sur votre téléphone, puis faire référence au nom exact du fichier dans
la colonne « medias » de votre formulaire. Vous trouverez ci-dessous un exemplede la manière de
procéder.
Feuilles « survey »
type name label media::image media::video
note exemple_média Exemple demédia exemple.jpg exemple.mp4
Consultez le formulaire XLSForm Birds qui illustre l'utilisation des fichiers multimédias. Vous
pouvez également cliquer sur le lien pour voir le formulaire webBirds.
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 « choices », mettez les choix externes dans
la feuille « external_choices ».
Voir le formulaire select_one_external pour un exemple qui utilise les choix normaux etexternes.
Lorsqu'un XLSForm avec des choix externes est converti en XForm, deux fichiersseront 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 Kobo/ODK (par
exemple, ODK Aggregate) comme un fichier média. Il sera téléchargé sur n'importe quel serveur
compatible Kobo/ODK (par exemple, ODK Collect) comme n'importe quel autre fichier média et
enregistré dans le dossier [form-filename]-media. Les clients tels que ODK Collect chargent les
fichiers multimédias à partir de la carte SD, de sorte que votre formulaire comportant un grand
nombre de choix se chargera désormais très rapidement.
XVIII. Défaut
L'ajout d'un champ par défaut (« default ») signifie qu'une question sera pré-remplie avec une
réponse lorsque l'utilisateur verra la question pour la première fois. Cela peut permettre de gagner du
temps si la réponse est une réponse couramment choisie ou de montrer à l'utilisateur le type de choix
de réponse attendu. Voir les deux exemples ci-dessous.
Feuilles « survey »
type name label default
today today
date survey_date Date de l'enquête ? 2010-06-15
Dans l'exemple suivant, le poids est automatiquement fixé à 51,3 kg. Vous pouvez simplement
modifier la réponse en touchant le champ de réponse et en saisissant une autreréponse.
Feuilles « survey »
type name label default
decimal poids Poids du répondant ? (en kgs) 51.3
16
XIX. Apparition/ appearance
La colonne « appearance » vous permet de modifier l'apparence des questions dans votre
formulaire. Le tableau suivant répertorie les attributs d'apparence possibles et la manière dont la
question apparaît dans le formulaire
Attribut de
Type de question Description
l'apparence
multiline texte Il est préférable de l'utiliser avec des clients Web, car il
permet decréer une zone de texte de plusieurs lignes.
select_one, select_multiple
minimal Les choix de réponses apparaissent dans un menu déroulant.
quick Pertinent pour les clients mobiles uniquement, cet attribut fait
select_one
passer automatiquement le formulaire à la question suivante
après la sélection d'une réponse.
month-year date Sélectionnez uniquement un mois et une année pour la date.
year date Sélectionnez uniquement une année pour la date.
horizontal-compact select_one, select_multiple Pour les clients Web uniquement, cela permet d'afficher les
choix deréponses horizontalement.
select_one, select_multiple Pour les clients Web uniquement, cela affiche les choix de
horizontal
réponses horizontalement, mais en colonnes.
Utilisé de préférence avec des clients Web, il fait apparaître
likert select_one
leschoix de réponse sous la forme d'une échelle de Likert.
select_one, select_multiple
compact [choixavec images]. Disposer les choix de réponses des images côte à côte.
Un formulaire XLSForm avec tous les attributs d'apparence de ce tableau est disponible ici.
Feuilles « settings »
form_title form_id public_key submission_url default_languag
Exemplede titre https://example-odk-
exemple_id IIBIjANBg... Français
aggregate.appspot.com/submission
Les entêtes de colonne de cet exemple de feuille de calcul « settings » (des paramètres) ont les
fonctionssuivantes :
form_title : Le titre du formulaire qui est affiché aux utilisateurs. Le titre du formulaire
est tiré de
form_id si form_title est vide ou manquant.
form_id : Le nom utilisé pour identifier la soumission du formulaire. L'identifiant du
formulaire est tiré du nom du fichier XLS si form_id est vide ou manquant.
clé_publique : Pour les formulaires chiffrés, c'est ici que la clé publique est copiée et
collée.
submission_url : Pour les formulaires cryptés, cette url spécifie le serveur sur lequel les
formulaires finalisés sont soumis.
default_language : Dans les formulaires localisés, ceci définit la langue qui doit être
utilisée par défaut.
Pour plus d'informations sur les formulaires cryptés et la façon de générer les clés rsa, consultez le
tutoriel ici. Veuillez consulter l'exemple tutorial_encryptedXLSForm.
Regardez cet exemple de formulaire XLS qui calcule le nom d'instance à partir des noms etprénoms
de l'utilisateur associés à l'uuid de la soumission du formulaire.
Dans l'onglet « settings », créez une colonne appelée « style » et définissez-la sur pages, commesuit
:
Feuilles « settings »
form_title form_id style
exemple detitre exemple_id pages
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 comme étant une liste de champs. Voir
l'exemple ci-dessous.
Feuilles « settings »
type name label appearance
begin groupe groupe1 field-list
text nom Nom du défendeur
integer age Âge du répondant
string adresse Adresse du défendeur
end group
Voir cet article de blog pour plus d'informations sur la création de formulaires web multi-pages.
La source de XLSForm est ici.
Veuillez cliquer sur le lien pour voir un exemple de formulaire Webdu thèmeGrille.
Pour créer un formulaire Grille, dans l'onglet « setting », sous la colonne style,écrivez « theme-
grid », comme suit :
Feuilles « settings »
form_title form_id style
exemple detitre exemple_id theme-grid
Dans votre onglet « survey », 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.
Feuilles « survey »
type name label appearance
begin group groupe1
19
text nom Nom du défendeur w3
integer age Âge du répondant w1
string adresse Adresse du défendeur w4
end group
Consultez cet article de blog pour plus d'informations sur la création de formulaires Grid.
L'exemple de XLSForm du thème Grille est ici.
XXV.5. Histoire
Ce site vous aidera à créer des formulaires XLSForm. XLSForm est un outil utilisé pour simplifier
la création de formulaires. XLSForm convertit les formulaires créés dans Excel en XForms qui
peuvent être utilisés avec un certain nombre de plateformes web ou mobiles.
21