PDA

Ver la Versión Completa : Problemas con Qreport y Querry


MikyVato
29-03-2007, 21:02:42
Hola como estan todos tengo un pequeño problema, quiero imprimir un ticket el cual esta compuesto por registros que obtengo de un querry, la consulta es creada en tiempo de ejecucion, o sea, que si activo el querry en tiempo de diseño me aparece un mensaje algo asi "Missing SQL property".
Ahora el tema es el siguiente, he creado un qreport donde he colocado tres elementos TQRDBText (no se si esto es correcto) y al tratar de asignar un valor a la propiedad DataField obtengo el mismo mensaje de error ("Missing SQL property"). Como puedo solucionar esto?? :confused: .
No he podido encontrar mucha bibliografia o tutoriales sobre qreport en Castellano, la verdad estoy aprendiendo el uso de Delphi leyendo "La Cara Oculta de Delphi 4".


Bueno Gracias por todo espero me puedan ayudar, nos vemos.........;)

basti
29-03-2007, 21:16:09
Aunque la consulta sea creada en tiempo de ejecución, puedes poner una consulta que devuelva los mismos campos dentro del query. De esa manera podrás asignar los campos a los controles.

egostar
29-03-2007, 21:27:56
Yo tuve alguna vez ese dilema y lo resolví de la siguiente forma. Aclaro que hay formas mas elegantes y que aqui te pueden dar una mejor opción.


En tiempo de diseño mete un SELECT de todos los campos que deseas tenga tu query.
Genera las ligas correspondientes a los campos TQRDBText.
Si lo deseas borra la sentencia SELECT del query despues de crear las ligas o en tiempo de ejecución pon Query1.SQL.Clear antes de colocar la sentencia que deseas.Espero te ayude.

Salud OS.

MikyVato
31-03-2007, 19:52:11
:D Gracias si Funciona, es decir puedo asignar los elementos del Querry al Qreport pero o caramba me sale un ERROR:mad:, no corre la aplicacion, me dice que no puede conventir un tipo NULL a un tipo STRING :eek:, la verdad me mato.....


Se Aceptan Sugerencias....................

MikyVato
10-04-2007, 19:35:57
Hola que tal, queria agradecerles ya que si funciono su consejo, ademas de que ya pude solucionar mi problema con la diferencia de tipos :D . Pero he aqui que pasa lo siguiente....

Deseo imprimir un valesito o ticket (no se como llamarlo) por cada registro que obtengo en el Querry, he estado utilizando QRDBText, osea lo que hago es recorrer el Querry pidiendo que por cada registro realice una Impresion o un Preview........



while not QDetalle.Eof Do
begin
FImpresion.Previous;
QDetalle.Next;
end;





Bueno algo asi...... mi duda es: estoy usando el elemento adecuado??, me faltaría alguna otra herramienta??, una QRBand o una QRGroup. La verdad no tengo muy claro el uso de QReport, cualquier ayuda es bienvenida.......

Caral
10-04-2007, 20:27:10
Hola MikyVato
No entiendo muy bien lo que te sucede, primero seria bueno ver la sentencia sql que envias al query, con esto veriamos que es lo que quieres mostrar.
En tal caso, por ejemplo, si quieres que muestre la informacion 1, haga un espacio y muestre la infoemacion 2, hay varias formas de hacerlo entre ellas el uso de qrband como mencionas.
Saludos

MikyVato
11-04-2007, 21:02:21
OK voy a tratar de ser mas claro:

La Consulta SQL funciona a la perfección, no tengo problemas con ello, puedo visualizar la consulta en un DBGrid, el problema surge cuando deseo imprimir los resultados de la consulta. El Vale o ticket que deseo imprimir tendría 3 datos solamentes. Se veria algo asi

DNI
SubGrupo
NroPartida

Bueno la consulta SQL tiene la siguiente Forma:

Código SQL [-] (http://www.clubdelphi.com/foros/#)
SELECT DNI, Proveedor, SubGrupo, NroPartida FROM Tabla WHERE NroPartida in ('+Edit.Text+')'





De todos los campos del Querry solo quiero imprimir 3 en una especie de Vale o Ticket....

Bueno espero haberme hecho entender mejor, si pueden ayudar desde ya Gracias..........................

Caral
11-04-2007, 21:25:41
Hola MikyVato
El query puede contener los datos que se quiera e imprimir solo los que necesites sin nungun groblema.
Haz un ejemplo practico:
Se que haces la consulta via programa, pero, esto no impide que se coloque la sentencia en el query de qreport.
Vamos paso a paso:
1- En en query del qreport pones esto:

SELECT DNI, Proveedor, SubGrupo, NroPartida FROM Tabla
Le das ok.
Le das doble click al query, te saldra una pantallita pequeña, con el raton derecho, le das add, aqui, pones si queres todos los campos no tiene importancia.
Una vez hecho esto, en el qreport:
Pones un qrband y dentro de este pones los tres drdbtex que vas a necesitar, colocalos como quieras.
Vale, una vez hecho esto tocas cada qrdbtex y vas a la propiedad dataset, escojes el query, y vas a la propiedad datafilename y escoges el campo que quieras, asi sucesivamente con todos.
Luego das un click al formulario del reporte y pones en su propiedad dataset el query.
Y bueno ya esta, es todo creo yo.
Saludos

Caral
11-04-2007, 21:27:37
A se me olvidava.
Una vez hecho todo esto, elimina la sentencia sql del query, puede duplicarse con la del codigo y te dara problemas, si la quitas no.
Saludos