Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Ayuda en Qreport, un reporte dificicl.. (https://www.clubdelphi.com/foros/showthread.php?t=63757)

manueltp 01-03-2009 17:36:11

Ayuda en Qreport, un reporte dificicl..
 
hola aki de nuevo amigos de club delphi...
a ver si me podian ayudar con un problema que estoy teniendo al querer realizar un reporte.....
el sistema es referente a facturacion.....
y necesito un reporte en donde me salga un campo con saldo inicial y un saldo final .....
pero ese saldo final lo puedo sacar de una sumatoria de los datos que voy a mostrar , pero el saldo final seria de una sumatoria pero de un mes anterior al del reporte que voy a imprimir (el reporte es por mes y por proveedor o cliente)y no hallo como obtener ese dato....
si hacer dos reportes o como calcularlo.......:confused::confused::confused:
es un reporte parecido a los que saca un programa muy utilizado en contabilidad ......no kisiera poner el nombre......
es para ver los saldos iniciales y finales ya sea de un proveedor o cliente en base a sus facturas.......

les agradeceria demasiado, y aver si me explique bien

Galahad 01-03-2009 18:07:36

ayuda en qreport
 
se me ocurre que podrías calcular dicha información en el evento 'Beforeprint', bien de la banda del qreport donde quieras imprimir dicha información, o bien en el mismo evento del qrlabel o qrexpression .
El cálculo podrías hacerlo con una consulta (query) , a la que le pasarías en tiempo de ejecución los parámetros oportunos.
Para cualquier aclaración adicional, procura informar un poco del código que estás utilizando, con el fin de ayudarte mejor.
saludos...

manueltp 03-03-2009 03:50:04

hola gracis por la idea que me das levanteelx....
la cosnulta sql que tengo es esta.

Código SQL [-]
Select F.FECHA, F.FOLIO, C.NOMBRE ,
F.DEDUCIBLE,F.COASEGURO,F.TOTAL2, A.FECHA,
A.ABDEDUCIBLE,A.ABCOASEGURO,A.ABTOTAL2
from ABONO A
 inner join  FACTURA F on (F.FOLIO=A.FOLIO)
 inner join  CLIENTE C on (C.CLAVEC=F.CLAVEC)
WHERE F.FECHA BETWEEN :fecha1 and :fecha2
and A.FECHA BETWEEN :fecha3 and :fecha4
and F.ESTADO='A'
order by F.FECHA

pero el resultado en el reporte me da repetido dos veces los datos de factura , esto sucede si la factura tiene algun abono......
y pues yo quiesiera que se imprimiera un linea por cada tipo , ya sea si fue cargo o abono.....y como hago sumatoria al final, se me duplican los cargos...
ojla me explique bien y me puedan ayudar....

y agradeceria mucho si me explicaran un poco mas sobre las consultas para mandarlas en tiempo de ejecucuion en algun componente ya sea en qrlabel o qrexpression... gracias anticipadas:confused::confused:

Galahad 03-03-2009 09:50:59

Consulta en qreport
 
Cita:

Empezado por manueltp (Mensaje 339921)
pero el resultado en el reporte me da repetido dos veces los datos de factura , esto sucede si la factura tiene algun abono......

Revisa la base de datos y comprueba que no tengas en la tablas de abonos más de un registro con el mismo número de campo 'Folio', prueba la
sentencia sql en un editor sql y observa las filas que te devuelve,casi con toda seguridad es un problema de consistencia de la consulta o de la base de datos

Cita:

y pues yo quiesiera que se imprimiera un linea por cada tipo , ya sea si fue cargo o abono.....
para hacer eso te recomiendo que hagas lo siguiente:
  1. Amplias la banda de detalle y posiciones en dos lineas los elementos que desees imprimir, en la primera linea los datos de la factura , y en la segunda los de los abonos.
  2. En el evento 'Onbeforeprint' de la banda de detalle del report, puedes
    cambiar la altura de la banda dependiendo de si tiene o no información de abonos, por ejemplo:
if consulta.fieldbyname('abtotal2').value <> 0 then
bandadetalle.height := longitud_normal else
bandadetalle.height := longitud_normal - longitud_elementos_abonos

Cita:

y como hago sumatoria al final, se me duplican los cargos...
ojla me explique bien y me puedan ayudar....
te creas unas variables que inicializas en el evento 'onbeforeprint' del report, y después en la banda de detalle, en el evento 'onafterprint' efectuas la suma
vtotal_fac := vtotal_fac + consulta.fieldbyname('total').value
vtotal_abo := vtotal_abo+ consulta.fieldbyname('abtotal').value despues solo tienes que crear en la banda de final del listado un qrlabel o qrexpr, y poner en el evento onafterprint , value := formatfloat('###,###.##',vtotal), por ejemplo

Cita:

y agradeceria mucho si me explicaran un poco mas sobre las consultas para mandarlas en tiempo de ejecucuion en algun componente ya sea en qrlabel o qrexpression... gracias anticipadas:confused::confused:
Si necesitas presentar un resultado en el informe que necesite de una consulta, puedes poner un componente tquery donde tengas dicha consulta
por ejemplo: select sum(total) as ntotal from facturas ,
después , en el evento onbeforeprint simplemente abres la consulta:
consulta.open;
value := formatfloat( '###,###.##',consulta.fieldbyname('ntotal').value );
tambien se puede crear la misma consulta en el evento asi:
consulta.sql.clear;
consulta.sql.add('select sum(total) as ntotal from facturas');

Espero no haberte liado mucho....:):)

Saludos...


La franja horaria es GMT +2. Ahora son las 18:13:49.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi