Uso de Funciones (fx) en Gestores y Campos Calculados

En los Gestores existe la posibilidad de calcular los valores de una celda (referenciados como campos) para columnas/filas independientes utilizando fórmulas escritas como expresiones de cadena.
Las fórmulas pueden incluir cualquier número de campos, constantes, operadores y funciones.
Para acceder a su definición haga clic con el botón derecho sobre una columna y elija la opción 'f= Expression Editor ...' del sub-menú.



Una vez acceda al editor de Expresiones, indique la operativa deseada.

En el editor observará 4 zonas diferenciadas, la superior correspondiente a la fórmula, y las 3 inferiores sirven de asistentes indicando qué podemos usar y cómo.
Las 'Functios/Common' son funciones especiales diseñadas para operaciones específicas de ZGEST (**Pulse aquí para acceder al listado).

Para facilitar la operativa se han creado una serie de Campos sobre los cuales indicar esta formulación denominados como 'cxView1Calc'+'Tipo_de_Campo'+'contador' (ej. '*cxView1CalcFloat1'.

El Tipo de Campo determina si el valor resultante será tratado como:

  • Float: El tipo de dato numérico FLOAT permite almacenar pequeños números decimales (de punto flotante). Al ser de punto flotante, sus cálculos son aproximados. Podemos especificar el número máximo de dígitos (tamaño) y el número de decimales (decimal). Por ej: FLOAT(6,2) tendrá 4 dígitos enteros y 2 decimales, es por esto que en el configurador del Gestor determinamos la precisión operativa de cada uno de ellos.
  • Variant: Puede contener filas de tipos de datos diferentes, por ejemplo, una columna definida como puede almacenar valores int, binario y char. Un tipo de datos sql_variant debe convertirse en su valor de tipo de datos base antes de poder tomar parte en operaciones como la adición y la sustracción. Se puede asignar un valor predeterminado a sql_variant. Este tipo de datos también puede incluir NULL como valor subyacente, aunque estos valores NULL no dispondrán de un tipo base asociado. Además, sql_variant no puede tener otro sql_variant como su tipo base.
  • String: Es una cadena de caracteres palabras, ristra de caracteres o frase. 
Tipo de campo y valores de Fechas.
Si desea mostrar un dato de fecha, por ej. la función 'Now()' que le devuelve la fecha y hora actuales del sistema,  le recomendamos el uso de un tipo de Datos Variant (si va a operar con otros) o String, pero no float ya que es será el valor numércio global.

Cuando definimos una función, nos podemos apoyar en columnas naturales o columnas las cuales son el resultado de funciones, por ej, imaginemos que deseamos obtener el valor los 'Pedidos Pendientes de Servir Iva Incluido':

  1. por un lado podemos calcular el Importe Iva incluido más descuentos y recargos de cada una de las líneas del Pedido, a partir de su información natural, es decir el Importe Neto de la línea almacenado, el tipo de IVA a aplicar, los descuentos grupales de Pronto Pago y General, etc.
  2. Tras obtener el importe incluyendo el iva y descuentos generales calcularemos el Precio por Unidad, para ello dividiremos el importe calculado en el punto anterior por el total de unidades pedidas.
      
  3. Y para finalizar una vez tenemos el precio por unidad simplemente nos quedará operarlo por la columna de 'unidades pendientes'

Un truco para no mostrar las columna usadas como apoyo para los cálculos es ubicarlas en una de las 'Bandas' de columnas fijas, y deshabilitarla.


Uso de Campos en la formulación

Ud. podrá usar cualquier campo como parte de la formulación, la única regla a seguir es que en su denominación no debe incluir los caracteres corchete  abierto '['  o cerrado ']', es por esto que los campos deberán redefinirse  si fuera necesario, ya que en la fórmula se usan según el texto que se muestra como titular en la 'Columna', que como ya sabe es un valor modificable por el usuario.



En las fórmulas Ud. podrá usar campos marcados entre corchetes  para recuperar el valor variable de la fila  Ej. [campo] o directamente un valor constante indicado por un literal entre comillas simples Ej.  'valor'

Importante: Eliminar un campo con una fórmula de un diseño no evita su proceso, antes de retirarlo borre su formulación.