Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Registro actual en quick report (https://www.clubdelphi.com/foros/showthread.php?t=62741)

ctrl_attack 12-01-2009 04:27:13

Registro actual en quick report
 
Hola que tal, la verdad es algo frustante lo que me pasa, ya que ya habia echo esto y me habia salido bien en otras aplicaciones, no se a que se deba.

Tengo un aplicacion, la cual en un boton le puse este codigo.

Código Delphi [-]
 
datamodule6.ADOQuery1.SQL.Text:= 'SELECT * From Tbsindicatos';
  datamodule6.ADOQuery1.SQL.Add('WHERE (((tbsindicatos.MUNICIPIO)="acayucan"))');
  datamodule6.ADOQuery1.Active:= True;
              central.showModal;

Con esto Hago que el formulario "central" me muestre en sus dbedits todos los registros que en el campo municipio que digan acayucan, se muestren, es decir lo utilizo como un filtro para mostrar solo los registros que digan acayucan.

y asi con los demas botones que tengo, solo cambiara el nombre de municipio.

bueno en eso ando bien, pero tambien quiero que en el form central tenga su boton de imprimir, asi que diseñe un reporte y bueno lo puse en el boton con form1.qreport.preview;

hasta ahi vamos bien, solo que me muestra todos los registros de acayucan, y yo solo quiero que me muestre el registro que estoy viendo.

En el form tengo un dbgrid y varios dbedits, se supone que al posicionarme en alguno, y darle imprimir me saldra el informe con solo el registro que estoy viendo, pero ahora no me funciona, yo recuerdo que hace años lo hice y no tuve problemas, pero ahora no, no se que diantres estoy haciendo mal.

tengo delphi 7
uso access como base de datos
y en el adoquery uso esta sql SELECT * From Tbsindicatos

no se que pasa...

Caro 12-01-2009 15:47:51

Hola ctrl_attack, por lo que entiendo el DataSet de tu QuickReport es el mismo donde haces la consulta "....WHERE tbsindicatos.MUNICIPIO = "acayucan") ", si es así es normal que te muestre todos los registro que coincidan con esa condición, supongo que estas usando una banda Detail, si solo quieres mostrar el registro actual, podrías usar otro Query para el reporte y en el Where poner condiciones donde solo te muestre el registro que estas viendo en ese momento, supongo que tiene un codigo, preguntar por ese codigo que ya lo tienes en tu formulario central, o no utilizar un DataSet y cargar los valores que tienes en tus DBEdit en QrLabels o QrMemo en tu QuickReport.

Saluditos

ctrl_attack 12-01-2009 17:31:43

jeje si es cierto, para cargar los valores de los dbedits seria algo como esto en el boton imprimir?

DBEdit1.text:= form1.QrMemo.text;
form1.Qreport1.preview;

??

ctrl_attack 12-01-2009 17:32:35

jeje creo que era alreves, jeje

luisgutierrezb 12-01-2009 17:35:04

para que te deje solo el registro que estas viendo del reporte solo deja en blanco la propiedad dataset del reporte

Caro 12-01-2009 17:39:37

Cita:

Empezado por ctrl_attack (Mensaje 334236)
jeje creo que era alreves, jeje

Si, al reves, pero también puedes utilizar los QrLabels.

Cita:

Empezado por luisgutierrezb (Mensaje 334238)
para que te deje solo el registro que estas viendo del reporte solo deja en blanco la propiedad dataset del reporte

Si se deja la propiedad DataSet en blanco y un qrDBEdit se enlaza a un Query digamos, siempre muestra el primer registro de ese query, no el registro actual, por eso le decía que talvez tendría que hacer otra consulta o directamente pasar los valores que ya se tienen.

Saluditos

luisgutierrezb 12-01-2009 18:29:39

pues yo asi lo tengo en un sistema y lo acabo de ver para verificar, pero entonces filtra el dataset antes de imprimir y le quitas el filtro despues ya con eso debe salir solo el actual

ElKurgan 13-01-2009 08:17:57

Y digo yo... Si sólo quieres ver los datos de un registro, ¿por que no pones los componentes QRlabel en vez de los asociados a datos, y cargas los datos que quieres mostrar capturando el evento "OnNeedData"?

O también podrías filtrar el dataset por el registro actual justo antes de mostrar el informe, volviendo a eliminar el filtro al salir.

Un saludo

fidel 13-01-2009 17:28:31

Coge el nº del registro que estás viendo
Filtralo con esa condición: númereo de registro igual a ese número
Imprime

Bpascal 15-01-2009 03:45:50

re
 
La manera mas facil sin tener que modificar tu querry es mover todos los campos agregados en la banda de detalle y pasarla a la banda de titulo o de encabezado por ejemplo.

Elimina la banda de detalle y haz grande la banda de encabezado o de titulo y diseña el reporte ahi, de esa manera solo el registro actual aparecen.

Todo lo que se defina en la banda detail se ejecuta por cada registro del querry.

ctrl_attack 15-01-2009 06:51:13

Gracias
 
Gracias por toda su ayuda, probando un poco de todo logre solucionarlo, muchas gracias...


La franja horaria es GMT +2. Ahora son las 20:29:53.

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