> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://docs.flokzu.com/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Campo tipo Autocalculado

Con los campos autocalculados de Flokzu, puedes obtener valores de forma automática, ¡ahorrando tiempo y evitando errores!

Imagina que creas un formulario para tus órdenes de compra. Podrías tener una [tabla](https://docs.flokzu.com/es/article/campo-tabla-1yr85th/?1537296363629) con los artículos, la cantidad y el precio unitario. Una columna  "Total" te permitiría calcular el monto de cada ítem (cantidad x precio) y, además podrás incluir un **campo autocalculado** *Total de la Compra* que sume todos esos totales automáticamente.

Esto significa que, al completar una tarea, tus usuarios no podrán modificar el valor del campo autocalculado, ya que Flokzu lo generará automáticamente y de forma dinámica por ellos.


### Cómo Crear un Campo Autocalculado

Crear un campo autocalculado es muy sencillo:

1.  Agrega un nuevo campo a tu formulario.
2. Selecciona el tipo de dato "Autocalculado".
3. Haz clic en "Edita el campo autocalculado aquí".

![](https://storage.crisp.chat/users/helpdesk/website/ccc3fbb5dc442800/image_167renr.png)

Una vez dentro, podrás elegir la función que deseas aplicar y los campos involucrados en el cálculo. Estos son los campos de tu formulario que Flokzu usará para obtener el valor final. ¡Recuerda que debes haber añadido estos campos a tu formulario antes de configurarlos en el autocalculado!

Las funciones disponibles son:

*  Suma: Para sumar valores.
*  Máx: Para obtener el valor máximo.
*  Mín: Para obtener el valor mínimo.
*  Count: Para contar elementos.
*  Mult: Para multiplicar valores.
*  Script: Si necesitas una lógica de cálculo más avanzada.

También puedes elegir la máscara "$" si quieres que el símbolo de moneda se muestre en tu campo autocalculado.

![](https://storage.crisp.chat/users/helpdesk/website/5a899047-9b38-48ab-9475-31c8c63a3183/1d8de156-762a-4f7d-ad49-65e4984bdf70.gif)

Ten en cuenta que la función Suma es muy versátil. Puedes sumar campos de texto (de una o múltiples líneas), números enteros, números decimales, combos (listas desplegables), columnas de otras tablas y ¡hasta otros campos autocalculados!

### Caso de uso

Dada la tabla con las columnas: Item, Precio, Cantidad y Total, podemos calcular primero los valores de la columna Total. Para hacer esto, debes multiplicar la columna “Precio” por la columna “Cantidad” como se muestra en la imagen. 

![](https://storage.crisp.chat/users/helpdesk/website/5a899047-9b38-48ab-9475-31c8c63a3183/8c182996-fbaf-457d-9df5-eab636024da1.gif)

Una vez hecho eso, puedes sumar estos valores en un campo autocalculado llamado “Total compras”.

![](https://storage.crisp.chat/users/helpdesk/website/5a899047-9b38-48ab-9475-31c8c63a3183/aed8e5f6-fad2-4fae-aff8-2dffca161b53.gif)
### Tipos de dato y formato para tus cálculos 

Para que tus cálculos funcionen a la perfección, te recomendamos que los campos que uses en un autocalculado sean siempre de **tipo numérico**. Flokzu interpretará correctamente los valores, sin importar si tienen separadores de miles o decimales configurados.

Si usas un **campo de texto** para ingresar un valor numérico, Flokzu asumirá que el punto (`.`) es el separador de decimales y que el valor no tiene separadores de miles.

||| ¡Importante! Si un usuario ingresa valores que no son números en alguno de los campos involucrados en el cálculo, Flokzu los interpretará como **cero (0)** para la función. Si el resultado de la operación es inválido, el valor que se mostrará en el campo autocalculado también será **cero (0)**.

### Visibilidad de un campo autocalculado

Los campos autocalculados pueden tener cuatro tipos de visibilidad, lo que te permite controlar cómo se comportan en tu formulario:

* **Oculto**: El campo no se muestra en el formulario.
* **Inactivo**: El valor del campo autocalculado no se actualiza, incluso si los campos que lo alimentan cambian. Esto es útil para "congelar" un valor en un momento específico.
* **Activo**: El valor del campo se calcula en tiempo real cada vez que alguno de los campos involucrados cambia.
* **Obligatorio**: El campo está activo y deberá tener un valor antes de completar la tarea.



![](https://storage.crisp.chat/users/helpdesk/website/ccc3fbb5dc442800/image_1qjtkd5.png)

||| Recuerda que un campo autocalculado siempre realiza sus cálculos basándose en los **campos involucrados que estén visibles**. Si la función utiliza un campo que está oculto, ese campo sumará **cero (0)**, aunque le hayas asignado un valor previamente.

Al igual que con otros campos de tu formulario, puedes usar el valor de un campo autocalculado para establecer **condiciones en tu flujo de trabajo** o incluso **insertar su valor en un mensaje** que se envía automáticamente (por ejemplo, en una [Tarea de Envío de Mensaje](https://docs.flokzu.com/es/article/que-es-una-tarea-de-envio-de-mensaje-b65mvv/?1537296363629)).

### Scripts en campos autocalculados: Lógica avanzada

Si necesitas una lógica de cálculo más compleja que las funciones predefinidas, puedes usar **scripts** en tus campos autocalculados. Aquí te damos algunas pautas importantes:


* Para referirte a los campos de tu formulario dentro del script, usa el formato **Mustache**, encerrando el nombre del campo entre dobles llaves, así: {{Nombre del campo}}  
   Ejemplo: `{{Cantidad de unidades}}`

* Te recomendamos que el script sea conciso y contenga solo la lógica necesaria
   Ejemplo: `{{Cantidad}} * {{Precio unitario}}`.

* Si la lógica es muy compleja, puedes definirla dentro de una función para mayor orden. 
   Por ejemplo:: 
```
 
miFuncion();
function miFuncion() {
    // ... tu lógica compleja aquí ...
}
```

Para desarrollar estos scripts, aplican las mismas recomendaciones que para el [desarrollo de scripts en general en Flokzu](https://docs.flokzu.com/es/article/desarrollo-de-scripts-en-flokzu-qgr55w/?1540323241074). Es importante usar funciones como `parseInt` o `parseFloat` cuando hagas operaciones matemáticas, y también puedes usar las librerías para manejar fechas. Además, dentro del script, tienes acceso a funciones propias de Flokzu como `getFieldValue()`.

||| **¡Importante!** No es posible usar las funciones `onChange` y `onInit` dentro de los scripts de los campos autocalculados. No tendrán ningún efecto y pueden causar comportamientos inesperados.

