Las funciones más avanzadas de los "Formularios" ("Forms") implican el uso de una fórmula.

Por lo anterior, es importante que entiendas como crear fórmulas con el fin de obtener el máximo provecho de nuestras funciones avanzadas.


Para empezar, debes saber como abordar o referirte a un campo en tu "Formulario" ("Form").


Esto se hace utilizando marcadores de posición en donde quieras que el sistema inserte respuestas de los campos de tu "Formulario" ("Form").

Los marcadores de posición se introducen utilizando el "Nombre de Datos" ("Data Name") de los campos de tu "Formulario" ("Form"), envuelto entre llaves - e.g. {{nombrededatos}}


Por ejemplo, si tienes una "Página/Grupo" ("Page/Group") llamado "pagina1" y dentro de ese grupo tienes un campo de texto llamado "xyz":

  • Te referirás a xyz como: {{xyz}}
  • Y a pagina1 como: {{pagina1}}

Ten en cuenta que los marcadores de posición y todas las otras funciones disponibles para usar en las fórmulas distinguen mayúsculas y minúsculas.


Ahora que ya sabes como referirte a los valores de los campos, puedes usar este conocimiento para construir una fórmula.

Una fórmula contiene marcadores de posición y/o varios operadores y funciones, que en conjunto dan un resultado - igual que como funciona una fórmula en Excel.


Cuando la aplicación ejecuta la fórmula, todos los marcadores de posición son reemplazados por los valores almacenados en el campo al que se está haciendo referencia.




Tomemos un ejemplo sencillo.

Supongamos que tenemos una pregunta que responde si un camino se encuentra cerrado (el nombre del campo es "estacerrado"), y la siguiente pregunta responde cuál es la razón por la cual está cerrado (el nombre del campo es "razoncerrado").


El campo de "estacerrado" tiene dos opciones: Sí (valor subyacente Y) o No (valor subyacente N).

Si el usuario responde No, entonces no queremos mostrar el campo de "razoncerrado".


Esto exige una condición de visibilidad de la pregunta, definida así:


{{estacerrado}} = ‘Y’


Lo que la fórmula anterior dice es que la pregunta de "razoncerrado" sólo será visible si la respuesta a la pregunta "estacerrado" fue Y (Sí).

Ten en cuenta que usamos comillas simples ( ' ) para valores literales/fijos - por ejemplo, en la fórmula la parte de ‘Y’.




Tomemos un ejemplo con una restricción más avanzada.

Supongamos que tenemos una pregunta de "fechadenacimiento" que debemos restringir para que sólo permita fechas en el pasado.


En este caso, usaríamos una función para evaluar la fecha de hoy.


{{fechadenacimiento}} <= today()


La función "today()" es una de las muchas funciones disponibles en tus fórmulas.




En referencia a los valores de una fila seleccionada de las "Fuentes de Datos" ("Data Source")


El "Diseñador de Formularios" ("Form Designer") te permite vincular campos de "Opciones" ("Choices") a "Fuentes de Datos" ("Data Sources") que hayas cargado previamente.


Las "Fuentes de Datos" ("Data Sources") pueden tener cuantas columnas quieras, y es posible que quieras referirte a los valores de esas columnas cuando estés creando un "Formulario" ("Form").

Para hacer esto vas a tener que usar fórmulas que se refieran a la columna deseada.


Por defecto, la primera columna en una "Fuente de Datos" ("Data Source") (también conocida como la columna "Valor" ("Value")) se utiliza siempre como la respuesta de un campo.

Si quieres referirte a cualquier otro valor de una columna, debes utilizar un índice de sintaxis - específicamente debes añadir corchetes alrededor del número índice de la columna - e.g. {{producto[índice]}}


Los índices de las columnas de una "Fuente de Datos" ("Data Source") siempre empiezan en cero - por ejemplo, la primera columna tiene un índice de 0, la segunda columna es 1, la tercera 2, y así sucesivamente.




Veamos un ejemplo.

Imagina que tienes una "Fuente de Datos" ("Data Source") llamada "productos" que contiene una lista de productos, con las siguientes columnas:


Llave Nombre Precio Descripción
324 Samsung Galaxy S4 32GB 599.99 El nuevo Galaxy S4 tiene muchas nuevas características orientadas a satisfacer a los compradores exigentes de Android.
... ... ... ...


Y creas un "Formulario" ("Form") llamado "Orden de venta" que utilizarás para registrar las órdenes de tus productos.

El "Formulario" ("Form") tiene los siguientes campos:


  • opcion_producto: Un campo de "Opciones" ("Choices") que está vinculado a la "Fuente de Datos" ("Data Source") de "productos".
  • cantidad: Un campo "Numérico" ("Numeric") para capturar la cantidad del producto ordenado. 
  • total: Un campo "Numérico" ("Numeric") que calculará la suma total multiplicando el precio del producto y la cantidad.

En el campo "total", debes definir un "Valor Dinámico" ("Dynamic Value") en la fórmula, así:


{{opcion_producto[2]}} * {{cantidad}}


Ten en cuenta que los corchetes cuadrados y el índice 2 se utilizan para referirse a la tercera columna (precio) en la "Fuente de Datos" ("Data Source") de "productos".