Académique Documents
Professionnel Documents
Culture Documents
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.
aujourd'hui aujourd'hui
select_one genre genre Sexe du répondant ?
entier âge Âge du répondant ?
4
taper nom étiqueter
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 :
6
Type de question Saisie de la réponse
7
Type de question Saisie de la réponse
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 :
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 :
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:
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
12
liste de
nom étiqueter géométrie
noms
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.
15
liste de noms nom étiqueter
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.
Type de
Signification
métadonnées
17
Type de
Signification
métadonnées
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
19
taper nom étiqueter paramètres
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.
21
taper nom étiqueter guidance_hint pertinent
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.
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.
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
é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
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 :
lecture
taper nom étiqueter calcul
seulement
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 :
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 :
29
taper nom étiqueter calcul déclencher
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:
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 :
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 :
33
taper nom étiqueter
enquêteles choixparamètres
34
type name label
end repeat
surveychoicessettings
The Delivery Outcome XLSForm is another repeat example.
Instead of allowing an infinite number of repeats, the form designer can specify
an exact number of repeats by using the repeat_count column:
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:
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
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:
36
list_name name label
yes_no no No
surveychoicessettings
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
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.
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.
38
Media is translatable in the same way as labels and hints as explained in
the languages section.
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:
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.
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.
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:
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.
44
taper nom étiqueter défaut
Attribut
Type de question Description
d'apparence
45
Attribut
Type de question Description
d'apparence
46
Attribut
Type de question Description
d'apparence
47
Attribut
Type de question Description
d'apparence
langag
form_titl form_i nom de Clé
version e par
e d l'instance publique
défaut
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 :
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 :
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.
lier ::
taper nom étiqueter bind::esri:fieldLength
enk: pour
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