none
Fallo al ejecutar report de crystal en VS2015 pero no en VS2008 RRS feed

  • Pregunta

  • He migrado un equipo con Windows 7 y Visual Studio 2008 a Windows 10 Enterprise y Visual Studio 2015 Profesional.

    Como VS2015 no trae incorporado Crystal Reports, cargué CRforVS_13_0_17.

    Todo iba bien (incluidos los cambios de referencias) hasta que llego la hora de migrar los reports de crystal conectados mediante ODBC desde que empecé con Visual Basic 4.

    NO HABIA FORMA DE QUE FUNCIONARAN.

    Posteriormente instalé CRforVs_redist_install_32bit_13_0_17 y se arregló ¿?.

    En una de las múltiples consultas realizadas en Internet, me aconsejaron una forma de hacerlo independiente de la base de datos en que se trabaje, por lo que me interesa conseguir que funcione, porque me permitiría no tener que tocar los listados, como me ha ocurrido ahora, al pasar de access a MySql.

    El "truco" es crear una estructura de tabla como fichero XML con los campos del listado y con ella generar el listado.

    Este sistema lo he probado en Visual Studio 2008 y funciona, pero en VS2015 NO utilizando la misma base de datos MySql.

    Os paso la subrutina. Realmente es el load de un formulario que contiene un CrystalReport.Viewer (crvInformes) y un ReportDocument (rdInforme).

        Private Sub FrmVerInformes_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

                 rdInforme.Load(msFicheroRPT)                                    ' Variable en la que va el nombre der report (xxxxx.rpt)

                Dim ldtDataTable As DataTable = lF_dtCrearDataTable()           ' Subrutina para crear el DataTable

                rdInforme.SetDataSource(ldtDataTable)      ' AQUÍ SE PRODUCE EL ERROR EN VS2015

                crvInformes.ReportSource = rdInforme

        End Sub

    Un saludo.

    P.D. He dejado lo basico eliminando la deteccion de errores; asi como los parámetros de conexión .... etc.

    jueves, 30 de junio de 2016 18:42

Todas las respuestas

  • Hola:

    La solución la tienes en el uso de datasets tipados y en pasarle ese dataset al rpt, lo que logras con eso es independencia de que base de datos se utiliza y de su ruta. Al informe nada más le interesa el dataset tipado, por lo que prescinde de que base de datos y de donde está ubicada, con ello no hay problema de servidores ni nada,

    Esa es la solución.

    Un saludo

    Gemma

    jueves, 30 de junio de 2016 18:47
  • Eso esta claro, lo que no funciona es darle un valor al DataSource del ReportDocument; ya sea datatable o DataSet. He probado en VS2015 ambas y no funcionan, pero en VS2008 lo hacen ambas.

    Ese es el problema, creo que puede estar en alguna dll o bien sea un bug del CRfosVS

    viernes, 1 de julio de 2016 17:55