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.

Xailer y Crystal Reports, casi listos

Foro de Xailer profesional en español
Responder
Rene Flores
Mensajes: 620
Registrado: Jue Mar 23, 2006 2:39 am

Xailer y Crystal Reports, casi listos

Mensaje por Rene Flores »

Hola a todos:
Para todos aquellos que lo estaban esperando, les informo que finalmente
he podido hacer funcionar Crystal Reports con Xailer, usando la interfaz
OLE de Crystal.
Como funciona:
La cosa es muy simple, solo tenemos que hacer esto:
METHOD Menu1Item1_1Click( oSender, oMenu ) CLASS TForm1
LOCAL oCrystal, oReporteCrystal
oCrystal := TOLEAUTO():New("Crystal.CRPE.Application")
oReporteCrystal := oCrystal:OpenReport(".impaage.rpt")
oReporteCrystal:Preview("Crystal & Xailer",0,0,200,200,;
16777216 + 131072 + 65536 + 524288,;
::Handle)
RETURN Nil
Toda la gracia (y el problema que me esta volviendo loco) esta en el
metodo PREVIEW, que es el que despliega la ventana del motor de vista
previa de Crystal, segun la documentacion, el metodo preview recibe:
object:Preview( Title, Left, Top, Width, Height, Style, ParentWindow)
Las partes mas interesantes son los 2 utimos parametros, hablare en un
principio del ultimo parámetro porque ese no me da ningun problema. Si
nosotros queremos hacer a la ventana de Crystal "hija" de nuestra
aplicacion Xailer, simplmentente le ponemos como parametro ::HANDLE o el
Handle del formulario principal, esto hara que la ventana de Crystal sea
"hija" de nuestro formulario principal (no olviden hacer el formulario
principal MDIFRAME, aunque tambien funciona con formularios "normales").
El problema que tengo, y lo unico que me falta para hacer funcionar
Crystal con Xailer es el p. STYLE de los c. de la ventana Crystal, si no
se pone ningun parametro en el style, se pinta la ventana del motor de
vista previa de Crystal como hija del formulario principal, pero
desaparece inmediatamente (ya me habia pasado algo parecido con el
formulario Preview del motor de reportes de Xailer, cuando se trabaja en
una aplicacion MDI y lo solucione haciendo modal el reporte)
El caso es que estoy totalmente loco con el STYLE de la ventana, supongo
que haciendola modal se podria presentar perfectamente, asi que me he
puesto a sumarle las constantes de todos los estilos conocidos de
ventana conocidos, y aun así­ sigue sin quedarse quieta.
Para presentar el informe en pantalla y evitar que desaparezca nada mas
desplegar la ventana, he tenido que poner un MsgInfo() para detener la
ejecucion del programa Xailer, y entonces el informe se muestra
perfectamente en su ventana de vista previa y como una ventana hija de
la aplicacion Xailer, sin embargo, no se puede interactuar con dicha
ventana porque el Msgfinfo() impide que se pueda tocar (es modal) en
cuanto se cierra el MsgInfo() se cierra automaticamente la ventana de
vista previa.
Supngo que algo tiene que ver el estilo de la ventaa de Crystal, asi que
alguien puede hecharme un cable con esto, todos los que trabajamos con
Crystal seremos muy felices.
Anexo ejemplo
Saludos
Rene Flores
http://www.ciber-tec.com
--
Aicom
Mensajes: 21
Registrado: Mié Abr 26, 2006 1:35 pm

Xailer y Crystal Reports, casi listos

Mensaje por Aicom »

Hola René,
He estado haciendo unas pruebas y creo ya se puede ver el informe (mira la
imagen que te adjunto en el siguiente mensaje). Para conseguir que se vea
el informe he hecho lo siguiente:
1. He colocado el informe en un control contenedor (en mi caso un tPanel)
2. He tenido que dejar a Crystal la reponsabilidad del pintado del control
tPanel por lo que he tenido que modificar el evento wmpaint.
No obstante, se ha de mejorar y/o solucionar lo siguiente:
a. Hay que redirigir todos los mensajes WM_PAINT del control tPanel1 al
control Crystal (no se como hacerlo)
b. Hay que controlar el redimensionado del control tPanel1 para que el
control Crystal se ajuste al nuevo tamaño.
El caso es que no tengo la documentación de este control y no se como
seguir para solucionar estos problemas.
Os dejo el proyecto con mis modificaciones.
A ver si entre todos hacemos andar de este fantástico generador de
informes.
Saludos,
José Luis Capel


Attached files crystal.zip (8 KB)Â
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9449
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Xailer y Crystal Reports, casi listos

Mensaje por ignacio »

Rene,
Que versión de Crystal Reports estás usando?
Gracias.
"Rene Flores" <rflores.removeforspam@ciber-tec.com> escribió en el mensaje
news:448a1882$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Hola a todos:
>
> Para todos aquellos que lo estaban esperando, les informo que finalmente
> he podido hacer funcionar Crystal Reports con Xailer, usando la interfaz
> OLE de Crystal.
>
> Como funciona:
>
> La cosa es muy simple, solo tenemos que hacer esto:
>
> METHOD Menu1Item1_1Click( oSender, oMenu ) CLASS TForm1
> LOCAL oCrystal, oReporteCrystal
> oCrystal := TOLEAUTO():New("Crystal.CRPE.Application")
> oReporteCrystal := oCrystal:OpenReport(".impaage.rpt")
> oReporteCrystal:Preview("Crystal & Xailer",0,0,200,200,;
> 16777216 + 131072 + 65536 + 524288,;
> ::Handle)
> RETURN Nil
>
> Toda la gracia (y el problema que me esta volviendo loco) esta en el
> metodo PREVIEW, que es el que despliega la ventana del motor de vista
> previa de Crystal, segun la documentacion, el metodo preview recibe:
>
> object:Preview( Title, Left, Top, Width, Height, Style, ParentWindow)
>
> Las partes mas interesantes son los 2 utimos parametros, hablare en un
> principio del ultimo parámetro porque ese no me da ningun problema. Si
> nosotros queremos hacer a la ventana de Crystal "hija" de nuestra
> aplicacion Xailer, simplmentente le ponemos como parametro ::HANDLE o el
> Handle del formulario principal, esto hara que la ventana de Crystal sea
> "hija" de nuestro formulario principal (no olviden hacer el formulario
> principal MDIFRAME, aunque tambien funciona con formularios "normales").
>
> El problema que tengo, y lo unico que me falta para hacer funcionar
> Crystal con Xailer es el p. STYLE de los c. de la ventana Crystal, si no
> se pone ningun parametro en el style, se pinta la ventana del motor de
> vista previa de Crystal como hija del formulario principal, pero
> desaparece inmediatamente (ya me habia pasado algo parecido con el
> formulario Preview del motor de reportes de Xailer, cuando se trabaja en
> una aplicacion MDI y lo solucione haciendo modal el reporte)
>
> El caso es que estoy totalmente loco con el STYLE de la ventana, supongo
> que haciendola modal se podria presentar perfectamente, asi que me he
> puesto a sumarle las constantes de todos los estilos conocidos de
> ventana conocidos, y aun así sigue sin quedarse quieta.
>
> Para presentar el informe en pantalla y evitar que desaparezca nada mas
> desplegar la ventana, he tenido que poner un MsgInfo() para detener la
> ejecucion del programa Xailer, y entonces el informe se muestra
> perfectamente en su ventana de vista previa y como una ventana hija de
> la aplicacion Xailer, sin embargo, no se puede interactuar con dicha
> ventana porque el Msgfinfo() impide que se pueda tocar (es modal) en
> cuanto se cierra el MsgInfo() se cierra automaticamente la ventana de
> vista previa.
>
> Supngo que algo tiene que ver el estilo de la ventaa de Crystal, asi que
> alguien puede hecharme un cable con esto, todos los que trabajamos con
> Crystal seremos muy felices.
>
> Anexo ejemplo
>
> Saludos
>
> Rene Flores
> http://www.ciber-tec.com
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Rene Flores
Mensajes: 620
Registrado: Jue Mar 23, 2006 2:39 am

Xailer y Crystal Reports, casi listos

Mensaje por Rene Flores »

Ignacio:
El comportamiento ocurre en la version 8.5 Developer tanto como en la 11 .
Saludos
Rene Flores
http://www.ciber-tec.com
Ortiz de Zúñiga escribió:
> Rene,
>
> Que versión de Crystal Reports estás usando?
>
> Gracias.
>
>
> "Rene Flores" <rflores.removeforspam@ciber-tec.com> escribió en el mensaje
> news:448a1882$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>
>>Hola a todos:
>>
>>Para todos aquellos que lo estaban esperando, les informo que finalmente
>>he podido hacer funcionar Crystal Reports con Xailer, usando la interfaz
>>OLE de Crystal.
>>
>>Como funciona:
>>
>>La cosa es muy simple, solo tenemos que hacer esto:
>>
>>METHOD Menu1Item1_1Click( oSender, oMenu ) CLASS TForm1
>> LOCAL oCrystal, oReporteCrystal
>> oCrystal := TOLEAUTO():New("Crystal.CRPE.Application")
>> oReporteCrystal := oCrystal:OpenReport(".impaage.rpt")
>> oReporteCrystal:Preview("Crystal & Xailer",0,0,200,200,;
>> 16777216 + 131072 + 65536 + 524288,;
>> ::Handle)
>>RETURN Nil
>>
>>Toda la gracia (y el problema que me esta volviendo loco) esta en el
>>metodo PREVIEW, que es el que despliega la ventana del motor de vista
>>previa de Crystal, segun la documentacion, el metodo preview recibe:
>>
>>object:Preview( Title, Left, Top, Width, Height, Style, ParentWindow)
>>
>>Las partes mas interesantes son los 2 utimos parametros, hablare en un
>>principio del ultimo parámetro porque ese no me da ningun problema. Si
>>nosotros queremos hacer a la ventana de Crystal "hija" de nuestra
>>aplicacion Xailer, simplmentente le ponemos como parametro ::HANDLE o el
>>Handle del formulario principal, esto hara que la ventana de Crystal sea
>>"hija" de nuestro formulario principal (no olviden hacer el formulario
>>principal MDIFRAME, aunque tambien funciona con formularios "normales").
>>
>>El problema que tengo, y lo unico que me falta para hacer funcionar
>>Crystal con Xailer es el p. STYLE de los c. de la ventana Crystal, si no
>>se pone ningun parametro en el style, se pinta la ventana del motor de
>>vista previa de Crystal como hija del formulario principal, pero
>>desaparece inmediatamente (ya me habia pasado algo parecido con el
>>formulario Preview del motor de reportes de Xailer, cuando se trabaja en
>>una aplicacion MDI y lo solucione haciendo modal el reporte)
>>
>>El caso es que estoy totalmente loco con el STYLE de la ventana, supongo
>>que haciendola modal se podria presentar perfectamente, asi que me he
>>puesto a sumarle las constantes de todos los estilos conocidos de
>>ventana conocidos, y aun así­ sigue sin quedarse quieta.
>>
>>Para presentar el informe en pantalla y evitar que desaparezca nada mas
>>desplegar la ventana, he tenido que poner un MsgInfo() para detener la
>>ejecucion del programa Xailer, y entonces el informe se muestra
>>perfectamente en su ventana de vista previa y como una ventana hija de
>>la aplicacion Xailer, sin embargo, no se puede interactuar con dicha
>>ventana porque el Msgfinfo() impide que se pueda tocar (es modal) en
>>cuanto se cierra el MsgInfo() se cierra automaticamente la ventana de
>>vista previa.
>>
>>Supngo que algo tiene que ver el estilo de la ventaa de Crystal, asi que
>>alguien puede hecharme un cable con esto, todos los que trabajamos con
>>Crystal seremos muy felices.
>>
>>Anexo ejemplo
>>
>>Saludos
>>
>>Rene Flores
>>http://www.ciber-tec.com
>>
>
>
>
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Xailer y Crystal Reports, casi listos

Mensaje por jfgimenez »

René,
¿Desde dónde puedo descargar algún runtime o una versión eval de CR para
probar el ejemplo?
--
Un saludo,
José F. Giménez
http://www.xailer.com
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Xailer y Crystal Reports, casi listos

Mensaje por jfgimenez »

René,
bueno, por fin he podido revisarlo, y creo que ya está listo ;-)
El problema estaba en el mecanismo de "destructores automáticos" de
xHarbour. Me explico: en tu ejemplo estabas creando un par de variables
locales para la conexión OLE, pero al salir de la función esas variables son
eliminadas por el recolector de basura, llamando al destructor automático de
TOleAuto(), que a su vez provoca la desconexión del componente OLE de CR.
Vamos, que lo que estaba ocurriendo es lo que tenía que ocurrir: el preview
se muestra un instante y desaparece!
La solución pasa por mantener esas variables vivas mientras el preview
exista. Para esto me he permitido construir una clase derivada de TForm que
permite mostrar el preview tanto en MDI como normal, y tanto modal como no
modal. Aquí la tienes. Puedes usarla así (asumiendo que Self es el
formulario desde donde se llama):
Como MDIChild:
WITH OBJECT TCrystalPreview()
:nFormType := ftMDICHILD
:New( Self )
:cReport := ".Subcue01.rpt"
:Show( smMAXIMIZE )
END
Modal:
WITH OBJECT TCrystalPreview():New( Self )
:cReport := ".Subcue01.rpt"
:ShowModal( smMAXIMIZE )
END
No modal:
WITH OBJECT TCrystalPreview():New( Self )
:cReport := ".Subcue01.rpt"
:Show( smMAXIMIZE )
END
--
Un saludo,
José F. Giménez
http://www.xailer.com
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Xailer y Crystal Reports, casi listos

Mensaje por jfgimenez »

Ups! Se me olvidó el fichero ;-)
--
Un saludo,
José F. Giménez
http://www.xailer.com


Attached files CR.zip (684 B)Â
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
jose.luis
Mensajes: 1633
Registrado: Vie Oct 14, 2005 10:56 pm

Xailer y Crystal Reports, casi listos

Mensaje por jose.luis »

José,
> bueno, por fin he podido revisarlo, y creo que ya está listo ;-)
>
Fantástico... en mis pruebas (de momento pocas) funciona de maravilla!!
Por cierto... ¿que diferencia puede haber en colocar el informe de Crystal
en un formulario (tal como propones) o dentro de un pagefolder o similar?
Saludos y gracias,
José Luis Capel
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Xailer y Crystal Reports, casi listos

Mensaje por jfgimenez »

José Luis,
> Fantástico... en mis pruebas (de momento pocas) funciona de maravilla!!
Estupendo! Pero parte del mérito es de René ;-)
> Por cierto... ¿que diferencia puede haber en colocar el informe de Crystal
> en un formulario (tal como propones) o dentro de un pagefolder o similar?
No lo he probado, pero debería funcionar también. Lo hize con un formulario
porque así se podía usar como ventana normal, modal o mdichild, pero en
principio lo puedes colocar sobre cualquier contenedor.
--
Un saludo,
José F. Giménez
http://www.xailer.com
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Rene Flores
Mensajes: 620
Registrado: Jue Mar 23, 2006 2:39 am

Xailer y Crystal Reports, casi listos

Mensaje por Rene Flores »

José Luis:
Hereda el formulario contenedor de Crystal de TformPage en vez de Tfrom
y metelo en una pestaña de un folder.... deberia de funcionar...jijiji
Saludos
Rene Flores
http://www.ciber-tec.com
Capel escribió:
> José,
>
>
>>bueno, por fin he podido revisarlo, y creo que ya está listo ;-)
>>
>
>
> Fantástico... en mis pruebas (de momento pocas) funciona de maravilla!!
>
> Por cierto... ¿que diferencia puede haber en colocar el informe de Crystal
> en un formulario (tal como propones) o dentro de un pagefolder o similar?
>
> Saludos y gracias,
> José Luis Capel
Responder