Lógica y Eventos

FlowFields

Dificultad: 6/10

En las bases de datos normales, si entras en un albarán y quieres mostrar siempre la "Suma Total de Euros" a pagar, creas un campo y programas triggers para que se actualice sumando cada vez que añadan, editen o borren una línea. Un FlowField te libera de todo ese trabajo sucio.

Concepto de Campos Calculados Dinámicamente

Un FlowField *no existe* físicamente en la base de datos como un número estático guardado en su cajita. Actúa como un *embudo vivo*. Su valor está siempre vacío hasta que una pieza de interfaz (una pantalla), o un código lo "calcula" pidiendo su refresco explícito.

¿Qué logra? Ahorra espacio de almacenamiento masivo y evita errores fatales si un trigger se salta la actualización.

Funciones Soportadas e Implementación

Un FlowField requiere un FieldClass = FlowField; y una fórmula matemática expresada con CalcFormula. Las operaciones que soporta por detrás la base de datos SQL son limitadas:

field(50; "Importe del Préstamo Activo"; Decimal)
{
    FieldClass = FlowField;
    // Calcula la SUMA del campo "Saldo". 
    // Donde el "Nº Socio" del préstamo coincida con el "Nº" del Socio que estoy viendo.
    CalcFormula = Sum("Detalle de Préstamos".Saldo 
                      where("Nº Socio" = field("No.")));
}
← Volver a Teoría