3.3Totales acumulados en curso (Running Total)
Lo esencial en 30 segundos
- Resumen = total final, acumulado = total que sube: el resumen (2-2) da UN total al final; el acumulado en curso muestra el total intermedio en cada línea (saldo progresivo, total a la fecha).
- El ajuste crucial es el Reset: nunca (acumulado global en todo el informe), por grupo (vuelve a cero por cliente/cuenta), o por fórmula — le da su sentido al acumulado.
- Un acumulado depende del orden: suma en el orden de visualización — ordenar las líneas primero (por fecha para un extracto), si no los saldos intermedios no tienen ningún sentido.
Minicaso hilo conductor — Farès elabora el extracto progresivo por cliente
Farès, controlador de gestión en Argel, debe entregar a cada comercial el extracto de sus clientes con el saldo DESPUÉS de cada factura — no solo el total final. Crea un campo de acumulado (explorador → Running Total Fields): campo Importe en Suma, evaluado para cada registro, restablecido con cada cambio de grupo Cliente, líneas ordenadas por fecha. Cada línea muestra ahora el saldo acumulado a esa fecha, volviendo a cero para cada cliente. Los comerciales siguen la evolución en lugar de descubrir el total al final.
Este mismo caso vuelve en el curso, el esquema, el guion y el desafío 48h.
1. Acumulado frente a resumen: el total que progresa
Una necesidad que los resúmenes clásicos no cubren: el ACUMULADO EN CURSO (Running Total) — una suma (o un recuento) que se ACUMULA línea tras línea, mostrando el total « en esta línea ». Ejemplos: saldo progresivo de un extracto de cuenta (cada línea muestra el saldo tras la operación), total « a la fecha », acumulado de clasificación. Allí donde un resumen da UN total al final de un grupo o del informe, el acumulado da el total INTERMEDIO en CADA línea, progresando.
Crystal Reports ofrece una herramienta dedicada: los campos de acumulado (Running Total Fields), creados en el explorador. Allí se definen tres cosas: (1) el CAMPO a acumular y la OPERACIÓN (Suma, Recuento…); (2) la CONDICIÓN de evaluación (para cada registro, o bajo condición — añadir solo ciertas líneas); (3) sobre todo la condición de RESTABLECIMIENTO (Reset) — cuándo poner el acumulado a cero. El acumulado se muestra en la sección Detalles (el total en cada línea) o en un pie (el acumulado final).
2. El restablecimiento: el ajuste que lo hace todo
Tres opciones de Reset, tres sentidos diferentes. No restablecer nunca: el acumulado recorre TODO el informe, de principio a fin — un total global que sube continuamente (saldo general progresivo). Restablecer con cada cambio de GRUPO: el acumulado vuelve a cero para cada grupo — un saldo progresivo POR cliente, POR cuenta (el caso de Farès). Restablecer por una FÓRMULA: condición personalizada para los casos especiales. Ajustar bien el restablecimiento es la diferencia entre un acumulado correcto y un total incoherente.
Dos precauciones. Primero el ORDEN de las líneas: un acumulado suma en el orden de visualización — unas líneas sin ordenar (por fecha para un extracto) dan saldos intermedios absurdos aunque el total final parezca bueno. Después los duplicados de combinación (nivel 0): como para los resúmenes, unas líneas multiplicadas inflan el acumulado — y las condiciones de evaluación inadecuadas (añadir demasiadas o pocas líneas). En caso de incoherencia: verificar el orden, luego el Reset, luego la condición de evaluación, en ese orden.
🔎 Ejemplo concreto — Saldo progresivo por cliente, ajuste completo
Farès configura su campo de acumulado para los extractos comerciales.
Campo: {Factures.Montant} — operación Suma
Evaluar: para cada registro
Restablecer: con cada cambio de grupo (Cliente)
→ líneas ordenadas por fecha; acumulado colocado en Detalles.
Lectura: cada línea muestra el saldo a esa fecha, por cliente.
Lección: el mismo acumulado en « nunca » daría un saldo global — otra necesidad, otro Reset.
Vocabulario de la sección
- Acumulado en curso (Running Total)
- Suma o recuento que se acumula línea tras línea, mostrando el total « en esta línea » (saldo progresivo, total a la fecha).
Ejemplo sencillo: El saldo tras cada factura en el extracto de Farès.
Lo que no es: un resumen que solo da un total final.
Reflejo: en cuanto haya que ver la progresión, no solo el final.
- Campo de acumulado (Running Total Field)
- Objeto dedicado creado en el explorador: campo a acumular, operación (Suma, Recuento…), condición de evaluación y restablecimiento.
Ejemplo sencillo: El campo Suma de {Factures.Montant} de Farès.
Lo que no es: un contador programado a mano en fórmula.
Reflejo: usar la herramienta dedicada en lugar de improvisar.
- Restablecimiento (Reset)
- Ajuste crucial: cuándo poner el acumulado a cero — nunca (global), con cada cambio de grupo (por cliente/cuenta), o por fórmula.
Ejemplo sencillo: La vuelta a cero por cliente de los extractos de Farès.
Lo que no es: un acumulado que sigue subiendo de un cliente a otro.
Reflejo: elegir el Reset según la intención ante todo.
- Acumulado frente a resumen
- El RESUMEN (2-2) da un total al final de un grupo/del informe; el ACUMULADO da el total intermedio en cada línea, progresando.
Ejemplo sencillo: Total final del cliente frente a saldo tras cada factura.
Lo que no es: un resumen copiado en los Detalles como si fuera un acumulado.
Reflejo: progresión → acumulado; síntesis → resumen.
- Dependencia del orden
- Un acumulado suma en el orden de visualización: unas líneas mal ordenadas dan intermedios falsos (aunque el final sea bueno).
Ejemplo sencillo: El extracto ordenado por fecha antes de todo acumulado.
Lo que no es: un acumulado sobre líneas en el orden aleatorio de la base de datos.
Reflejo: ordenar siempre antes de acumular.
En la práctica — Crear un acumulado en curso
- Cree un campo de acumulado (explorador → Running Total Fields → Nuevo): campo a acumular + operación Suma.
- Ajuste el RESTABLECIMIENTO según la necesidad: nunca (saldo global) o con cada cambio de GRUPO (saldo por cliente/cuenta).
- Coloque el acumulado en la sección Detalles y ORDENE las líneas en el orden esperado (fecha, secuencia).
- Verifique en la vista previa: el total progresa línea tras línea y se restablece (o no) como previsto.
Guion listo para decir — entregar los extractos a los comerciales (30 s)
« Cada extracto muestra ahora el saldo tras cada factura, en el orden de las fechas, y vuelve a cero para cada cliente. Siguen la evolución en lugar de descubrir el total al final — y el acumulado se recalcula solo con cada actualización. »
Para decir al entregar los extractos; mostrar una línea y su saldo acumulado.
Plantilla copiar-pegar — acumulado manual en fórmula (sintaxis Crystal)
// Fórmula @Cumul colocada en Detalles (si hace falta fuera de la herramienta dedicada)
WhilePrintingRecords;
NumberVar Cumul;
Cumul := Cumul + {Factures.Montant};
Cumul
// Fórmula @ResetCumul colocada en Encabezado de grupo Cliente
WhilePrintingRecords;
NumberVar Cumul := 0;
Independiente
Un campo de acumulado bien restablecido y sus extractos progresivos se venden solos.
PYME en Argel
Farès entrega los extractos por cliente: saldo en cada línea, ordenados por fecha.
Equipo de proyecto
Estandarizar el Reset por grupo Cliente para todos los extractos comerciales.
Principiante
Esta semana: un acumulado global (nunca) + un acumulado por grupo, comparados en vista previa.
✓ Buenas prácticas
- Elija el Reset ANTES de crear el acumulado: define lo que la cifra significa.
- Ordene siempre las líneas en el orden esperado antes de acumular (fecha, secuencia).
- En caso de incoherencia, verifique en el orden: orden, Reset, condición de evaluación.
✗ Errores frecuentes
- Olvidar el orden: intermedios absurdos con un total final que parece bueno.
- Dejar « no restablecer nunca » para una necesidad por cliente (o al revés).
- Acumular sobre líneas duplicadas por una mala combinación (sumas infladas).
Puntos clave
- El ACUMULADO muestra el total INTERMEDIO en CADA línea (saldo progresivo) — el resumen solo da un total final.
- Herramienta dedicada: CAMPOS DE ACUMULADO — campo, operación, condición de evaluación y sobre todo RESTABLECIMIENTO.
- RESET: NUNCA (global), POR GRUPO (vuelve por cliente/cuenta), o POR FÓRMULA — determina el sentido del acumulado.
- Un acumulado DEPENDE DEL ORDEN: ordenar antes, verificar en vista previa, vigilar los duplicados de combinación.
Desafío 48h — aplíquelo mañana
Produzca 1 extracto progresivo real (acumulado por grupo, líneas ordenadas) y hágalo controlar por un comercial línea por línea.
- Distingo acumulado progresivo y total final.
- Mi Reset corresponde a la intención (global o por grupo).
- Mis líneas están ordenadas y mi acumulado verificado en vista previa.
Preguntas frecuentes
Acumulado o resumen: ¿cuándo usar uno u otro, y cómo ajustar el restablecimiento?
El RESUMEN (2-2) da UN total al final de un grupo (subtotal) o del informe (total general) — úselo para el total de un grupo o global. El ACUMULADO da el total PROGRESIVO en cada línea — úselo para un SALDO línea por línea (extracto), un total « a la fecha », un acumulado que vuelve por categoría. Requisitos previos del acumulado: informe agrupado si Reset por grupo, líneas ordenadas. Ajustes: « no restablecer nunca » = acumulado global continuo; « con cada cambio de grupo » = vuelve a cero por grupo (saldo POR cliente); « por fórmula » = condición personalizada. La opción « agrupar el resto / Otros » y el acumulado condicional (añadir solo ciertas líneas) completan la herramienta.
Mi acumulado da resultados incoherentes: ¿qué causas verificar?
En el orden: (1) El ORDEN de las líneas (causa n.º 1) — el acumulado suma en el orden de visualización; sin orden por fecha/secuencia, los intermedios no tienen ningún sentido aunque el final pueda ser bueno. Remedio: ORDENAR antes. (2) El RESET mal ajustado — un « nunca » que sigue subiendo de un cliente a otro, o un restablecimiento en el grupo equivocado. Remedio: ajustar según la intención. (3) La CONDICIÓN DE EVALUACIÓN — « para cada registro » por defecto; si solo quiere acumular ciertas líneas, la condición debe corresponder. (4) Los DUPLICADOS de combinación — líneas multiplicadas = acumulado inflado, como para los resúmenes. Verifique un acumulado contra valores conocidos línea por línea, no solo el total final.
¿Qué regula el restablecimiento (Reset) de un acumulado en curso?