Las fórmulas pueden ser evaluadas en el contexto de un registro de formulario. Esto incluye:
- Fórmulas de campos calculados
- Fórmulas de prefijo de número de serie
- Reglas de relevancia
- Reglas de validación
- Bloqueos de registros
- Permisos a nivel de registro
En cada uno de estos casos, la fórmula se evalúa en el contexto de cada uno de los registros del formulario. En este contexto, puede hacer referencia a los valores de los campos del registro, a los registros y subregistros relacionados y a los metadatos relacionados con el registro.
Dado que la fórmula se calcula registro por registro, este no es el contexto en el que se deben calcular agregados como el porcentaje de participantes que son mujeres. Dichas estadísticas pueden calcularse utilizando tablas dinámicas.
Valores de los campos
En el contexto de un registro, puede hacer referencia a los campos utilizando el código del campo, la etiqueta del campo o el ID interno del campo y la sintaxis de símbolos. Un símbolo se escribe en las fórmulas sin comillas.

Por ejemplo, si tiene un campo de texto con la etiqueta "Number of students" y el código NUM_STUDENTS
, podría calcular el número de profesores necesarios, asumiendo una proporción deseada de 30:1, utilizando cualquiera de las siguientes fórmulas:
Students / 30
NUM_STUDENTS / 30
csr4lu5lfl1n0swr / 30
El texto csr4lu5lfl1n0swr
es el ID interno del campo asignado por ActivityInfo, que se puede encontrar a través de la API.
Si la etiqueta de un campo contiene espacios u otros caracteres especiales, el símbolo debe escaparse utilizando corchetes. Por ejemplo, si el campo anterior tuviera la etiqueta "Number of students", entonces debe referirse a él como [Number of students]
en la fórmula.
Tenga en cuenta que no es necesario que las etiquetas de los campos sean únicas dentro de un formulario. Es común tener varios campos con la etiqueta "Other", por ejemplo. Si se refiere a un campo por su etiqueta y hay más de un campo con esta etiqueta, se utilizará el valor del primer campo.
Por esta razón, recomendamos asignar códigos a todos los campos si planea utilizar fórmulas.
Campos de texto
Los campos de texto, de texto multilínea, de número de serie y de código de barras tienen un tipo de fórmula de texto en el contexto del registro.
Campos de selección
Los campos de selección única y de selección múltiple tienen un tipo de fórmula de "struct" y de lista de struct, respectivamente.
Si su formulario incluye campos de referencia, puede incluir los valores de los campos de los registros relacionados en las fórmulas.
Campos de referencia
Cuando añade un campo de referencia a un formulario, ActivityInfo almacena el ID de registro incorporado del registro seleccionado como parte del campo.
Por ejemplo, digamos que añade una referencia al formulario de Distritos de Afganistán en la Geodatabase pública con el código DISTRICT
. Durante la introducción o importación de datos, ActivityInfo presentará los campos clave del registro relacionado al usuario para ayudarle a seleccionar el registro correcto:

Sin embargo, cuando se guarda el registro, ActivityInfo almacena realmente el ID de registro del registro relacionado. Esto garantiza que, aunque cambie el nombre del distrito, se conserve la relación entre los dos registros.
Si hace referencia a DISTRICT
en una fórmula, el resultado será el ID de registro, como "z0000454985"
:

Campos relacionados
En la mayoría de los casos, el ID del registro relacionado no será muy útil. En su lugar, es posible que desee hacer referencia al nombre del distrito o a su población. Para ello, puede utilizar la notación de puntos para buscar el valor relacionado:
DISTRICT.NAME
Si el formulario relacionado también tiene campos de referencia, puede utilizar varios puntos para seguir la ruta. En este caso, el formulario de Distrito tiene un campo de referencia PROVINCE
con su propio campo NAME
. Para encontrar el nombre de la provincia relacionada, podría utilizar la fórmula:
DISTRICT.PROVINCE.NAME
Campos de punto geográfico
Los campos de punto geográfico tienen un tipo de fórmula "struct". Esto significa que cada punto geográfico tiene dos valores: latitud y longitud. Puede hacer referencia a estos componentes individuales utilizando la sintaxis de puntos:
CONCAT(
IF(LOCATION.Latitude > 0, "North", "South"), " ",
IF(LOCATION.Longitude > 0, "East", "West"), " Hemisphere")
Campos de subformulario
Aunque los campos de subformulario no tienen un valor en sí mismos, puede hacer referencia a los campos de los subregistros en el contexto del registro, siempre que estén agregados.
Por ejemplo, si tiene un subformulario HOUSEHOLDS_MEMBERS
con los campos NAME
y AGE
, no puede simplemente hacer referencia a HOUSEHOLD_MEMBERS.NAME
, porque puede haber más de un nombre. Sin embargo, puede utilizar funciones de agregación como COUNT
, SUM
, AVERAGE
, MIN
y MAX
para calcular un único valor a partir de todos los subregistros de un registro. Por ejemplo, podría encontrar el número de miembros utilizando la fórmula:
COUNT(HOUSEHOLD_MEMBERS.NAME)
Y podría comprobar la presencia de un niño menor de cinco años utilizando la fórmula:
MIN(HOUSEHOULD_MEMBERS.AGE) < 5
Metadatos del registro
En el contexto del registro, también puede hacer referencia a los metadatos sobre el registro:
Símbolo | Tipo | Descripción |
---|---|---|
_id | texto | El ID del registro |
_lastEditTime | instante | La última vez que se actualizó el registro |
Tenga en cuenta que _lastEditTime
se refiere a la última vez que una actualización llegó al servidor. Un registro puede haber sido añadido o editado sin conexión mucho antes.