Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-06-2008
oec2509 oec2509 is offline
Miembro
 
Registrado: nov 2006
Posts: 24
Poder: 0
oec2509 Va por buen camino
Red face Impresion Quick Report con consulta SQL

Buenos dias compañeros del foro, Tengo una aplicación en Delphi 7 con SQL-2000 trabajo en Windows Xp sp2
Soy bastante nuevo en Delphi, he estado experimentando con quick report con los ejemplos Q2 Y Q3 pude ubicarme en mas o menos como crear un reporte y enviar a imprimir, Yo utilizo consultas de SQL para pasar los datos, utilizando Tquery y tengo la siguiente:
Código Delphi [-]
if ck_solo_mayores.Checked then begin
query:='SELECT CODIGO, DESCRIPCION, ANCHO, '+
'LARGO, CANTIDAD, EXISTENCIA '+
'FROM RESUMEN_NECESIDADES_ESPUMA '+
'WHERE CANTIDAD>=1 '+
'ORDER BY N.CODIGO, ANCHO, LARGO ';
end else begin
query:='SELECT CODIGO, DESCRIPCION, ANCHO, '+
'LARGO, CANTIDAD '+
'FROM RESUMEN_NECESIDADES_ESPUMA WHERE CANTIDAD>0 '+
'ORDER BY N.CODIGO, ANCHO, LARGO, EXISTENCIA ';
end;
ejecutar_con_active(fm_rpt_necesidades.sql_necesidades, query);
report.DataSet:=fm_rpt_necesidades.sql_necesidades;
report.Prepare;
report.Preview;
Pero me da el problema de que solo un registro, el ultimo, alguien me podria dar una luz de que estoy haciendo mal?

sql_necesidades es el Tquery y fm_rpt_necesidades es la forma donde esta el TQuickRep

Desde ya muchas gracias por toda la ayuda

Última edición por marcoszorrilla fecha: 25-06-2008 a las 18:45:16.
Responder Con Cita
  #2  
Antiguo 25-06-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
No estoy seguro del por que el ultimo, normalmente cuando no se conecta el Dataset del QReport lo que muestra es solo el primero.
Si no es el dataset, puede ser algun problema con la consulta.
Saludos
Responder Con Cita
  #3  
Antiguo 25-06-2008
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Por qué no visualizas la consulta en una rejilla provisionalmente, puede ser que por algún motivo como apunta Carlos solamente te esté devolviendo un registro.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #4  
Antiguo 25-06-2008
oec2509 oec2509 is offline
Miembro
 
Registrado: nov 2006
Posts: 24
Poder: 0
oec2509 Va por buen camino
Estoy seguro de que la consulta no tiene ningun problema, porque la tengo en un DataGrid previo
Responder Con Cita
  #5  
Antiguo 25-06-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.559
Poder: 25
egostar Va camino a la fama
Ya asignaste la propiedad DataSet del QReport al sql_necesidades

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #6  
Antiguo 25-06-2008
oec2509 oec2509 is offline
Miembro
 
Registrado: nov 2006
Posts: 24
Poder: 0
oec2509 Va por buen camino
Si lo asigne aca

ejecutar_con_active(fm_rpt_necesidades.sql_necesidades, query);
report.DataSet:=fm_rpt_necesidades.sql_necesidades; ****

No si asi es lo correcto
Responder Con Cita
  #7  
Antiguo 25-06-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
En el codigo aparece la palabra Query en donde esta la sentencia sql.
Pregunto:
Query esta referenciado a fm_rpt_necesidades.sql_necesidades
Osea sql_necesidades esta ligado a query?, donde?
Saludos
Responder Con Cita
  #8  
Antiguo 25-06-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.559
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por oec2509 Ver Mensaje
Si lo asigne aca

ejecutar_con_active(fm_rpt_necesidades.sql_necesidades, query);
report.DataSet:=fm_rpt_necesidades.sql_necesidades; ****

No si asi es lo correcto
En que evento o donde has colocado ese código?
Es necesario que lo hagas en tiempo de ejecución ?,
No te basta colocarlo en tiempo de diseño?

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #9  
Antiguo 25-06-2008
oec2509 oec2509 is offline
Miembro
 
Registrado: nov 2006
Posts: 24
Poder: 0
oec2509 Va por buen camino
Cita:
Empezado por Caral Ver Mensaje
Hola
En el codigo aparece la palabra Query en donde esta la sentencia sql.
Pregunto:
Query esta referenciado a fm_rpt_necesidades.sql_necesidades
Osea sql_necesidades esta ligado a query?, donde?
Saludos
query es una variable y es donde esta la consulta

query:='SELECT CODIGO, DESCRIPCION, ANCHO, '+
'LARGO, CANTIDAD '+
'FROM RESUMEN_NECESIDADES_ESPUMA WHERE CANTIDAD>0 '+
'ORDER BY N.CODIGO, ANCHO, LARGO, EXISTENCIA ';
end;
ejecutar_con_active(fm_rpt_necesidades.sql_necesidades, query);

esta referenciado en el ejecutar_con_active que es una funcion para realizar la consulta
Responder Con Cita
  #10  
Antiguo 25-06-2008
oec2509 oec2509 is offline
Miembro
 
Registrado: nov 2006
Posts: 24
Poder: 0
oec2509 Va por buen camino
Cita:
Empezado por egostar Ver Mensaje
En que evento o donde has colocado ese código?
Es necesario que lo hagas en tiempo de ejecución ?,
No te basta colocarlo en tiempo de diseño?

Salud OS
Todo el codigo que envie esta en un boton y se ejecuta al presionarlo, ya no estoy seguro si es en tiempo de ejecucion o no, como hago para saberlo?
Responder Con Cita
  #11  
Antiguo 25-06-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.559
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por oec2509 Ver Mensaje
Todo el codigo que envie esta en un boton y se ejecuta al presionarlo, ya no estoy seguro si es en tiempo de ejecucion o no, como hago para saberlo?
Bueno, es que estás asignando por código el DataSet, a eso se le llama en tiempo de ejecución (runtime), lo que yo te recomiendo es que en lugar de hacerlo así lo asignes directamente en la propiedad DataSet del QReport.

Seria bueno que colocaras todo el código de tu procedimiento para saber con mas certeza que puede estar sucediendo.

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #12  
Antiguo 25-06-2008
oec2509 oec2509 is offline
Miembro
 
Registrado: nov 2006
Posts: 24
Poder: 0
oec2509 Va por buen camino
Cita:
Empezado por egostar Ver Mensaje
Bueno, es que estás asignando por código el DataSet, a eso se le llama en tiempo de ejecución (runtime), lo que yo te recomiendo es que en lugar de hacerlo así lo asignes directamente en la propiedad DataSet del QReport.

Seria bueno que colocaras todo el código de tu procedimiento para saber con mas certeza que puede estar sucediendo.

Salud OS
Gracias... por la ayuda que me han brindado hasta el momento aca esta el codigo del boton

procedure Tfm_necesidades_espumado.btn_reportesClick(Sender: TObject);
var
query:String;
begin

report := fm_rpt_necesidades.rpt_necesidades;
if ck_solo_mayores.Checked then begin
query:='SELECT CODIGO, DESCRIPCION, ANCHO, '+
'LARGO, CANTIDAD, EXISTENCIA '+
'FROM RESUMEN_NECESIDADES_ESPUMA '+
'WHERE CANTIDAD>=1 '+
'ORDER BY N.CODIGO, ANCHO, LARGO ';
end else begin
query:='SELECT CODIGO, DESCRIPCION, ANCHO, '+
'LARGO, CANTIDAD '+
'FROM RESUMEN_NECESIDADES_ESPUMA WHERE CANTIDAD>0 '+
'ORDER BY N.CODIGO, ANCHO, LARGO, EXISTENCIA ';
end;
ejecutar_con_active(fm_rpt_necesidades.sql_necesidades, query);
report.DataSet:=fm_rpt_necesidades.sql_necesidades;
report.Prepare;
report.Preview;
end;
Responder Con Cita
  #13  
Antiguo 25-06-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.559
Poder: 25
egostar Va camino a la fama
Y que codigo tiene ese
Código Delphi [-]
ejecutar_con_active(fm_rpt_necesidades.sql_necesidades, query);

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #14  
Antiguo 25-06-2008
oec2509 oec2509 is offline
Miembro
 
Registrado: nov 2006
Posts: 24
Poder: 0
oec2509 Va por buen camino
Cita:
Empezado por egostar Ver Mensaje
Y que codigo tiene ese Código Delphi [-]ejecutar_con_active(fm_rpt_necesidades.sql_necesidades, query);



Salud OS
Este es el codigo


Código SQL [-]
procedure ejecutar_con_active(Query : Tquery; inst : String);
begin

try
query.active := false;
query.sql.clear;
query.SQL.Add(inst);
query.ExecSQL;
query.active := true;
Except on E : Exception do
MessageDlg(E.message + ''#13#10#13#10'' + inst,
mterror, [mbOk], 0); end;
end;
Responder Con Cita
  #15  
Antiguo 25-06-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.559
Poder: 25
egostar Va camino a la fama
Ahh

Pues ya veo, estas usando

Código Delphi [-]
query.ExecSQL;
para una consulta, cambialo por

Código Delphi [-]
query.Open;

De cualquier forma, creo que puedes optimizar tu código y hacerlo mas simple.

Salud OS

PD; usa las etiquetas delphi para que tu código se entienda
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #16  
Antiguo 25-06-2008
oec2509 oec2509 is offline
Miembro
 
Registrado: nov 2006
Posts: 24
Poder: 0
oec2509 Va por buen camino
Que pena con uds. compañeros, ya solucione el problema y no estaba en esta parte del codigo, la consulta estaba correcta, el error que estaba cometiendo es que coloque los campos fuera del la banda QRSubDetail en el TQuickRep, asi que movi los campos al detalle y Ya funciona bien

Les agradezco toda la ayuda brindada por uds.

Muchas Gracias
Responder Con Cita
  #17  
Antiguo 25-06-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.559
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por oec2509 Ver Mensaje
Que pena con uds. compañeros, ya solucione el problema y no estaba en esta parte del codigo, la consulta estaba correcta, el error que estaba cometiendo es que coloque los campos fuera del la banda QRSubDetail en el TQuickRep, asi que movi los campos al detalle y Ya funciona bien

Les agradezco toda la ayuda brindada por uds.

Muchas Gracias
Hombre pues que bien, solo toma nota de lo que te comento, para consultas se debe usar Query1.Open, para Agregar, Cambiar o Borrar Query1.ExecQL.

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Quick Report delphi 4 o Crystal Report Mauricio Correa Impresión 7 05-02-2011 14:57:40
impresion de jpg en quick report sexshop_3 Impresión 4 21-12-2007 19:57:22
Consulta en Quick Report enecumene Impresión 15 23-08-2007 02:15:50
Impresion de dos StringGrid en Quick Report pkbza Impresión 7 23-11-2006 12:54:45
impresion de informe contable con string grid y QUICK REPORT ale21alito Impresión 1 29-03-2005 20:15:45


La franja horaria es GMT +2. Ahora son las 13:24:08.


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
Copyright 1996-2007 Club Delphi