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.
Crystal y Xailer
-
- Mensajes: 25
- Registrado: Vie Jun 09, 2006 7:22 pm
Crystal y Xailer
Hola
Tengo un programa que genera un reporte de crystal
este es el codigo,
oRep := oApp:OpenReport(CurDrive() + ':' + CurDir() +
'reportesrptInstructoresInstitucion.rpt')
WITH OBJECT Tini():New(".config.ini")
oDb := oRep:Database()
oTablas := oDb:Tables()
nTables := oTablas:Count()
FOR nTab := 1 TO nTables
oDb:Tables(nTab):SetLogOnInfo(:GetEntry("CONFIG","SERVER", ""),
:GetEntry("CONFIG","BD", ""), :GetEntry("CONFIG","ID", ""),
:GetEntry("CONFIG","PWD", ""))
NEXt
END
oRep:Preview("Idioma")
lo que suscede es que el reporte me lo presenta y lo cierra, no lo deja
abierto.. alguien me puede decir como arreglarlo.
Tengo un programa que genera un reporte de crystal
este es el codigo,
oRep := oApp:OpenReport(CurDrive() + ':' + CurDir() +
'reportesrptInstructoresInstitucion.rpt')
WITH OBJECT Tini():New(".config.ini")
oDb := oRep:Database()
oTablas := oDb:Tables()
nTables := oTablas:Count()
FOR nTab := 1 TO nTables
oDb:Tables(nTab):SetLogOnInfo(:GetEntry("CONFIG","SERVER", ""),
:GetEntry("CONFIG","BD", ""), :GetEntry("CONFIG","ID", ""),
:GetEntry("CONFIG","PWD", ""))
NEXt
END
oRep:Preview("Idioma")
lo que suscede es que el reporte me lo presenta y lo cierra, no lo deja
abierto.. alguien me puede decir como arreglarlo.
Crystal y Xailer
Hola,
¿Tienes algún ejemplo donde se pueda reproducir ese comportamiento?
Por cierto: el método oApp:OpenReport ¿donde lo obtienes? ¿Cual es el objeto
ole que usas?
Saludos,
José Luis Capel
"Margarita Valdez" <margarita@apsi.com.mx> escribió en el mensaje
news:[email=4489ae3b@ozsrvnegro.ozlan.local...]4489ae3b@ozsrvnegro.ozlan.local...[/email]
> Hola
> Tengo un programa que genera un reporte de crystal
> este es el codigo,
>
> oRep := oApp:OpenReport(CurDrive() + ':' + CurDir() +
> 'reportesrptInstructoresInstitucion.rpt')
>
> WITH OBJECT Tini():New(".config.ini")
> oDb := oRep:Database()
> oTablas := oDb:Tables()
> nTables := oTablas:Count()
> FOR nTab := 1 TO nTables
> oDb:Tables(nTab):SetLogOnInfo(:GetEntry("CONFIG","SERVER", ""),
> :GetEntry("CONFIG","BD", ""), :GetEntry("CONFIG","ID", ""),
> :GetEntry("CONFIG","PWD", ""))
> NEXt
> END
>
> oRep:Preview("Idioma")
>
> lo que suscede es que el reporte me lo presenta y lo cierra, no lo deja
> abierto.. alguien me puede decir como arreglarlo.
>
>
¿Tienes algún ejemplo donde se pueda reproducir ese comportamiento?
Por cierto: el método oApp:OpenReport ¿donde lo obtienes? ¿Cual es el objeto
ole que usas?
Saludos,
José Luis Capel
"Margarita Valdez" <margarita@apsi.com.mx> escribió en el mensaje
news:[email=4489ae3b@ozsrvnegro.ozlan.local...]4489ae3b@ozsrvnegro.ozlan.local...[/email]
> Hola
> Tengo un programa que genera un reporte de crystal
> este es el codigo,
>
> oRep := oApp:OpenReport(CurDrive() + ':' + CurDir() +
> 'reportesrptInstructoresInstitucion.rpt')
>
> WITH OBJECT Tini():New(".config.ini")
> oDb := oRep:Database()
> oTablas := oDb:Tables()
> nTables := oTablas:Count()
> FOR nTab := 1 TO nTables
> oDb:Tables(nTab):SetLogOnInfo(:GetEntry("CONFIG","SERVER", ""),
> :GetEntry("CONFIG","BD", ""), :GetEntry("CONFIG","ID", ""),
> :GetEntry("CONFIG","PWD", ""))
> NEXt
> END
>
> oRep:Preview("Idioma")
>
> lo que suscede es que el reporte me lo presenta y lo cierra, no lo deja
> abierto.. alguien me puede decir como arreglarlo.
>
>
Crystal y Xailer
Margarita,
> lo que suscede es que el reporte me lo presenta y lo cierra, no lo deja
> abierto.. alguien me puede decir como arreglarlo.
Por favor, muestra un ejemplo pequeño pero completo que podamos probar.
--
Un saludo,
José F. Giménez
http://www.xailer.com
> lo que suscede es que el reporte me lo presenta y lo cierra, no lo deja
> abierto.. alguien me puede decir como arreglarlo.
Por favor, muestra un ejemplo pequeño pero completo que podamos probar.
--
Un saludo,
José F. Giménez
http://www.xailer.com
-
- Mensajes: 25
- Registrado: Vie Jun 09, 2006 7:22 pm
Crystal y Xailer
hola
esta es la funcion, solo hice el reporte en crystal, y lo mando llamar asi
simplemente.
no agrego ninguna otra cosa ningun objeto, ni referencias, nada mas.
METHOD btnImprimirClick( oSender ) CLASS TProgramaCurso
local oApp:= TOLEAUTO():New("Crystal.CRPE.Application")
local oDB
local oTabla
local nTables
local nTab
local oRep
local forma
local oView
oRep := oApp:OpenReport(CurDrive() + ':' + CurDir() +
'reportesrptInstructoresInstitucion.rpt')
WITH OBJECT Tini():New(".config.ini")
oDb := oRep:Database()
oTablas := oDb:Tables()
nTables := oTablas:Count()
FOR nTab := 1 TO nTables
oDb:Tables(nTab):SetLogOnInfo(:GetEntry("CONFIG","SERVER", ""),
:GetEntry("CONFIG","BD", ""), ;
:GetEntry("CONFIG","ID", ""),
:GetEntry("CONFIG","PWD", ""))
NEXt
END
oRep:Preview("Lugares")
RETURN Nil
saludos!!
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:448da0d0$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Margarita,
>
>> lo que suscede es que el reporte me lo presenta y lo cierra, no lo deja
>> abierto.. alguien me puede decir como arreglarlo.
>
> Por favor, muestra un ejemplo pequeño pero completo que podamos probar.
>
>
> --
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
>
esta es la funcion, solo hice el reporte en crystal, y lo mando llamar asi
simplemente.
no agrego ninguna otra cosa ningun objeto, ni referencias, nada mas.
METHOD btnImprimirClick( oSender ) CLASS TProgramaCurso
local oApp:= TOLEAUTO():New("Crystal.CRPE.Application")
local oDB
local oTabla
local nTables
local nTab
local oRep
local forma
local oView
oRep := oApp:OpenReport(CurDrive() + ':' + CurDir() +
'reportesrptInstructoresInstitucion.rpt')
WITH OBJECT Tini():New(".config.ini")
oDb := oRep:Database()
oTablas := oDb:Tables()
nTables := oTablas:Count()
FOR nTab := 1 TO nTables
oDb:Tables(nTab):SetLogOnInfo(:GetEntry("CONFIG","SERVER", ""),
:GetEntry("CONFIG","BD", ""), ;
:GetEntry("CONFIG","ID", ""),
:GetEntry("CONFIG","PWD", ""))
NEXt
END
oRep:Preview("Lugares")
RETURN Nil
saludos!!
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:448da0d0$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Margarita,
>
>> lo que suscede es que el reporte me lo presenta y lo cierra, no lo deja
>> abierto.. alguien me puede decir como arreglarlo.
>
> Por favor, muestra un ejemplo pequeño pero completo que podamos probar.
>
>
> --
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
>
Crystal y Xailer
Margarita,
he estado revisando otros ejemplos y he visto que el problema que tienes se
debe a que la conexión OLE se corta. La causa es que estás usando variables
locales para crear los objetos OLE, y cuando sales del método, el propio
xHarbour las destruye, cortando así la conexión. Por eso desaparece
inmediatamente el preview.
La solución consiste en mantener esas variables que contienen los objetos
OLE mientras esté visible el preview. Puedes hacerlo usando variables
estáticas, como DATAs de una clase o mecanismos similares.
Por otro lado, he hecho una clase que lanza un report de CR en su preview, y
permite mostrarlo en Xailer tanto en MDIChild como en modal o normal. Si la
quieres te la puedo enviar.
--
Un saludo,
José F. Giménez
http://www.xailer.com
he estado revisando otros ejemplos y he visto que el problema que tienes se
debe a que la conexión OLE se corta. La causa es que estás usando variables
locales para crear los objetos OLE, y cuando sales del método, el propio
xHarbour las destruye, cortando así la conexión. Por eso desaparece
inmediatamente el preview.
La solución consiste en mantener esas variables que contienen los objetos
OLE mientras esté visible el preview. Puedes hacerlo usando variables
estáticas, como DATAs de una clase o mecanismos similares.
Por otro lado, he hecho una clase que lanza un report de CR en su preview, y
permite mostrarlo en Xailer tanto en MDIChild como en modal o normal. Si la
quieres te la puedo enviar.
--
Un saludo,
José F. Giménez
http://www.xailer.com
Crystal y Xailer
Póngala aqui maestro, y muchas gracias.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:44900358$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Margarita,
>
> he estado revisando otros ejemplos y he visto que el problema que tienes
> se debe a que la conexión OLE se corta. La causa es que estás usando
> variables locales para crear los objetos OLE, y cuando sales del método,
> el propio xHarbour las destruye, cortando así la conexión. Por eso
> desaparece inmediatamente el preview.
>
> La solución consiste en mantener esas variables que contienen los objetos
> OLE mientras esté visible el preview. Puedes hacerlo usando variables
> estáticas, como DATAs de una clase o mecanismos similares.
>
> Por otro lado, he hecho una clase que lanza un report de CR en su preview,
> y permite mostrarlo en Xailer tanto en MDIChild como en modal o normal. Si
> la quieres te la puedo enviar.
>
> --
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
>
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:44900358$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Margarita,
>
> he estado revisando otros ejemplos y he visto que el problema que tienes
> se debe a que la conexión OLE se corta. La causa es que estás usando
> variables locales para crear los objetos OLE, y cuando sales del método,
> el propio xHarbour las destruye, cortando así la conexión. Por eso
> desaparece inmediatamente el preview.
>
> La solución consiste en mantener esas variables que contienen los objetos
> OLE mientras esté visible el preview. Puedes hacerlo usando variables
> estáticas, como DATAs de una clase o mecanismos similares.
>
> Por otro lado, he hecho una clase que lanza un report de CR en su preview,
> y permite mostrarlo en Xailer tanto en MDIChild como en modal o normal. Si
> la quieres te la puedo enviar.
>
> --
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
>
Crystal y Xailer
Rolando,
> Póngala aqui maestro, y muchas gracias.
Bien, aquí está. He de reconocer que parte del mérito es de René Flores. La
forma de usarla es la siguiente:
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
Hay que tener en cuenta que sirve para lanzar un report directo, es decir,
que no necesita abrir tablas o suministrar nombre de usuario y contraseña.
En ese caso habría que hacerlo a mano o completar la clase. Por cierto, si
alguien quiere completar la clase y ponerla a disposición de todos, sólo
tiene que enviárnosla para que la publiquemos.
--
Un saludo,
José F. Giménez
http://www.xailer.com
Attached files CR.zip (684 B)Â
> Póngala aqui maestro, y muchas gracias.
Bien, aquí está. He de reconocer que parte del mérito es de René Flores. La
forma de usarla es la siguiente:
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
Hay que tener en cuenta que sirve para lanzar un report directo, es decir,
que no necesita abrir tablas o suministrar nombre de usuario y contraseña.
En ese caso habría que hacerlo a mano o completar la clase. Por cierto, si
alguien quiere completar la clase y ponerla a disposición de todos, sólo
tiene que enviárnosla para que la publiquemos.
--
Un saludo,
José F. Giménez
http://www.xailer.com
Attached files CR.zip (684 B)Â
-
- Mensajes: 25
- Registrado: Vie Jun 09, 2006 7:22 pm
Crystal y Xailer
Hola,
Le hice estos cambios a la clase para que pudiera conectarse a las tablas y
recibir parametros.
Saludos.
#include "Xailer.ch"
//---------------------------------------------------------- --------------------
CLASS TCrystalPreview FROM TForm
PROPERTY cText INIT "Crystal Reports Preview"
PROPERTY cReport
DATA oCRApp, oCRReport, hPreview
DATA nTab, oDb, oTablas, nTables
METHOD Show( nShowMode, lCenter )
METHOD Free()
METHOD GoNextControl() VIRTUAL
METHOD GoPrevControl() VIRTUAL
METHOD WMSize()
METHOD Crea()
METHOD Parametro( Nombre, Parametro )
ENDCLASS
//---------------------------------------------------------- --------------------
METHOD Parametro( Nombre, Parametro ) CLASS TCrystalPreview
::oCRReport:ParameterFields(Nombre):setCurrentValue(Parametr o)
RETURN Nil
//---------------------------------------------------------- --------------------
METHOD Crea() CLASS TCrystalPreview
IF Empty( ::Handle )
::Create()
ENDIF
::oCRApp := CreateObject( "Crystal.CRPE.Application" )
::oCRReport := ::oCRApp:OpenReport( ::cReport )
::oDb := ::oCRReport:Database()
::oTablas := ::oDb:Tables()
::nTables := ::oTablas:Count()
WITH OBJECT Tini():New(".config.ini")
FOR ::nTab := 1 TO ::nTables
::oDb:Tables(::nTab):SetLogOnInfo(:GetEntry("CONFIG","SERVER ", ""),
:GetEntry("CONFIG","BD", ""), ;
:GetEntry("CONFIG","ID", ""),
:GetEntry("CONFIG","PWD", ""))
NEXt
end
RETURN NIL
//---------------------------------------------------------- --------------------
METHOD Show( nShowMode, lCenter ) CLASS TCrystalPreview
::oCRReport:Preview( "", 0, 0, 0, 0, WS_CHILD, ::Handle )
::hPreview := GetWindow( ::Handle, GW_CHILD )
Super:Show( nShowMode, lCenter )
RETURN Nil
//---------------------------------------------------------- --------------------
METHOD Free() CLASS TCrystalPreview
IF ::oCRReport != Nil
::oCRReport := Nil
::oCRApp := Nil
ENDIF
RETURN Super:Free()
//---------------------------------------------------------- --------------------
METHOD WMSize( nWParam, nLParam ) CLASS TCrystalPreview
MoveWindow( ::hPreview, 0, 0, LoWord( nLParam ), HiWord( nLParam ) )
RETURN Nil
//---------------------------------------------------------- --------------------
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:449090dc$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Rolando,
>
>> Póngala aqui maestro, y muchas gracias.
>
> Bien, aquí está. He de reconocer que parte del mérito es de René Flores.
> La forma de usarla es la siguiente:
>
> 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
>
>
> Hay que tener en cuenta que sirve para lanzar un report directo, es decir,
> que no necesita abrir tablas o suministrar nombre de usuario y contraseña.
> En ese caso habría que hacerlo a mano o completar la clase. Por cierto, si
> alguien quiere completar la clase y ponerla a disposición de todos, sólo
> tiene que enviárnosla para que la publiquemos.
>
>
> --
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
>
>
Le hice estos cambios a la clase para que pudiera conectarse a las tablas y
recibir parametros.
Saludos.
#include "Xailer.ch"
//---------------------------------------------------------- --------------------
CLASS TCrystalPreview FROM TForm
PROPERTY cText INIT "Crystal Reports Preview"
PROPERTY cReport
DATA oCRApp, oCRReport, hPreview
DATA nTab, oDb, oTablas, nTables
METHOD Show( nShowMode, lCenter )
METHOD Free()
METHOD GoNextControl() VIRTUAL
METHOD GoPrevControl() VIRTUAL
METHOD WMSize()
METHOD Crea()
METHOD Parametro( Nombre, Parametro )
ENDCLASS
//---------------------------------------------------------- --------------------
METHOD Parametro( Nombre, Parametro ) CLASS TCrystalPreview
::oCRReport:ParameterFields(Nombre):setCurrentValue(Parametr o)
RETURN Nil
//---------------------------------------------------------- --------------------
METHOD Crea() CLASS TCrystalPreview
IF Empty( ::Handle )
::Create()
ENDIF
::oCRApp := CreateObject( "Crystal.CRPE.Application" )
::oCRReport := ::oCRApp:OpenReport( ::cReport )
::oDb := ::oCRReport:Database()
::oTablas := ::oDb:Tables()
::nTables := ::oTablas:Count()
WITH OBJECT Tini():New(".config.ini")
FOR ::nTab := 1 TO ::nTables
::oDb:Tables(::nTab):SetLogOnInfo(:GetEntry("CONFIG","SERVER ", ""),
:GetEntry("CONFIG","BD", ""), ;
:GetEntry("CONFIG","ID", ""),
:GetEntry("CONFIG","PWD", ""))
NEXt
end
RETURN NIL
//---------------------------------------------------------- --------------------
METHOD Show( nShowMode, lCenter ) CLASS TCrystalPreview
::oCRReport:Preview( "", 0, 0, 0, 0, WS_CHILD, ::Handle )
::hPreview := GetWindow( ::Handle, GW_CHILD )
Super:Show( nShowMode, lCenter )
RETURN Nil
//---------------------------------------------------------- --------------------
METHOD Free() CLASS TCrystalPreview
IF ::oCRReport != Nil
::oCRReport := Nil
::oCRApp := Nil
ENDIF
RETURN Super:Free()
//---------------------------------------------------------- --------------------
METHOD WMSize( nWParam, nLParam ) CLASS TCrystalPreview
MoveWindow( ::hPreview, 0, 0, LoWord( nLParam ), HiWord( nLParam ) )
RETURN Nil
//---------------------------------------------------------- --------------------
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:449090dc$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Rolando,
>
>> Póngala aqui maestro, y muchas gracias.
>
> Bien, aquí está. He de reconocer que parte del mérito es de René Flores.
> La forma de usarla es la siguiente:
>
> 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
>
>
> Hay que tener en cuenta que sirve para lanzar un report directo, es decir,
> que no necesita abrir tablas o suministrar nombre de usuario y contraseña.
> En ese caso habría que hacerlo a mano o completar la clase. Por cierto, si
> alguien quiere completar la clase y ponerla a disposición de todos, sólo
> tiene que enviárnosla para que la publiquemos.
>
>
> --
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
>
>
Crystal y Xailer
Hola: hay información muy jugosa en este blog, alguien sabe si está en
español en otra parte? http://www.sailingwithxailer.blogspot.com/
"Margarita Valdez" <margarita@apsi.com.mx> escribió en el mensaje
news:449340a9$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Hola,
> Le hice estos cambios a la clase para que pudiera conectarse a las tablas
> y recibir parametros.
> Saludos.
>
>
> #include "Xailer.ch"
>
> //---------------------------------------------------------- --------------------
>
> CLASS TCrystalPreview FROM TForm
>
> PROPERTY cText INIT "Crystal Reports Preview"
> PROPERTY cReport
>
> DATA oCRApp, oCRReport, hPreview
> DATA nTab, oDb, oTablas, nTables
>
> METHOD Show( nShowMode, lCenter )
> METHOD Free()
> METHOD GoNextControl() VIRTUAL
> METHOD GoPrevControl() VIRTUAL
> METHOD WMSize()
> METHOD Crea()
> METHOD Parametro( Nombre, Parametro )
>
> ENDCLASS
> //---------------------------------------------------------- --------------------
> METHOD Parametro( Nombre, Parametro ) CLASS TCrystalPreview
> ::oCRReport:ParameterFields(Nombre):setCurrentValue(Parametr o)
> RETURN Nil
> //---------------------------------------------------------- --------------------
> METHOD Crea() CLASS TCrystalPreview
>
> IF Empty( ::Handle )
> ::Create()
> ENDIF
>
> ::oCRApp := CreateObject( "Crystal.CRPE.Application" )
> ::oCRReport := ::oCRApp:OpenReport( ::cReport )
>
> ::oDb := ::oCRReport:Database()
> ::oTablas := ::oDb:Tables()
> ::nTables := ::oTablas:Count()
> WITH OBJECT Tini():New(".config.ini")
> FOR ::nTab := 1 TO ::nTables
> ::oDb:Tables(::nTab):SetLogOnInfo(:GetEntry("CONFIG","SERVER ",
> ""), :GetEntry("CONFIG","BD", ""), ;
> :GetEntry("CONFIG","ID", ""),
> :GetEntry("CONFIG","PWD", ""))
> NEXt
> end
>
> RETURN NIL
> //---------------------------------------------------------- --------------------
> METHOD Show( nShowMode, lCenter ) CLASS TCrystalPreview
>
> ::oCRReport:Preview( "", 0, 0, 0, 0, WS_CHILD, ::Handle )
> ::hPreview := GetWindow( ::Handle, GW_CHILD )
> Super:Show( nShowMode, lCenter )
>
> RETURN Nil
>
> //---------------------------------------------------------- --------------------
>
> METHOD Free() CLASS TCrystalPreview
>
> IF ::oCRReport != Nil
> ::oCRReport := Nil
> ::oCRApp := Nil
> ENDIF
>
> RETURN Super:Free()
>
> //---------------------------------------------------------- --------------------
>
> METHOD WMSize( nWParam, nLParam ) CLASS TCrystalPreview
>
> MoveWindow( ::hPreview, 0, 0, LoWord( nLParam ), HiWord( nLParam ) )
>
> RETURN Nil
>
> //---------------------------------------------------------- --------------------
>
>
>
> "Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
> news:449090dc$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>> Rolando,
>>
>>> Póngala aqui maestro, y muchas gracias.
>>
>> Bien, aquí está. He de reconocer que parte del mérito es de René Flores.
>> La forma de usarla es la siguiente:
>>
>> 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
>>
>>
>> Hay que tener en cuenta que sirve para lanzar un report directo, es
>> decir, que no necesita abrir tablas o suministrar nombre de usuario y
>> contraseña. En ese caso habría que hacerlo a mano o completar la clase.
>> Por cierto, si alguien quiere completar la clase y ponerla a disposición
>> de todos, sólo tiene que enviárnosla para que la publiquemos.
>>
>>
>> --
>> Un saludo,
>>
>> José F. Giménez
>> http://www.xailer.com
>>
>>
>
>
español en otra parte? http://www.sailingwithxailer.blogspot.com/
"Margarita Valdez" <margarita@apsi.com.mx> escribió en el mensaje
news:449340a9$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Hola,
> Le hice estos cambios a la clase para que pudiera conectarse a las tablas
> y recibir parametros.
> Saludos.
>
>
> #include "Xailer.ch"
>
> //---------------------------------------------------------- --------------------
>
> CLASS TCrystalPreview FROM TForm
>
> PROPERTY cText INIT "Crystal Reports Preview"
> PROPERTY cReport
>
> DATA oCRApp, oCRReport, hPreview
> DATA nTab, oDb, oTablas, nTables
>
> METHOD Show( nShowMode, lCenter )
> METHOD Free()
> METHOD GoNextControl() VIRTUAL
> METHOD GoPrevControl() VIRTUAL
> METHOD WMSize()
> METHOD Crea()
> METHOD Parametro( Nombre, Parametro )
>
> ENDCLASS
> //---------------------------------------------------------- --------------------
> METHOD Parametro( Nombre, Parametro ) CLASS TCrystalPreview
> ::oCRReport:ParameterFields(Nombre):setCurrentValue(Parametr o)
> RETURN Nil
> //---------------------------------------------------------- --------------------
> METHOD Crea() CLASS TCrystalPreview
>
> IF Empty( ::Handle )
> ::Create()
> ENDIF
>
> ::oCRApp := CreateObject( "Crystal.CRPE.Application" )
> ::oCRReport := ::oCRApp:OpenReport( ::cReport )
>
> ::oDb := ::oCRReport:Database()
> ::oTablas := ::oDb:Tables()
> ::nTables := ::oTablas:Count()
> WITH OBJECT Tini():New(".config.ini")
> FOR ::nTab := 1 TO ::nTables
> ::oDb:Tables(::nTab):SetLogOnInfo(:GetEntry("CONFIG","SERVER ",
> ""), :GetEntry("CONFIG","BD", ""), ;
> :GetEntry("CONFIG","ID", ""),
> :GetEntry("CONFIG","PWD", ""))
> NEXt
> end
>
> RETURN NIL
> //---------------------------------------------------------- --------------------
> METHOD Show( nShowMode, lCenter ) CLASS TCrystalPreview
>
> ::oCRReport:Preview( "", 0, 0, 0, 0, WS_CHILD, ::Handle )
> ::hPreview := GetWindow( ::Handle, GW_CHILD )
> Super:Show( nShowMode, lCenter )
>
> RETURN Nil
>
> //---------------------------------------------------------- --------------------
>
> METHOD Free() CLASS TCrystalPreview
>
> IF ::oCRReport != Nil
> ::oCRReport := Nil
> ::oCRApp := Nil
> ENDIF
>
> RETURN Super:Free()
>
> //---------------------------------------------------------- --------------------
>
> METHOD WMSize( nWParam, nLParam ) CLASS TCrystalPreview
>
> MoveWindow( ::hPreview, 0, 0, LoWord( nLParam ), HiWord( nLParam ) )
>
> RETURN Nil
>
> //---------------------------------------------------------- --------------------
>
>
>
> "Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
> news:449090dc$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>> Rolando,
>>
>>> Póngala aqui maestro, y muchas gracias.
>>
>> Bien, aquí está. He de reconocer que parte del mérito es de René Flores.
>> La forma de usarla es la siguiente:
>>
>> 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
>>
>>
>> Hay que tener en cuenta que sirve para lanzar un report directo, es
>> decir, que no necesita abrir tablas o suministrar nombre de usuario y
>> contraseña. En ese caso habría que hacerlo a mano o completar la clase.
>> Por cierto, si alguien quiere completar la clase y ponerla a disposición
>> de todos, sólo tiene que enviárnosla para que la publiquemos.
>>
>>
>> --
>> Un saludo,
>>
>> José F. Giménez
>> http://www.xailer.com
>>
>>
>
>
Crystal y Xailer
Rolando,
> Hola: hay información muy jugosa en este blog, alguien sabe si está en
> español en otra parte? http://www.sailingwithxailer.blogspot.com/
El mismo artículo, escrito por la misma persona (René Flores), pero en
español, lo tienes en:
http://objetopersistente.blogspot.com/2 ... er-y-cryst al-reports.html
--
Un saludo,
José F. Giménez
http://www.xailer.com
> Hola: hay información muy jugosa en este blog, alguien sabe si está en
> español en otra parte? http://www.sailingwithxailer.blogspot.com/
El mismo artículo, escrito por la misma persona (René Flores), pero en
español, lo tienes en:
http://objetopersistente.blogspot.com/2 ... er-y-cryst al-reports.html
--
Un saludo,
José F. Giménez
http://www.xailer.com