Hola a todos:
He visto que este tema ya se planteo en septiembre del 2018.
Al entrar para ver la respuesta que facilita Ignacio, no esta disponible.
¿Es posible habilitarla de nuevo?
Gracias de antemano por la ayuda.
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Ver barra de progreso mientras se crea un informe
Ver barra de progreso mientras se crea un informe
--
Un saludo
Alfonso
Un saludo
Alfonso
- ignacio
- Site Admin
- Mensajes: 9256
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Re: Ver barra de progreso mientras se crea un informe
Hola,
Utilice los eventos OnProgress, OnProgressStart y OnProgressStop.
Saludos
Utilice los eventos OnProgress, OnProgressStart y OnProgressStop.
Saludos
Re: Ver barra de progreso mientras se crea un informe
Gracias por responder,
He consultado la ayuda de Xailer, para el evento OnProgress de FastReport.
Pero no encuentro ningun ejemplo en Samples de Xailer.
¿Podrias facilitarme algun codigo de ejemplo?
Gracias de antemano.
He consultado la ayuda de Xailer, para el evento OnProgress de FastReport.
Pero no encuentro ningun ejemplo en Samples de Xailer.
¿Podrias facilitarme algun codigo de ejemplo?
Gracias de antemano.
--
Un saludo
Alfonso
Un saludo
Alfonso
Re: Ver barra de progreso mientras se crea un informe
Hola de nuevo:
Despues de investigar y hacer pruebas creo que he encontrado una solucion.
Solo me queda resolver una cuestion, querria usar una barra de progreso en el Metodo FastReportProgreso, en lugar de una etiqueta, tengo el dato del numero de pagina con el parametro nProgress, pero ¿como calcularia el total de paginas de un informe para que la barra de prograso funcione?
Comparto el codigo por si a alguien le resulta util.
WITH OBJECT ::oFr:= TFastReport():New()
:cLanguage := "Spanish"
:AddDataSet( "LINVENTA", ::oMemConsulta )
:Create()
:LoadFromFile( cFile )
:OnProgress:= "FastReportProgreso" // Llamada al Metodo creado mas abajo
:PrintOptions:SetShowDialog(.t.) // Muestra dialogo de la impresoras antes de imprimir
:PrepareReport(.t.) // Prepara informe sin mostrarlo
Self:SetFocus() // Refresco el foco del formulario, principal porque en ocasiones al crear el informe se pierde.
// Muestra informe previamente preparado, OJO si existiera otro informe previo uniria los dos
// no sucede en nuestro caso porque hacemos un :END() para cerrar el informe
:ShowPreparedReport(.t.) // Muestro el informe
:End() // Cierra informe
END WITH
// ------------------------------------------------------------------------------------
// Refresca una etiqueta en el formulario con el progreso del informe
// ------------------------------------------------------------------------------------
METHOD FastReportProgreso( oSender, nProgressType, nProgress ) CLASS TFrmEstGeneralClienteVendedorArticulo
::oLblArchivo:cText:= IIF(nProgressType==0,"Creando",IIF(nProgressType==1,"Exportando","Imprimiendo"))+" "+"Pagina: "+ToString(nProgress)
RETURN Nil
Despues de investigar y hacer pruebas creo que he encontrado una solucion.
Solo me queda resolver una cuestion, querria usar una barra de progreso en el Metodo FastReportProgreso, en lugar de una etiqueta, tengo el dato del numero de pagina con el parametro nProgress, pero ¿como calcularia el total de paginas de un informe para que la barra de prograso funcione?
Comparto el codigo por si a alguien le resulta util.
WITH OBJECT ::oFr:= TFastReport():New()
:cLanguage := "Spanish"
:AddDataSet( "LINVENTA", ::oMemConsulta )
:Create()
:LoadFromFile( cFile )
:OnProgress:= "FastReportProgreso" // Llamada al Metodo creado mas abajo
:PrintOptions:SetShowDialog(.t.) // Muestra dialogo de la impresoras antes de imprimir
:PrepareReport(.t.) // Prepara informe sin mostrarlo
Self:SetFocus() // Refresco el foco del formulario, principal porque en ocasiones al crear el informe se pierde.
// Muestra informe previamente preparado, OJO si existiera otro informe previo uniria los dos
// no sucede en nuestro caso porque hacemos un :END() para cerrar el informe
:ShowPreparedReport(.t.) // Muestro el informe
:End() // Cierra informe
END WITH
// ------------------------------------------------------------------------------------
// Refresca una etiqueta en el formulario con el progreso del informe
// ------------------------------------------------------------------------------------
METHOD FastReportProgreso( oSender, nProgressType, nProgress ) CLASS TFrmEstGeneralClienteVendedorArticulo
::oLblArchivo:cText:= IIF(nProgressType==0,"Creando",IIF(nProgressType==1,"Exportando","Imprimiendo"))+" "+"Pagina: "+ToString(nProgress)
RETURN Nil
--
Un saludo
Alfonso
Un saludo
Alfonso
- ignacio
- Site Admin
- Mensajes: 9256
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Re: Ver barra de progreso mientras se crea un informe
Buenas tardes,
Ni siquiera el propio FastReport sabe cuantas páginas va a tener el documento hasta que no lo realiza. Simplemente hago dos procesos:
1) Llame a TReport:PrepareReport() y en el evento OnProgress() anote la página máxima ( nProgressType == 0 ). Para este proceso deberá mostrar un simple reloj de arena. No obstante es un proceso bastante rápido
2) LLame a Teport:Print() y en el evento OnProgress() ya podrá mostrar la ProgressBar indicando como valor nMax, la página calculada en el proceso (1)
Saludos
Ni siquiera el propio FastReport sabe cuantas páginas va a tener el documento hasta que no lo realiza. Simplemente hago dos procesos:
1) Llame a TReport:PrepareReport() y en el evento OnProgress() anote la página máxima ( nProgressType == 0 ). Para este proceso deberá mostrar un simple reloj de arena. No obstante es un proceso bastante rápido
2) LLame a Teport:Print() y en el evento OnProgress() ya podrá mostrar la ProgressBar indicando como valor nMax, la página calculada en el proceso (1)
Saludos