Crear números de serie únicos en formularios

Read in English | Lire en français | اقرأ باللغة العربية Última actualización: 29 Jul 2025

Hay ocasiones en las que puedes querer generar un número de serie único para cada formulario en un proyecto. Este artículo discute varias soluciones alternativas sobre cómo crear números de serie únicos usando el tipo de pregunta calculate.

Enfoque 1: Crear números de serie únicos secuenciales basados en fecha y hora

Este método funciona mejor con formularios web de Enketo. Utiliza una función de cálculo para crear un número de serie único basado en la fecha y hora hasta el primer milisegundo. Aunque este método puede no satisfacer todas tus necesidades, debería darte una ilustración de cuánto puedes extender las funciones de cálculo.

Crea un tipo de pregunta calculate ya sea en el editor de formularios o en XLSForm y usa la fórmula a continuación.

concat(substr(today(), 0, 4), substr(today(), 5, 7), substr(today(), 8, 10), substr(now(), 11, 13), substr(now(), 14, 16), substr(now(), 17, 19))

La misma fórmula puede funcionar como una pregunta de tipo integer cuando trabajas en un XLSForm.

Ejemplo de cálculo

En el ejemplo, cuando previsualizas el formulario desplegado en Enketo, deberías poder ver el número de serie dentro de la pregunta de nota como se muestra en la imagen a continuación:

Previsualizar formulario

Enfoque 2: Crear números de serie únicos a partir de variables seleccionadas

Este ejemplo muestra cómo crear números de serie únicos a partir de variables existentes, ya definidas en tu formulario usando la expresión concat() en un tipo de pregunta calculate. El ejemplo se muestra como un XLSForm, pero puede hacerse fácilmente dentro del editor de formularios.

hoja survey

type

name

label

calculation

text

Q1

Nombre de la región

text

Q2

Nombre del distrito

text

Q3

Nombre del grupo

text

Q4

Nombre de la aldea

text

Q5

Número de serie del hogar

calculate

Q1_C

substr(${Q1}, 0, 3)

calculate

Q2_C

substr(${Q2}, 0, 3)

calculate

Q3_C

substr(${Q3}, 0, 3)

calculate

Q4_C

substr(${Q4}, 0, 3)

calculate

ID

concat(${Q1_C}, “-”, ${Q2_C}, “-”, ${Q3_C}, “-”, ${Q4_C}, “-”, ${Q5})

note

note_id

Tu ID único para este formulario es: ${ID}

survey

Cuando previsualizas el ejemplo en los formularios web de Enketo, el número de serie se presentará dentro de la pregunta de nota como se muestra en la imagen a continuación:

Previsualizar ID único