Visual Basic - Pasar recordset al crystal AYUAAA!!!!

Life is soft - evento anual de software empresarial
 
Vista:

Pasar recordset al crystal AYUAAA!!!!

Publicado por edu (20 intervenciones) el 06/06/2007 17:17:32
Hola!

Tengo un problema, a ver si me explico, tengo una sentencia sql en visual enlazado a un recorset ADO.

Me gustaria reflejar el contenido de ese recorset en el informe, pero no se como.

Espero vuestra ayuda.

Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Pasar recordset al crystal AYUAAA!!!!

Publicado por Pedro Luis (878 intervenciones) el 07/06/2007 09:46:35
Es un error intentar llevar algo que tienes en Visual al Crystal, debes considerar que son dos herramientas diferentes que se complementan.
En el Crystal se debe realizar el informe y al lanzarlo, mediante SelectionFormula, poner las condiciones.
No todos los Crystales son iguales, debes decir que version tienes. En este mismo sitio hay un foro de Crystal.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Pasar recordset al crystal AYUAAA!!!!

Publicado por Edu (20 intervenciones) el 07/06/2007 10:22:51
La version que utilizo es la 10.

Lo que pasa es que tengo una sentencia sql que me origina 2 valores que no los puedo meter como campo, o no se como se hace.

llevo dias intentando meter el recorset en un report de crystal sin conseguirlo.

Se que se puede hacer, he visto en los foros algo de codigo, pero no me funciona.

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Pasar recordset al crystal AYUAAA!!!!

Publicado por Pedro Luis (878 intervenciones) el 07/06/2007 11:05:15
Para esos valores que la consulta origina tienes en Crystal los campos calculados que se manejan con Formulas().
Seguramente puedas llevar esas consultas a Crystal, todo es posible en informatica, pero vas a contramano.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Pasar recordset al crystal AYUAAA!!!!

Publicado por Cecilia Colalongo (3116 intervenciones) el 07/06/2007 14:27:06
Se puede hacer utilizando Active Data en Crystal, se utiliza generalmente cuando tienes que independizar tu reporte del origen de datos o para desarrollos en capas. Por ejemplo que la capa de datos pueda ser un DBMS que varíe según la implementación: SQL Server, Oracle, SyBase pero siempre utilizar el mismo reporte.

En:

http://www.elguille.info/colabora/vb/CrystalActivedata.htm

tienes un ejemplo, se utilizan los objetos CRPE y SetPrivateData:

El reporte en Crystal tienes que diseñarlo con "Active Data" y defines el recordset (que columnas contiene) para que luego cuando lo reciba lo pueda identificar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Pasar recordset al crystal AYUAAA!!!!

Publicado por Edu (20 intervenciones) el 07/06/2007 16:00:02
Gracias!!

Ya lo he conseguido, he pasado mi recordset al crystal.

Pero ahora tengo otro problema y es que quiero pasar mas de 1 recorset.

tengo 2 sentencias sql y cuando hago lo que me habeis comentado, solo me refleja el contenido de 1 de ellas.

Como podria tener los 2 recordset en el mismo reporte??

Muchas gracias y perdonad mi ignorancia.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Pasar recordset al crystal AYUAAA!!!!

Publicado por Cecilia Colalongo (3116 intervenciones) el 07/06/2007 16:21:34
Defines en el reporte con ActiveData tantas tablas como recordsets quieras pasar y luego indicar con SetPrivateData cada uno:

Set Cryapp = CreateObject("Crystal.CRPE.Application")
Set CryReport = Cryapp.OpenReport(strpathrep)
rs.Open strsql, ConXAdo, adOpenDynamic, adLockOptimistic

' Primer recordset
Set reportDb = CryReport.Database
Set reportTables = reportDb.Tables
Set reportTable = reportTables.Item(1)

Call reportTable.SetPrivateData(3, rs1)

' Segundo recordset
Set reportDb = CryReport.Database
Set reportTables = reportDb.Tables
Set reportTable = reportTables.Item(2)

Call reportTable.SetPrivateData(3, rs2)

Set repView = CryReport.Preview
ImprimirCryRep = True
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar