Las Fórmulas pueden ser evaluadas en el contexto de un registro de formulario. Esto incluye:
- Fórmulas de campo calculado
- Fórmulas de prefijo de número de serie
- Reglas de relevancia
- Reglas de validación
- Bloqueos de registro
- 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, los registros y subregistros relacionados, y los metadatos relacionados con el registro.
Dado que la fórmula se calcula registro por registro, este contexto no es donde se deben calcular agregados como el porcentaje de participantes que son mujeres. Dichas estadísticas se pueden calcular utilizando tablas dinámicas.
Valores de campo
En un contexto de 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ímbolo. Un símbolo se escribe en las fórmulas sin comillas.

Por ejemplo, si tiene un campo de texto con la etiqueta "Número de estudiantes" 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 obligatorio que las etiquetas de los campos sean únicas dentro de un formulario. Es común tener múltiples campos con la etiqueta "Otro", 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 usar fórmulas.
Campos de texto
Los campos de Texto, Texto multilínea, Número de serie y 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 selección múltiple tienen un tipo de fórmula de "struct" y lista de struct respectivamente.
Si su formulario incluye campos de referencia, puede incluir los valores de los campos en 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 Distrito Afgano en la Geodatabase pública con el código DISTRICT
. Durante la entrada 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 asegura que incluso si el nombre del distrito cambiara, la relación entre los dos registros se conserva.
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 de 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 usar múltiples 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 usar 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 por 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 referirse a HOUSEHOLD_MEMBERS.NAME
, porque puede haber más de un nombre. Sin embargo, puede usar 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 usando la fórmula:
COUNT(HOUSEHOLD_MEMBERS.NAME)
Y podría comprobar la presencia de un niño menor de cinco años usando 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 | instant | La última vez que el registro fue actualizado |
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.