Support de XLSForm

Cet article a été traduit de l'anglais par IA et peut contenir des erreurs. Vos commentaires nous aideront à l'améliorer.

XLSForm est une norme largement utilisée pour définir les questionnaires de collecte de données mobiles. ActivityInfo utilise un modèle de données qui se rapproche de celui d'une base de données relationnelle, ce qui entraîne des différences importantes entre un formulaire XLSForm et un formulaire ActivityInfo, en particulier en ce qui concerne les questions de Sélection complexes et les groupes répétitifs.

Les formulaires qui contiennent des fonctionnalités non prises en charge peuvent être importés avec succès dans ActivityInfo, mais les questions et les formules contenant des fonctionnalités non prises en charge sont omises.

Types de questions pris en charge

Type de question Type de champ ActivityInfo Limitations
integer Quantité ActivityInfo autorise la saisie de nombres fractionnaires.
decimal Quantité
range Quantité L'apparence de l'évaluation n'est pas prise en charge.
select_one

Sélection unique ou

Champ de référence

select_multiple Sélection multiple Limité à 100 éléments. L'ajout de or_other n'est pas pris en charge.
select_one_from_file Non pris en charge.
select_multiple_from_file Non pris en charge.
rank Non pris en charge
note Non pris en charge
geopoint Géopoint
geotrace Non pris en charge
geoshape Non pris en charge
date Date
time Non pris en charge
dateTime Non pris en charge
image Pièce jointe ActivityInfo autorise tout type de fichier, pas seulement les images.
audio Pièce jointe ActivityInfo autorise tout type de fichier, pas seulement l'audio. Le paramètre de qualité audio n'est pas pris en charge.
background-audio Non pris en charge
video Pièce jointe ActivityInfo autorise tout type de fichier, pas seulement la vidéo.
file Pièce jointe
barcode Non pris en charge
calculate Calcul
acknowledge Sélection unique
hidden Texte, avec "Masquer dans la saisie de données"
xml-external Non pris en charge
metadata (start, end, today, deviceid, phonenumber, username, email, audit) Non pris en charge. Notez qu'ActivityInfo enregistre des informations sur qui a modifié quoi pour tous les formulaires.

Questions de Sélection

Les questions "select_one" dans XLSForms sont soit converties en champs de Sélection unique dans ActivityInfo, soit en Champ de référence, en fonction des critères suivants :

  • S'il y a plus de 100 choix, le champ est converti en champ de référence.
  • Si la liste de choix comporte des colonnes d'"attributs" supplémentaires, par exemple, celles utilisées pour créer des sélections en cascade dans XLSForm, toute question qui utilise cette liste de choix devient un champ de référence dans ActivityInfo. De plus, la liste de choix est importée en tant que formulaire distinct, avec un champ pour chaque attribut de choix.
  • Si la liste de choix est référencée par d'autres choice_filters, elle devient un nouveau formulaire ActivityInfo, qui est référencé par d'autres listes de choix.
Opérateur / Fonction Explication Support
+, -, *, div Arithmétique de base Entièrement pris en charge
=, != Égalité Entièrement pris en charge
+, -, *, div Arithmétique de base Entièrement pris en charge
=, != Égalité Entièrement pris en charge
>, <, >=, <, <= Comparaison Entièrement pris en charge
and, or Opérateurs booléens Entièrement pris en charge
. Valeur de la question actuelle Entièrement pris en charge
.. Groupe parent de la question actuelle Sera pris en charge à l'avenir.
if Entièrement pris en charge
position() Non pris en charge. Les enregistrements dans ActivityInfo ne sont pas ordonnés.
once() Non pris en charge.
selected() Pris en charge.
selected-at() Non pris en charge
count-selected() Sera pris en charge à l'avenir.
jr:choice-name() Non pris en charge
indexed-repeat Non pris en charge
count() Sera pris en charge à l'avenir.
count-non-empty() Sera pris en charge à l'avenir.
sum() Sera pris en charge à l'avenir.
max() Sera pris en charge à l'avenir.
min() Sera pris en charge à l'avenir.
regex() Traduit en MATCHREGEX()
contains() Sera pris en charge à l'avenir.
starts-with() Sera pris en charge à l'avenir.
ends-with() Sera pris en charge à l'avenir.
substr() Sera pris en charge à l'avenir.
substring-before()
substring-after() Sera pris en charge à l'avenir.
translate() Sera pris en charge à l'avenir.
string-length() Sera pris en charge à l'avenir.
normalize-space() Sera pris en charge à l'avenir.
concat() Sera pris en charge à l'avenir.
join() Sera pris en charge à l'avenir.
boolean-from-string() Sera pris en charge à l'avenir.
string() Sera pris en charge à l'avenir.
round() Sera pris en charge à l'avenir.
int() Sera pris en charge à l'avenir.
number() Sera pris en charge à l'avenir.
digest() Non pris en charge
pow() Sera pris en charge à l'avenir.
log() Sera pris en charge à l'avenir.
log10() Sera pris en charge à l'avenir.
abs() Sera pris en charge à l'avenir.
sin() Sera pris en charge à l'avenir.
cos() Sera pris en charge à l'avenir.
tan() Sera pris en charge à l'avenir.
asin() Sera pris en charge à l'avenir.
acos() Sera pris en charge à l'avenir.
atan() Sera pris en charge à l'avenir.
atan2() Sera pris en charge à l'avenir.
sqrt() Sera pris en charge à l'avenir.
exp() Sera pris en charge à l'avenir.
exp10() Sera pris en charge à l'avenir.
pi() Sera pris en charge à l'avenir.
today() Pris en charge
now() Sera pris en charge à l'avenir.
decimal-date-time() Non pris en charge
date()

Partiellement pris en charge.

Prend en charge la syntaxe DATE("2020-01-01")

decimal-time() Non pris en charge
format-date() Sera pris en charge à l'avenir.
format-date-time() Sera pris en charge à l'avenir.
area() Non pris en charge
distance() Non pris en charge
random() Non pris en charge
randomize() Non pris en charge
uuid() Non pris en charge
boolean() Sera pris en charge à l'avenir.
not(x) Pris en charge. not(x) devient !x dans ActivityInfo
coalesce() Pris en charge
checklist() Non pris en charge
weighted-checklist() Non pris en charge
true()

Pris en charge.

Devient "TRUE" dans ActivityInfo

false()

Pris en charge.

Devient "FALSE" dans ActivityInfo

Autres limitations

Élément suivant
Comment faire