PDA

Ver la Versión Completa : Campos Repetidos en QReport


jdangosto
20-10-2005, 08:52:07
Buenas.

Tengo un informe que me repite datos. Los datos mostrados en el informe son tomados de una consulta en un formulario externo a la cual se le pasan parametros (Eso es otra historia, ya que en el SQLExplorer la fecha la toma con formato Inglés mm/dd/aaaa y en la toma de datos del form ha de ser dd/mm/aaaa).

A lo que iba, la consulta es la siguiente:
SELECT Combus, Matricula, Fecha, Precio, Litros, Repost_vehic."Precio Total"
FROM "repost_vehic.DB" Repost_vehic
where (origen = 'Gasolinera Cepsa')and (fecha >= '09/01/2005') and (fecha <= '09/30/2005')

Los datos se lo paso a la consulta de la siguiente forma:
query_gasoil.ParamByName('ini').AsDate := strtodate (edit1.Text);
query_gasoil.ParamByName('fin').AsDate := strtodate(edit2.Text);

En el Informe, cada QRDBText está vinculado a un campo de la consulta.
El informe muestra los datos, pero me devuelve dos campos repetidos.

¿Me podéis hechar una mano?

Gracias

vtdeleon
20-10-2005, 13:37:22
SAludos

A primera vista no veo nada error en la consulta. Bueno, en la consulta das un rango de fecha, supongo que se espera mas de un registro(o no?:confused: )

Enlaza el Dataset ocn un DBgrid y chequea a ver si te muestras estos campos repetidos

Lepe
20-10-2005, 17:26:33
En principio hablas de que le pasas parámetros a la consulta, pero en la consulta no tienes parámetros, tienes fechas por defecto. :confused:

Por otra parte, en lugar de usar TEdits para que el usuario introduzca una fecha, es mejor que uses un TDateTimePicker, así evitas la posibilidad de que el usuario eliga una fecha inválida.

Dices que el informe te envía 2 campos repetidos.... ¿a que te refieres con campos? un campo sería "precio total", o bien matricula, fecha etc.

Si obtienes 2 filas de datos completamente iguales, se trata de 2 registros distintos, y por ende tambien estarán repetidos en la base de datos.

saludos

jdangosto
21-10-2005, 08:48:07
Buenas.

Esta es la consulta con los parámetros que le paso y de qué forma:
SELECT Combus, Matricula, Fecha, Precio, Litros, Repost_vehic."Precio Total"
FROM "repost_vehic.DB" Repost_vehic
where (origen = :ori)and (fecha >= :ini) and (fecha <= :fin)

Lo del DateTimePicker no lo había pensado, mirare a ver que tal me va con el.

Como indica Lepe en su respuesta, lo que me repite son filas completas con los mismos datos, pero he comprobado los registros de la BD y no están repetidos.

Lo intentare con el Dbgrid y el DateTimePicker

Lepe
21-10-2005, 11:05:41
La consulta es bastante simple, accedes a una sola tabla y haces un filtro en la parte WHERE. Es imposible que repita registros.

Supongo que la tabla tendrá una clave primaria, añadela al SELECT, para localizar mejor esos registros repetidos y despues mirarlos en la BBDD.

Como estas viendolo a través de un QuickReport, mira la impresora a ver si por defecto la impresora tiene "imprimir 2 copias".

Otra posible causa de repetición, es que uses una banda Detalle y otra Subdetalle, ambas haciendo uso de la misma consulta. Para esto debería haber dos QRDBTEXT repetidos.

saludos