none
Cambiar dinamicamente el fichero de un informe

    Pregunta

  • Buenas, tengo el siguiente problema que no veo como solucionar, a ver si me podeis echar un cable, gracias anticipadas!

    Desde mi aplicación tengo varios informes con Crystal Report.  Y yo vengo cargándolos de la siguiente forma :

     Dim cr1 As New FacturaDOC

    Donde FacturaDOC es el nombre que tiene el informe. Esto me resulta muy útil porque el informe queda "DENTRO" del propio ejecutable, pero ahora me encuentro con el siguiente problema, tengo 5 informes con exactamente los mismos datos pero con un diseño totalmente diferente, entonces para que me funcione tengo que repetir todo el código de impresión en 5 modulos diferentes.

    Mi duda es si no existe alguna manera de cambiarlo dinámicamente, algo asi como :

    If informeimprimo=1 then cr1 New FacturaDOC

    If informeimprimo=2 then cr1 New FacturaDOCA

    If informeimprimo=3 then cr1 New FacturaDOCB

    Gracias!

    Hasta el momento , estoy saliendo del paso con un IF donde cargo el informe que necesito, pero esto me obliga a tener que enviar los informes con cada instalacion:

    Dim cr1 As New CrystalDecisions.CrystalReports.Engine.ReportDocument
    
    cr1.Load("E:\vbsol\inf\fdoc.rpt")

    martes, 30 de agosto de 2016 9:51

Respuestas

  • Hola,

    Prueba a instanciarlos dentro de una clase ReportDocument, es la clase base de los reportes de CrystalReports

    Dim cr as ReportDocument
    If a= 1 then cr New Reporte1
    If a= 2 then cr New Reporte2
    
    

    Saludos,

    • Marcado como respuesta mayoko martes, 30 de agosto de 2016 17:44
    martes, 30 de agosto de 2016 10:23

Todas las respuestas