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 23-05-2017
Avatar de Espartaco
[Espartaco] Espartaco is offline
Miembro Premium
 
Registrado: oct 2005
Posts: 107
Poder: 20
Espartaco Va por buen camino
QuickReport 0%

Hola Amigos, a ver como os explico esto.
Utilizo Delphi 5 y QuickReport 3.0. Necesito imprimir un listado que tiene que generar una pagina cuando cambia el valor de un campo, y en cada pagina tengo que poner unos valores relacionados con este. Hasta aqui ningun problema, los tengo almacenados en una tabla y esta la ordeno con Query para coger los datos desde este. La unica forma que he encontrado es colocando en una banda detail unos QrLabel que voy rellenando con los valores de los campos correspondientes. Esto lo hago en el evento onneeddata del QuickReport.
Bien, pues todo lo hace correctamente, lo que ocurre es que si le doy a imprimir en el Preview del QR no me imprime nada. He probado a usar PreviewModal pero da igual. Sin embargo si en vez de utilizar el Preview lo imprimo directamente, lo hace perfecto.
He observado, que cuando me presenta el Preview, en la parte de abajo a la izquierda, donde muestra las paginas del listado, me muestra 0%, que supongo que es el proceso del listado, en cambio en los que si me funciona aparece 97% u otra cantidad.
Me imagino que es porque hago algo mal en el evento onneeddata pero no se como solucionarlo.
Este es el codigo del evento:

Código Delphi [-]
procedure Tlistadoadministradores.QuickRepNeedData(Sender: TObject;
  var MoreData: Boolean);
begin
    moredata:= not QConsulta.Eof;

    qrlabel4.Caption:=IntToStr(QConsulta['NCONTRATO']);
    qrlabel6.Caption:=QConsulta['TIPOCON'];
    qrlabel7.Caption:=QConsulta['DIRECCION'];

    if QConsulta['NOMBREADM']<>nomadm  then
    begin
    nomadm:=QConsulta['NOMBREADM'];
    listadoadministradores.NewPage;
    end;
    if moredata then
    QConsulta.Next;

end;

En otro listado en el que relleno yo los datos me ocurre exactamente igual.

Por favor os agradeceria mucho vuestra ayuda, estoy desesperado porque no doy con la tecla.

Muchas Gracias.
Responder Con Cita
  #2  
Antiguo 24-05-2017
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 21
yusnerqui Va por buen camino
Me gustaría ver el código donde generas la consulta, quizas te falte dar un close antes de generarla y al tratar de imprimir, se genera por segunda vez te está dando problemas. es una hipótesis.
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo

Responder Con Cita
  #3  
Antiguo 24-05-2017
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.237
Poder: 20
ElKurgan Va camino a la fama
¿tienes código en los eventos AfterPrint y BeforePrint?

Ten en cuenta que BeforePrint y AfterPrint se ejecutan tanto si se está previsualizando el informe como si se está lanzando directamente a la impresora

Un saludo
Responder Con Cita
  #4  
Antiguo 24-05-2017
Avatar de Espartaco
[Espartaco] Espartaco is offline
Miembro Premium
 
Registrado: oct 2005
Posts: 107
Poder: 20
Espartaco Va por buen camino
yusnerki muchas gracias por tu interes, aqui es donde genero la connsulta para el listado:

Código Delphi [-]
     listadoadministradoresrec.Qconsulta.Close;
     listadoadministradoresrec.Qconsulta.sql.Clear;
     listadoadministradoresrec.Qconsulta.sql.add('select *');
     listadoadministradoresrec.Qconsulta.sql.add('from ":conlipres:auxadmin.db" d');
     listadoadministradoresrec.Qconsulta.sql.add('ORDER BY NOMBREADM');
     listadoadministradoresrec.Qconsulta.Open;
     S := FormatDateTime('mmmm',Now);
     listadoadministradoresrec.QRLabel2.Caption:='Sevilla, '+IntToStr(Day)+' de '+S+' de '+IntToStr(Year);
     listadoadministradoresrec.QRLabel1.Caption:=ComboBox1.Text;
     listadoadministradoresrec.Preview;
     listadoadministradoresrec.Qconsulta.Close;


como ves, antes de generar la consulta la cierro primero.
Responder Con Cita
  #5  
Antiguo 24-05-2017
Avatar de Espartaco
[Espartaco] Espartaco is offline
Miembro Premium
 
Registrado: oct 2005
Posts: 107
Poder: 20
Espartaco Va por buen camino
elkurgan gracias tambien por tu interes, comentarte que ni en afterprint ni en beforeprint tengo puesto nada.

solo en onneeddata, que el codigo es el de mas arriba y
en onstarpage cuyo codigo es el siguiente:

Código Delphi [-]
procedure TlistadoadministradoresRec.QuickRepStartPage(
  Sender: TCustomQuickRep);
begin
nomadm:=listadoadministradoresrec.QConsulta['NOMBREADM'];
QrLabel3.Caption:=listadoadministradoresrec.QConsulta['NOMBREADM'];
end;

quedo a la espera de vuestras respuestas y probando cosas. gracias
Responder Con Cita
  #6  
Antiguo 24-05-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.264
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Espartaco Ver Mensaje
elkurgan gracias tambien por tu interes, comentarte que ni en afterprint ni en beforeprint tengo puesto nada.
solo en onneeddata, que el codigo es el de mas arriba y
en onstarpage cuyo codigo es el siguiente:
quedo a la espera de vuestras respuestas y probando cosas. gracias
Pues ya te has contestado, que lo pongas en el afterprint
Responder Con Cita
  #7  
Antiguo 24-05-2017
Avatar de Espartaco
[Espartaco] Espartaco is offline
Miembro Premium
 
Registrado: oct 2005
Posts: 107
Poder: 20
Espartaco Va por buen camino
hola casimiro, gracias plor contestar, pero qué es lo que tengo que poner en afterprint, porque en realidad el listado me lo genera bien, lo que pasa es que creo que se queda al final y por eso me pone lo del 0% y cuando le doy a imprimir hace como que imprime pero no envia nada a la impresora.

gracias, estoy desesperado.
Responder Con Cita
  #8  
Antiguo 25-05-2017
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 21
yusnerqui Va por buen camino
Bueno así de una rápida lectura creo que te falta, en el NeedData, reiniciar tu consulta cuando llegue al final para poderla imprimir nuevamente, debes poner algo como

Código Delphi [-]
...  
if moredata then
    QConsulta.Next; 
else
    QConsulta.First;


Espero te sirva.

Saludos
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo


Última edición por yusnerqui fecha: 25-05-2017 a las 01:59:53.
Responder Con Cita
  #9  
Antiguo 30-05-2017
Avatar de Espartaco
[Espartaco] Espartaco is offline
Miembro Premium
 
Registrado: oct 2005
Posts: 107
Poder: 20
Espartaco Va por buen camino
Hola yusnerqui, efectivamente con lo que me has propuesto se ha solucionado y ya imprime desde el preview, aunque no entiendo muy bien por qué pero funciona.

Es que es la primera vez que utilizo el needdata y todavia no lo tengo muy bien asumido.

Muchas gracias por tu ayuda, y a los demas tambien.

Si no fuera por este foro ...

Muchas Gracias.
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
Editor para el cliente de QuickReport o alternativa a Quickreport rfernandez Impresión 4 21-12-2012 21:47:21
QuickReport elturu15 Varios 12 21-05-2011 15:23:04
Dxf en quickreport alopete Impresión 0 08-10-2007 10:23:03
QuickReport carols018 Varios 1 01-12-2006 18:43:00
Quickreport CarlosHernandez Varios 2 28-11-2003 19:35:45


La franja horaria es GMT +2. Ahora son las 20:08:40.


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