PDA

Ver la Versión Completa : como le hago para no imprimir todos los registros


Gangster
02-11-2006, 21:20:32
Hola estoy usando el Quick Report pero al dar imprimir el registro que veo de la tabla me imprime todos los que tenga dentro de esa tabla como se le hace para que el quickReport no se vaya a otro registro y te imprima una sola entrada de la tabla o la que estes viendo actualmente, lo de imprimir lo tengo dentro de una forma.

Gracias de antemano cualquier sugerencia es bien recibida y de verdad AYUDA

jachguate
02-11-2006, 21:54:30
El qr tiene este comportamiento porque tenes asignado tu query a la propiedad DataSet del TQuickRep. En el inspector de objetos, dejá esta propiedad en blanco y tendrá el comportamiento que queres.

Hasta luego.

;)

fedelphi
02-11-2006, 21:57:06
si entendi bien tu problema creo que tienes que enlazar al reporte con una TQuery en vez de una TTable, con una sentencia sql que te devuelva lo que necesitas. Esto se logra ingresando las sentencias sql en la propiedad SQL del TQuery. Suerte.
Fede

Gangster
02-11-2006, 22:11:16
GGrcias Por Mandarme sus idea pero mi QuickReport es una hoja nomas que tiene asigandos q labels y qrdtext entonces en otra forma que registro datos ahi llamo a imprimir la forma que tiene la hoja pero como ahi un dbnavigator ahi dentro veo que cuando imprimo el dbnavigator se va a hasta el ultimo y empieza a imprimir por eso me imprime todos en ves de imprimirme el mio que veo.

La Linea que uso es asi
fmPrnCompacta.QuickRep1.Print;

Aver si fui mas Claro si busque lo que me dijeron del object viewer pero pues no esta ligado a un data set lo que liga a data set son los qfrdbtext.

Gracias a ver si fui mas Explicito

Caral
02-11-2006, 22:23:00
Hola Gangster
Creo que hay algo que estas haciendo mal, de una u otra forma.
Empecemos:
Primero tienes un form que llama al qreport; En este form la informacion tiene que ser filtrada de antemano para ser enviada al qreport, si no se filtra se vera como te pasa a ti la totalidad de los datos, ahora como se filtra, pues de varias formas pero una es haciendolo por sql con un query; Una vez que hayas filtrado la consulta, la envias al qreport; Otra es En el preciso momento en que envio a impresion, filtro, esto tambien con sql.
Si lo que tienes en el qreport es una conexion a tabla y no un query, pasara lo que te esta pasando.
Creo que para entender mejor la pregunta, seria bueno siempre colocar el codigo que se esta utilizando, asi, se puede analizar mejor la pregunta, ten en cuenta que si un maestro como jachguate no te ha ayudado es por la dificultad de entender la pregunta y o tener el codigo, esto lo digo solo como comentario.
Saludos

Gangster
02-11-2006, 22:32:33
Bueno ya entendi, ahora la cosa es que eso de querys con SQl se que ahi un tquery ahi dentro en la paleta que hago un select o como se haria el filtro, porque en si soy nuevo en esto de delphi,pero pues la sintaxis y los diferentes metodos no se como funcionan pero la verdad gracias por sus ideas y ayuda
es bueno contar con este tipo de foros porque estoy programando la verdad a puro asistente sin libros y me encontre con este problemita ya al imprimir.

Caral
02-11-2006, 23:04:38
Bueno Gangster
Vi que Jachguate te estava dando una respuesta y pare pero bueno, aqui va:
Empecemos desde el principio.
Sacas un query en la paleta, la que estes usando, puesto que no sabemos que base de datos usas,:rolleyes: bueno, este componente que se llama query, lo tienes que arastrar con el mouse hasta el form; una vez hecho esto el se llamara Query1, puede ser otro nombre.
Bueno, ya que nacio el query, vamos a hacer que se conecte a la base de datos; En el inspector de objetos siempre teniendo el query señalado, hay una opcion que se llama connection, tienes que indicar la conexion en este, posiblemente la tengas en un datamodule;
Ahora vamos al Sql TStrings del mismo, le das click y te saldra una pantalla, ahi vas a poner la sentencia sql para hacer la consulta, mas o menos dira esto:
Select TuCampo From TuTabla.
Esto para ver que pasa lo puedes hacer que se vea en el mismo componente que estes usando.
Cuando tengas listo esto tendras la consulta hecha y podras filtrar los datos, una vez que tengas esto llamas al reporte y te saldra lo que el query tenga.
Este mismo query se puede poner directamente en el qreport y ya, busca practicar un poco , es realmente facil.
La verdad sigue siendo muy dificil, trata de poner algo de codigo, solo copialo y pegalo por aqui, a ver si me entero mejor.
Saludos

jachguate
02-11-2006, 23:21:30
Hola

Aver si fui mas Claro si busque lo que me dijeron del object viewer

:confused: ¿te referís al Object Inspector?


pero pues no esta ligado a un data set lo que liga a data set son los qfrdbtext.

Insisto en mi punto. El reporte, bien desde diseño, o bien en tiempo de ejecución, se enlaza a un dataset.

Quizas tu código tenga algo como:

fmPrnCompacta.QuickRep1.DataSet := TablaX;


También podemos aplicar una medicina por código a esto:

fmPrnCompacta.QuickRep1.DataSet := nil;
fmPrnCompacta.QuickRep1.PreviewModal;


Que no es lo ideal, pero te ayudará a probar mi punto. ¿sigue fallando después de esto?

Si si, habrá que ver si la banda que usas no es un subdetalle. Si lo es (que no es necesaria) entonces será la propiedad datset de esta banda la que está mal asignada.

Hasta luego.

;)

Gangster
02-11-2006, 23:42:39
Es que primero no tengo en mi .pas muchisimo codigo por que todo lo he hecho por el object viewer la forma que tengo es una y ahi tengo dbedits que estan ligados a una tabla y en otra forma tengo hecho mi quick Report enotnces hice ya un tquery insertado en el QuickReport en la parte de SQL pongo asi

Select Folio From tbCompacta.db

y es todo pretendiendo con este Select traerme todo el renglon de ese folio pero la cuestion es como sabe la aplicacion que folio quiero porque el folio que imprimo es ta en un dbedit de otra forma enotnces en el boton donde mando imprimir ahi debo de poner codigo que solo tengo esto

Formatal.quickReport.Print;

entonces ahi es donde creo yo que debo de ligar lo hecho en el query pero no se como decirle que el dbdedit que tiene el folio,que es un numero me lo traiga junto con todo lo de ese renglon, si hago un query y se pone true
pero al imprimir me sigue imprimiendo todos los registros, la forma que tiene el registro a imprimir es como una forma de que pide datos al usuario y tiene su boton de imprimir entonces el usuario al dar imprimir quiero que lo que acaba de meter que se almaceno en una tabla de base de datos lo imprima pero nada mas ese unico, me voy a seleccionar folio porque es la llave primaria y la que tiene un numero que se diferencia de todas.

Gracias por su ayuda si poco a poco me estoy dando cuenta de cosas que son necesarias pero en si eso de SQL esta bien pero su uso no lo se muy bien aqui en Delphi pero gracias de Antemano.

Lepe
03-11-2006, 10:04:40
Añade restricciones:

Select Folio From tbCompacta where folio_id = :ElFolio


query1.parambyname('ElFolio').Asinteger:= 32;
query1.Open;// ahora solo trae el folio con id 32.


Saludos

Gangster
03-11-2006, 18:34:14
el codigo de delphi que me pones supongo que lo puedo poner dentro de un boton que quiero ponerle a mi forma para que imprima el quickreport pero no le hace caso al tquery que tengo dentro de la forma del quickreport entonces al hacer el select que me dice usted y ponerle un preview se va hasta el ultimo registro que tengo en esa tabla y me salen en el preview todas las imporesiones pero de todos los registros en si no se que este haciendo mal si mi query o el codigo en delphi es que esto es lo unico que me falta que me imprima un solo registro pero busco y busco de algo de query con quickreport y como llamarlo eso para un boton en una forma y no lo encuentro.

Gracias por su ayuda y se agradece todas las atenciones de este foro Pero si necesito algo de Ayuda en esto no le hallo

Gangster
03-11-2006, 22:59:22
Muchas Gracias a los que me ayudaron en esta Duda ya lo Hize y con un Query, Muchas Gracias a Jachguate,Fedelphi,Caral y Lepe por su ayuda y sus ideas y en si a este Foro por ser una parte que un tiene para dudas sobre este Delphi en Sintaxis y Programacion sobre este.

Gracias de Antemano por todo y ahora a ver si me toca a mi dar alguna idea en ves de que me la den Estamos en Contacto