Contenido

Cálculo (calculate)



Las preguntas de cálculo permiten hacer desde operaciones básicas hasta otras más complejas usando operadores matemáticos, lógicos y funciones.

Nota: Debe tener en cuenta que estas operaciones se realizan a nivel del dispositivo (No en el servidor) y los resultados quedan como parte del mismo formulario. Sin embargo existen funciones que le permitirán acceder a datos de tablas o archivos externos y datos de otros formularios.

Cómo se usa (visualiza)

La pregunta tipo “cálculo” no presenta ninguna vista al usuario y por lo tanto no requiere la definición de Etiqueta.

Aunque ejecuta operaciones, los resultados de un cálculo son almacenados como cadenas de caracteres, por lo anterior hay que tener precaución de hacer las conversiones de tipo antes de usarlos en escenarios que requieran valor numérico.

Cuando se va a hacer referencia a una pregunta del formulario este inicia con $ y se escribe entre llaves { }. Así, sí tiene una pregunta Nombre, para usarla en un cálculo será de la siguiente manera: ${Nombre}.

Cómo se diseña (define en un formulario):

En Editor Web:

En el recuadro amarillo se debe escribir la fórmula que generará el valor que se almacena en la pregunta. En este caso q1.

En el siguiente ejemplo se ingresan dos enteros y mediante un cálculo se hace la suma de ellos. Entonces la fórmula es: ${entero1} + ${entero2}

En Plantilla Excel:

En la plantilla excel, la fórmula se escribe en la columna calculation:

Advertencia: Para las preguntas de tipo calculate no aplica la relevancia, es decri, que los cálculos siempre se realizan, si el cálculo incluye una pregunata o un valor que no exista generará error. Por lo anterior, serecomienda que si el cálculo incluye valores que pueden no existir adicionar un seguro como por ejemplo el uso de la función coalesce. Ver artículo Sintaxis y Funciones

Avanzado:

También es posible usar fórmulas en otro tipo de preguntas como las numéricas o texto. En estos casos actúa como valores por defecto dinámicos. Sin embargo sí necesita que este valor del resultado sea un sugerido y se pueda cambiar el valor, debe colocar la formula dentro de una función “once” o una función “default”.

Definir cuando activar un cálculo

Por defecto, los cálculos se activan cada vez que cambia alguna de las preguntas a las que hacen referencia, es decir, si usted tiene un cálculo en que suma la respuesta de 2 preguntas, en caso de devolverse y cambiar una respuesta la suma se recalcula de acuerdo a la nueva respuesta. También se vuelven a calcular cuando se guarda el formulario.

Puede usar la función once() para cambiar este comportamiento y calcular el valor una sola vez. También puede usar la función default() para evitar que se vuelva a calcular al guardar el formulario, con la función default se recalcula cada que se realice un cambio pero no al guardar la encuesta.

Ejemplo:

once(${Entero1}+ ${Entero2}
default($Entero1}+ ${Entero2}

Ejemplo 2:

En el ejemplo siguiente q1 toma un valor que será usado por defecto en q2 y q4.

El comportamiento de q2 que usa once, permite que si se cambia q1, se conservará el primer valor como sugerido. En q4 con default, si cambia q1, cambia el valor por defecto al nuevo valor.

Digamos que inicialmente q1 es Hola, q2 y q4 sugieren por defecto Hola, si regresamos a q1 y lo cambiamos por Hola Mundo, entonces q2 permanece sin cambiar y q4 será Hola Mundo. Recuerde que este valor es un sugerido, porque si se cambia, tanto q2 como q4 adquieren los nuevos valores.

Funcionamiento función default()

Disparador (Activación de cálculos con cambio de valor)

Es posible también definir una pregunta específica que activará el cálculo cuando cambie. De esta forma, puede actualizar el valor de un cálculo respondiendo una pregunta que no aparece en el cálculo real.

Este enfoque funciona como usar la opción default () en el sentido de que el cálculo no se volverá a evaluar al guardar y, por lo tanto, se conservarán las actualizaciones que haya realizado el usuario.

La herramienta que permite realizar esta acción es el trigger o disparador.

Cómo se diseña (define en un formulario):

En Editor Web:

Seleccione la opción disparador e indique la pregunta.

En Plantilla Excel:

En la plantilla excel, la pregunta disparador se escribe en la columna trigger.

En el ejemplo anterior se calculará la hora a la que la pregunta nombre cambia.

Ejemplo de uso: Captura de tiempos intermedios

Saber cuánto tiempo pasó un enumerador respondiendo una pregunta puede ayudar con el control de calidad y la capacitación. Kontrolid proporciona un registro de auditoría que contiene información valiosa sobre cómo un enumerador navegó por un formulario. Este registro se captura como un archivo separado y puede ser complejo de analizar. Una alternativa más simple es capturar marcas de tiempo cuando cambian los valores de preguntas específicas. Esto es similar a los tipos de metadatos de marca de tiempo de inicio (start) y finalización (end).

Captura de marcas de tiempo de la última actualización:

En el siguiente ejemplo se realiza la captura de la marca de tiempo cada vez que nombre o nombre 2 cambian:

Video de funcionamiento de disparador de cálculos (trigger)

Cálculo en servidor (server calculate)

Las preguntas de cálculo en el servidor permite realizar cálculos como su nombre lo indica directamente en el servidor, es decir, el cálculo se realiza una vez el registro a subido al servidor. La sintaxis permitida en este tipo de cálculos la puede ver en el artículo Expresiones del servidor.

Este tipo de cálculos se emplea principalmente en Formularios de supervisión, sin embargo, tambien se pueden emplear en operaciones avanzadas de ser necesario.

Cómo se diseña (define en un formulario):

En Editor Web:
En Plantilla Excel:

En la plantilla excel, la expresión se escribe en la columna server_calculation

¿Te ayudó este artículo?

Angee Ballesteros

Ing. Electrónica, Especialista en Ing. de Software

Deja una Respuesta

Debes estar logueado para poder comentar.