Expresiones computacionales
Las expresiones computacionales le dicen al programa qué cálculos se deben realizar en la tabla. Los cálculos siempre se realizan de forma secuencial, por lo que es importante definir correctamente su orden.
Las expresiones se ejecutan cada vez que se modifica uno de los campos que se muestran dentro de ellas. Sin embargo, las expresiones solo actúan dentro del detalle actual y cualquier tabla adicional.
Para administrar las expresiones, hacer clic en Configura y visualizar la pantalla correspondiente.
El campo donde se guardará el resultado de la expresión se muestra en la columna derecha. La expresión real se creará en la columna central. La columna izquierda contiene todos los campos de la tabla y tablas adicionales que se pueden usar dentro de las expresiones.
Los campos siempre están encerrados entre corchetes [].
Si el campo está encerrado entre llaves {}, significa que el campo requerido no se encuentra dentro de la tabla, sino que es un campo que pertenece a la tabla principal (por lo tanto, no es una tabla adicional).
Ejemplos de expresión computacional
[total_precio] = [total_venta] - [descuento_total]
La expresion establece el campo [total_precio] restando el [descuento_total] de [total_venta].
[tiempo_producion] = ([cantidad_requerida] * [horas_trabajo]) / [numero_maquinas]
La expresión muestra cómo configurar un cálculo con corchetes.
[total_precio] = [total_venta] - ([total_venta] / 100) * [descuento_porcentaje]
La expresión establece el [total_precio] calculando un porcentaje de descuento en la venta total.
[total_precio] = sum([facturas_rows.total_precio])
El valor se recupera de la suma de la columna [total_precio] que se muestra en la tabla facturas_rows. La función SUM solo se puede usar desde el detalle hasta la tabla adicional y no al revés. La razón es que el detalle no puede acceder a un solo valor en una línea específica contenida en la tabla adicional (facturas_rows). Por lo tanto, solo puede solicitar un valor único, en este caso la suma de la columna.
[total_precio_bruto] = sum([facturas_rows.total_precio])
[total_precio_neto] = [total_precio_bruto] – ([total_precio_bruto] / 100) * [descuento_porcentaje]
Primero establecemos un valor parcial para poder mostrar el bruto en [total_precio_bruto]. Este valor se usó para calcular el valor neto.
[total_linea_bruta] = [precio_unico_linea] * [Cantidad]
[total_linea_neta] = [total_linea_bruta] – ([total_linea_bruta] / 100) * {descuento_cliente}
En este caso, las expresiones están dentro de la línea de la tabla adicional. El campo {descuento_cliente} escrito entre llaves informa al programa que el valor no está presente en la línea, pero debe recuperarse de los detalles pradre (si los hay). Por lo tanto, con cada línea agregada a la factura, el programa recuperará el conjunto de descuentos en los datos principales. Al cambiar el descuento del cliente en la factura, todas las líneas presentes se recalcularán con el nuevo valor.
[iva_total] = if([exencioniva]=1?0:sum([facturas_rows.iva_total]))
Se utiliza un condicional en la expresión para poder establecer un valor basado en una elección. La expresión, antes de establecer [iva_total], verifica cuánto vale el campo [exencion]. Si el campo es 1, entonces [iva_total] se establece en 0; de lo contrario, se establece en la suma de la columna [iva_total] presente en la tabla facturas_rows.
[total_dias] = days([fecha_fin] : [fecha_inicio])
[total_horas] = hours([fecha_fin] : [fecha_inicio])
Este tipo de expresiones se utilizan para extraer las horas o el número de días a partir de dos fechas.