![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problema no resuleto.
Hola a todos.
Tengo un problema con QuickReport. Buscando en el histórico del foro he encontrado el tema... ¡pero no está resuelto!. ![]() http://www.clubdelphi.com/foros/arch...hlight=preview ¿Alguien podría ayudarme? Sincenramente, yo soy de los que muy pocas veces han contestado a los problemas de otros conmpañeros. Pero cuando se me plantea uno, y nadie me contesta, cuando consigo resolverlo cuelgo la solución, para quien pueda interesar... De este modo, entre todos, creamos una gran fuente de datos para resolver problemas de Delphi. ![]() Saludos. |
#2
|
||||
|
||||
Hola Jose_perez.
Una vez tuve un problema parecido al tuyo que solucione con las dos lineas siguientes: Código:
Application.ProcessMessages; Nombre_del_Listado.Release;
__________________
Saludos, Peter Investment |
#3
|
|||
|
|||
Muchas gracias Investment. Lamentablemente no funciona.
Voy a aportar algún dato a mi caso en particular. Dentro de un bucle, ralizo una consulta utilizando un TQuery, y posteriormente realizo un Preview del QuickReport. He podido comprobar que la primera vez el Query realiza la consulta correctamente, pero en la siguiente pasada del bucle, me devuelve la consulta en blanco (0 registros). Lo curioso es que si en lugar de realizar un Preview, hago directamente un Print, funciona perfectamente. Podría ahorrarme el Preview, pero el usuario necesita ver el listado por pantalla. Saludos. |
#4
|
|||
|
|||
... olvidé decir que el query está conectado al QuickReport. ¿Ya se suponía?
![]() |
#5
|
|||
|
|||
Hola , has mirado que dentro del Reporte no cierras la Query en ningun evento?....
Para confirmar que no es eso podrias poner antes del preview un Close/Open de la Query en cuestion. Suerte ![]()
__________________
Marín Ignacio Borthiry (Viet) - "El hombre arriesga su vida cada vez que elije y eso es lo que lo hace libre" ;) |
#6
|
|||
|
|||
Gracias Viet. No es eso. Totalmente descartado.
|
#7
|
|||
|
|||
La verdad que yo no creo los reportes dinamicamente al momento de llamarlos, sino que lo hago una unica vez con:
Código:
Application.CreateForm(TReporte, Reporte); Reporte.Preview;
__________________
Marín Ignacio Borthiry (Viet) - "El hombre arriesga su vida cada vez que elije y eso es lo que lo hace libre" ;) |
#8
|
|||
|
|||
He probado de dos maneras: Incluyendo el objeto TQuickReport en el formulario desde donde ordeno el listado, o en otro TForm, que cargo dinámicamente. En ambos casos falla!!!.
Esto es lo que hago. Código:
For Contador:=Low(Agencias) To High(Agencias) Do Begin Ficha:=TfrmQRFactProvE.Create(Self); With Ficha.Query Do Begin Close; SQL.Clear; Consulta:='Select * from Linvales Where ¡Agc_lval='+IntToStr(Agencias[Contador])+ ' And extract(month from Fec_lval)='+IntToStr(cboMes.ItemIndex+1)+ ' And extract(year from Fec_lval)='+IntToStr(cboYear.ItemIndex+1990)+ ' And fac_lval=0 Order by Num_lval'; SQL.Add(Consulta); Open; End; If Not cbxPantalla.Checked Then Ficha.QuickReport.Print else Ficha.QuickReport.Preview; Ficha.QuickReport.Dataset:=Nil; Ficha.Free; Application.ProcessMessages; End; |
#9
|
|||
|
|||
Me equivoqué....
No es Código:
Consulta:='Select * from Linvales Where ¡Agc_lval='+IntToStr(Agencias[Contador])+ Código:
Consulta:='Select * from Linvales Where Agc_lval='+IntToStr(Agencias[Contador])+ |
#10
|
|||
|
|||
Ficha.QuickReport.Dataset:=Nil;
Esto lo pusde para probar, pero tampoco funcionó. |
#11
|
||||
|
||||
Porqué no nos muestras como ha quedado el código, después de tantas idas y vueltas??
Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. ![]() |
#12
|
|||
|
|||
Queda así...
Código:
For Contador:=Low(Agencias) To High(Agencias) Do Begin Ficha:=TfrmQRFactProvE.Create(Self); With Ficha.Query Do Begin Close; SQL.Clear; Consulta:='Select * from Linvales Where Agc_lval='+IntToStr(Agencias[Contador])+ ' And extract(month from Fec_lval)='+IntToStr(cboMes.ItemIndex+1)+ ' And extract(year from Fec_lval)='+IntToStr(cboYear.ItemIndex+1990)+ ' And fac_lval=0 Order by Num_lval'; SQL.Add(Consulta); Open; End; If Not cbxPantalla.Checked Then Ficha.QuickReport.Print else Ficha.QuickReport.Preview; Ficha.Free; Application.ProcessMessages; End; ![]() |
#13
|
||||
|
||||
Prueba cambiando Preview por PreviewModal, así detiene el hilo de ejecución antes de hacer el free (100% teoría, pues no lo he probado).
Si me aceptas una sugerencia, te recomiendo crear una sola vez es TfrmQRFactProvE, y por cada iteración del for hacer el resto. Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. ![]() |
#14
|
|||
|
|||
Muchas gracias, pero tampoco funciona.
Insisto en que el fallo se produce sólo cuando hago el Preview del CrystalReport. Dado que no puedo tener mucho más tiempo al usuario parado, se me está ocurriendo conectal el TQuickRep con un TRXMemoryData de la librebría de RX, y volcarle el resultado del Query. Irá más lento, pero dado los resultados, vale más esto que nada. Saludos. |
#15
|
||||
|
||||
Ficha:=TfrmQRFactProvE.Create(Self);
no sería Ficha:=TfrmQRFactProvE.Create(NIL); es que estas diciendo que el padre es el formulario, pero al final eres tu mismo quien destruye la ficha¿? ¿ me llevo la chochona o no ? ![]() |
#16
|
||||
|
||||
Cita:
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. ![]() |
#17
|
|||
|
|||
Cita:
__________________
Marín Ignacio Borthiry (Viet) - "El hombre arriesga su vida cada vez que elije y eso es lo que lo hace libre" ;) |
#18
|
|||
|
|||
En que estaría pensando...
Quería decir QuickReport y no CrystalReport. De todos modos he decidido probar con FreeReport. Por cierto, mi primera impresión sobre FreeReport ha sido muy buena. Espero no tener tantos problemas como con QuickReport y CrystalReport. Muchas gracias por vuestro interés. Saludos. |
![]() |
|
|
![]() |
|