Ver Mensaje Individual
  #4  
Antiguo 03-03-2009
Galahad Galahad is offline
Miembro
 
Registrado: abr 2007
Posts: 266
Reputación: 20
Galahad Va por buen camino
Wink Consulta en qreport

Cita:
Empezado por manueltp Ver Mensaje
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
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...
Responder Con Cita