Soporte para XLSForm

Este artículo se ha traducido del inglés mediante IA y puede contener errores. Sus comentarios nos ayudarán a mejorar.

XLSForm es un estándar ampliamente utilizado para definir cuestionarios de recopilación de datos móviles. ActivityInfo utiliza un modelo de datos más cercano al de una base de datos relacional, lo que conlleva algunas diferencias importantes entre un XLSForm y un formulario de ActivityInfo, especialmente en lo que respecta a las preguntas complejas de selección y los grupos de repetición.

Los formularios que contienen características no compatibles pueden importarse con éxito en ActivityInfo, pero las preguntas y Fórmulas con características no compatibles se omiten.

Tipos de preguntas compatibles

Tipo de pregunta Tipo de Campo de ActivityInfo Limitaciones
integer Cantidad ActivityInfo permite la entrada de fracciones.
decimal Cantidad
range Cantidad La apariencia de calificación no es compatible.
select_one

Selección Única o

Campo de referencia

select_multiple Selección Múltiple Limitado a 100 elementos. No se admite la adición de or_other.
select_one_from_file No compatible.
select_multiple_from_file No compatible.
rank No compatible
note No compatible
geopoint Geopunto
geotrace No compatible
geoshape No compatible
date Fecha
time No compatible
dateTime No compatible
image Adjunto ActivityInfo permite cualquier tipo de archivo, no solo imágenes.
audio Adjunto ActivityInfo permite cualquier tipo de archivo, no solo audio. El parámetro de calidad de audio no es compatible.
background-audio No compatible
video Adjunto ActivityInfo permite cualquier tipo de archivo, no solo vídeo.
file Adjunto
barcode No compatible
calculate Cálculo
acknowledge Selección Única
hidden Texto, con "Ocultar en la Entrada de Datos"
xml-external No compatible
metadata (start, end, today, deviceid, phonenumber, username, email, audit) No compatible. Tenga en cuenta que ActivityInfo registra información sobre quién ha cambiado qué para todos los Formularios.

Preguntas de selección

Las preguntas de tipo "select_one" en los XLSForms se convierten en campos de Selección Única en ActivityInfo, o en un Campo de referencia, dependiendo de los siguientes criterios:

  • Si hay más de 100 opciones, el Campo se convierte en un Campo de referencia.
  • Si la lista de opciones tiene columnas de "atributos" adicionales, por ejemplo, como las que se utilizan para crear selecciones en cascada en XLSForm, entonces cualquier pregunta que utilice esa lista de opciones se convierte en un Campo de referencia en ActivityInfo. Además, la lista de opciones se importa como un Formulario independiente, con un Campo para cada atributo de la opción.
  • Si la lista de opciones es referenciada por otros choice_filters, se convierte en un nuevo Formulario de ActivityInfo, que es referenciado por otras listas de opciones.
Operador / Función Explicación Compatibilidad
+, -, *, div Aritmética básica Totalmente compatible
=, !=  Igualdad Totalmente compatible
+, -, *, div Aritmética básica Totalmente compatible
=, !=  Igualdad Totalmente compatible
>, <, >=, <, <=  Comparación Totalmente compatible
and, or Operadores booleanos Totalmente compatible
. Valor de la pregunta actual Totalmente compatible
.. Grupo principal de la pregunta actual Será compatible en el futuro.
if Totalmente compatible
position() No compatible. Los registros en ActivityInfo no están ordenados.
once() No compatible.
selected()  Compatible.
selected-at() No compatible
count-selected() Será compatible en el futuro.
jr:choice-name() No compatible
indexed-repeat No compatible
count() Será compatible en el futuro.
count-non-empty() Será compatible en el futuro.
sum() Será compatible en el futuro.
max() Será compatible en el futuro.
min() Será compatible en el futuro.
regex() Traducido como MATCHREGEX()
contains() Será compatible en el futuro.
starts-with() Será compatible en el futuro.
ends-with() Será compatible en el futuro.
substr() Será compatible en el futuro.
substring-before()
substring-after() Será compatible en el futuro.
translate() Será compatible en el futuro.
string-length() Será compatible en el futuro.
normalize-space() Será compatible en el futuro.
concat() Será compatible en el futuro.
join() Será compatible en el futuro.
boolean-from-string() Será compatible en el futuro.
string() Será compatible en el futuro.
round() Será compatible en el futuro.
int() Será compatible en el futuro.
number() Será compatible en el futuro.
digest() No compatible
pow() Será compatible en el futuro.
log() Será compatible en el futuro.
log10() Será compatible en el futuro.
abs() Será compatible en el futuro.
sin() Será compatible en el futuro.
cos() Será compatible en el futuro.
tan() Será compatible en el futuro.
asin() Será compatible en el futuro.
acos() Será compatible en el futuro.
atan() Será compatible en el futuro.
atan2() Será compatible en el futuro.
sqrt() Será compatible en el futuro.
exp() Será compatible en el futuro.
exp10() Será compatible en el futuro.
pi() Será compatible en el futuro.
today() Compatible
now() Será compatible en el futuro.
decimal-date-time() No compatible
date()

Parcialmente compatible.

Admite la sintaxis DATE("2020-01-01")

decimal-time() No compatible
format-date() Será compatible en el futuro.
format-date-time() Será compatible en el futuro.
area() No compatible
distance() No compatible
random() No compatible
randomize() No compatible
uuid() No compatible
boolean() Será compatible en el futuro.
not(x) Compatible. not(x) se convierte en !x en ActivityInfo
coalesce() Compatible
checklist() No compatible
weighted-checklist() No compatible
true()

Compatible.

Se convierte en "TRUE" en ActivityInfo

false()

Compatible.

Se convierte en "FALSE" en ActivityInfo

Otras limitaciones

Siguiente elemento
Cómo hacerlo