¿COMO SE HACE UN SUMA Y SIGUE EN UN REPORT?

Fernando
13 de Agosto del 2004
Alguien me puede indicar como hacer un suma y sigue en un report. Gracias

MJPP
13 de Agosto del 2004
Yo lo haria asi : un ejemplo de acumular saldos


1. Definimos un parametro de usuario en el modelo de datos (SALDO_FILAANTERIOR,tipo Number de tamaño 38 por ejemplo).
2. En el modelo de datos, en el grupo de repeticion,o sea donde aparecen la columna saldo e importe respectivamente, añadimos una COLUMNA DE FORMULA (llamemosla ACUMULADO).
3. Asociamos el codigo siguiente (Pl/sql) al trigger de la columna de fórmula.

Function ACUMULADOFormula return Number is
begin
declare resultado number(38);
begin
--SI EL PARAMETRO ES 0 ES Q ES LA PRIMERA VEZ SINO ES Q YA HEMOS ACUMULADO
IF :SALDO_FILAANTERIOR > 0 THEN
IF :V_TIPOCONTAD='I' THEN -- SI ES UN INGRESO
RESULTADO :=:SALDO_FILAANTERIOR + NVL(:SALDOFILA,0);
ELSE
RESULTADO :=:SALDO_FILAANTERIOR - NVL(:SALDOFILA,0);
---OJO CON EL NVL, SI VIENE NULO Y NO SE PONE PUEDE HACER COSAS RARAS
END IF;
ELSE
--SI ES LA PRIMERA VEZ
IF :V_TIPOCONTAD='I' THEN
RESULTADO:=:P_SALDO + NVL(:SALDOFILA,0);
ELSE
RESULTADO:=:P_SALDO - NVL(:SALDOFILA,0);
END IF;
END IF;



--ACUMULAMOS EN EL PARAMETRO
:SALDO_FILAANTERIOR := RESULTADO;


--DEVOLVEMOS EL RESULTADO/ACUMULADO COMO RESULTADO DE LA FORMULA.
RETURN(RESULTADO);

END;
end;

4. A la columna SALDO del diseño, le asociamos el campo formula ACUMULADO, de ésta forma cada vez se ira calculando la formula y actualizando el párametro (saldo_filaanterior).


espero haberme explicado suerte ¡¡