PROBLEMA CON Crystal Report y VBNET.

Jes?enteo
28 de Agosto del 2008
Tengo un programa en VBNET el que hago uso de un informe en Crystal Report. En mi Máquina funciona a las mil maravillas; pero cuando lo hago correr en otro PC (en el que previamente he instalado el net framework) obtengo estos errores:
LOG: publisher policy file is not found.
LOG: Host configuration file not found.
LOG: Post-policy reference: CrystalDecisions.CrystalReports.Engine, Version=9.1.5000.0, Culture =neutral, PublicKeyToken=692bea5521e1304
LOG:Attempting dowload of new URL file://c:/aplicaciones/listados/CrystalDecisions.CrystalReports.Engine/CrystalDecisions.CrystalReports.Engine.dll
LOG:Attempting dowload of new URL file://c:/aplicaciones/listados/CrystalDecisions.CrystalReports.Engine/CrystalDecisions.CrystalReports.Engine.dll
LOG:Attempting dowload of new URL file://c:/aplicaciones/listados/CrystalDecisions.CrystalReports.Engine/CrystalDecisions.CrystalReports.Engine.exe

A ver si alguien me puede echar una mano.


Marcopolo
28 de Agosto del 2008
NO ES NECESARIO REGISTRAR EL CRYSTAL REPORT NET en la PC. El resto de pasos estan bien.

carrasco
28 de Agosto del 2008
Yo tengo el mismo problema con Crytal Report pero con el Visual Studio 2005. He agregado los merge modules pero hay informes que no se abren, y los que se abre se ve una parte del informe de mala manera. Espero respuestas gracias.

Carrasco
28 de Agosto del 2008
Problema resuelto. Estaba bien encaminado. Si alguien tiene el mismo problema que consulte la página: http://msdn2.microsoft.com/es-es/library/ms225386.aspx

-=Aldo=-
28 de Agosto del 2008
hola, siento no poder ayudarte con tu problema y (totalmente) lo contrario a lo que esperabas (una respuesta) te tengo una pregunta: como hago para pasar una formula a un reporte? por favor sigue este link http://www.programacion.com/foros/37/msg/218560/

ahi expuse mi problema. Disculpa por la molestia y desde ya gracias!

Jesus Venteo
28 de Agosto del 2008
Respondo yo mismo a mi pregunta. Seguro que a alguien le sirve de ayuda.


Cuando se crea una aplicación en Visual Basic NET y en ella se implementa un informe de Cristal Report, a la hora de distribuir esta aplicación es preciso tener en cuenta algunas cosas imprescindibles para que la aplicación corra sin problemas en otros equipos que no sean el de desarrollo.
El problema es que el informe funciona divinamente en el equipo en el que nosotros desarrollamos nuestra aplicación, pero al instalar ésta en otro equipo empiezan a salir errores y mensajes de error por todos lados.
Cómo solucionar esto. Bueno. Me ha costado algún que otro calentamiento de cabeza pero al final la cosa ha funcionado. Veamos cómo.
En primer lugar y para empezar debemos registrar nuestro cristal report NET.
Una vez registrado obtenemos unos numeritos muy útiles. Especialmente el código de caducidad, que será el que utilicemos en nuestros programas:

Estimado Jesus Venteo:
Gracias por registrar CR for the .NET Platform .
Su número de registro es 999999999999

El código sin caducidad es: BBP9G-HS9999G-UA999WA


(Este registro se realiza por Internet, huelga decirlo)


Cuando hemos concluido nuestra aplicación, agregamos un nuevo proyecto de instalación, para lo cual nos ayudamos del asistente para crear proyectos de instalación. Esto es bastante sencillo e intuitivo y no precisa de más comentarios.
Este proyecto de instalación debe incluir los siguientes archivos de dependencias, y esto sí que es importante:
Crystal_managed2003.msm
Crystal_database_access2003.msm
Crystal_database_access2003_esn.msm
Crystal_regwiz2003.msm

Además aunque creo que no serían necesarios:

VC_CRT.msm
VB_Control_mschart_rt4_x86_---.msm
VB_Control_mschart_rt4_x86_---esn.msm

Todos estos archivos se encuentran en la ruta:
C:Archivos de programaArchivos comunesMerge Modules

Si todo ha ido bien hasta aquí, el siguiente paso es ir a las propiedades de Crystal_regwiz2003.msm (botón derecho, propiedades) y ahí añadir el código sin caducidad que hemos conseguido al registrarnos.
Ya solo queda generar el proyecto de instalación y…disfrutar del trabajo hecho.

Otra cosa interesante:
Cuando creamos un informe de cristal report. Éste adquiere de forma predeterminada un origen de datos que generalmente será de pruebas. Cuando instalamos la aplicación puede ser que nos interese que ese origen de datos sea distinto.
Esto se consigue mediante código:


Dim oRpt As listado = New listado
' Declarar las variables necesarias.
Dim logoninfo As New CrystalDecisions.Shared.TableLogOnInfo
Dim i As Integer

' Realizar ciclos en todas las tablas del informe.
For i = 0 To oRpt.Database.Tables.Count - 1
' ESTABLECER LA INFORMACION DE CONEXION DE LA TABLA ACTUAL
'(ESTO ES PARA ACCESS)
'srutaaux="c:miaplilistado.mdb"
logoninfo.ConnectionInfo.ServerName = sRutaAux
logoninfo.ConnectionInfo.DatabaseName = ""
logoninfo.ConnectionInfo.UserID = "admin"
logoninfo.ConnectionInfo.Password = ""
oRpt.Database.Tables.Item(i).ApplyLogOnInfo(logoninfo)
Next i




'Le indicamos que debe mostrar mi_rptCatClientes
CrystalReportViewer1.ReportSource = oRpt
'CrystalReportViewer1.PrintReport()


:-)