[Lazarus-es] Fw: Sumar grupos a partir de una variable en un reporte

Maxi maximiliano.duarte en gmail.com
Dom Ago 25 07:42:15 CEST 2013


El día 23 de agosto de 2013 13:09, Ismael L. Donis Garcia
<ismael en citricos.co.cu> escribió:
> Nadie de la lista me podría ayudar en el mensaje de abajo.
>
> He probado de las siguiente formas:
>
> [SUM([SALDEBE] ,MasterData1)]
> [SUM(SALDEBE ,MasterData1)]
> [SUM([SALDEBE ,MasterData1])]
>
> Y de ninguna me suma, siempre el valor devuelto es 0.
>
> Sin embargo si la pongo en el pie del grupo si me suma bien el resultado.
> Pero yo necesito la sumatoria en el encabezado del grupo, ósea en la parte
> superior, no en la parte inferior.
>
> Como podría totalizar el valor del grupo en la parte superior en LazReport
> con el uso de uan variable?
>
> Debo usar una variable ya que el saldo puede ir indistintamente al debe o al
> haber
>
> Saludos Cordiales
> ========
> | ISMAEL |
> ========
> ----- Original Message -----
> From: Ismael L. Donis Garcia
> To: Spanish Lazarus
> Sent: Wednesday, August 21, 2013 4:04 PM
> Subject: Sumar grupos a partir de una variable en un reporte
>
> Estoy tratando de realizar un reporte con multiple grupos anidados, donde
> cada grupo debe tener una sumatoria de una variable, pero no logro ni
> obtener la sumatoria del primer grupo:
>
> Los grupos serían: Cuenta, subcta, capítulo, subcap, elemento, empresa.
>
> A las variables les paso el valor de la sigiente forma:
>
> procedure Tflbal.rptGetValue(const ParName: String; var ParValue: Variant);
> begin
>   if (ParName = 'SALDEBE') then
>     begin
>       if (UpperCase(dm.rssc3.FieldByName('nat').AsString) <> 'A') then
>        ParValue := dm.rssc3.FieldByName('saldo').AsFloat;
>     end
>   else if (ParName = 'SALHABER') then
>     begin
>       if (UpperCase(dm.rssc3.FieldByName('nat').AsString) = 'A') then
>        ParValue := dm.rssc3.FieldByName('saldo').AsFloat;
>     end;
> end;
>
> El reporte deberia ser por ejemplo:
>
> Cuenta       Nombre                          Debito              Credito
> xxx           xxxx                         suma(saldebe)   suma(salhaber)
>    subcta    Nombre
>    xxx        xxxx                         suma(saldebe)   suma(salhaber)
>    capitulo  Nombre
>    xxx     xxxx                            suma(saldebe)   suma(salhaber)
>
>
> Y así hasta la empresa.
>
> Pero no puedo obtener ni la sumatoria de la cuenta. Y probado de cuanta
> forma se me ha ocurrido. Y no encuentro como hacerlo.
>
> Alguien me podría decir como?
> ========
> | ISMAEL |
> ========
> Only for the small landowners and Cubans companies
> Website: www.sisconge.byethost15.com
>               www.sisconge.hol.es
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>

Es que suena poco logico, para sumarlos primero debes recorrer todo el
grupo. Lo que se me ocurre es que lanzes una query antes de imprimir
para ese grupo y ahi tendrias los valores antes de imprimirlos.

-- 
El que pregunta aprende, y el que contesta aprende a responder.

No a la obsolecencia programada:
http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml

Linux User #495070
http://domonetic.com/blog




More information about the Lazarus-es mailing list