none
Problema con la carga de un Reporte en Crystal Report RRS feed

  • Pregunta

  • Hola que tal tengo un problema talvez me puedan ayudar
    en un formulario tengo campos texbox, los valores de estos campos los quiero enviar a un reporte ya editado este reporte no tiene ninguna conexion a ninguna BD.
    anteriormente tenia un formulario con un crystalreportviewer para cada reporte utilizaba este codigo para cargar los datos de los texbox

    Dim importar As CrystalDecisions.CrystalReports.Engine.TextObject

    importar = SATFRONT1.Section1.ReportObjects.Item(”txtdescrip1″)
    importar.Text = FrmFormatos.TextBox1.Text

    y funcionaba por que en el crystalreportviewer ya tenia cargado el reporte(SATFRON.rpt) pero ahora en mi aplicacion tengo un menu donde se seleccione el reporte que quiero ver y este se carguen en un solo formulario con un solo crystalreportviewer claro que para lograrlo tengo que validar que boton del menu se selecciono todo funciona con este codigo

    If FrmFormatos.VistaPreviaToolStripMenuItem.Checked = True Then
    FrmFormatos.VistaPreviaToolStripMenuItem.Checked = False

    CrvVistaPre.ReportSource = “C:\satfront.rpt”

    End If

    mi problema es que ya no puedo visualizar los datos de los texbox en el el reporte porque el codigo que ocupaba para cargar los datos ya no funciona por que ya no tengo cargado el reporte (SATFRONT.rpt) en el crystalreportviewer sino que la carga del archivo se hace en tiempo de ejecucion y no se como modificar el codigo de carga de los datos de los textbox para que funcione con el reporte que se cargó despues de la seleccion
    espero haber explicado bien mi problema y que me puedan ayudar

    • Cambiado Enrique M. Montejo jueves, 23 de junio de 2011 17:15 Crystal Reports (De:Lenguaje VB.NET)
    sábado, 26 de septiembre de 2009 23:54

Todas las respuestas

  • hola

    en realidad aunque uses un solo formulario para visualizar todos los reportes puedes seguir utilziando la misma tecnica que te daba buenos resultado con la asignacion de objeto de texto de reporte

    lo que puedes hacer es pasarle los parametros al formulario con los datos de visualizacion de reportes

    o sea cuando instancias el form de reportes, puedes utilziar propiedades ene ste para indicar informacion que viene de otro pantalla

    Dim form As New frmReportViewer()

    form.ReporteSeleccionado = enumReportesDisponibles.VistaPrevia
    form.Nombre = "<valor>"
    form.Direccion = "<valor>"
    .
    .
    form.Show()



    si tienes que mostrar otro reporte puedes hacer

    Dim form As New frmReportViewer()

    form.ReporteSeleccionado = enumReportesDisponibles.VistaClientes
    form.IdCliente = "<valor>"
    form.RazonSocial = "<valor>"
    .
    .
    form.Show()


    como veras desde tus evento del menu puedes abrir el mismo form pero pasandole propiedades para qe este sepa como cargar el reporte

    con al ayuda de un enum podras definir que reportes tienes disponibles que lo sweteas cual es el activo cuando estas por abrir el formulario


    por supuesto dentro de tu frmReportViewer en el form_load deberias trabajar con estas propiedades

    codigo de frmReportViewer :


    Public Sub Form_Load(...)

       Select Case Me.ReporteSeleccionado
           
                Case enumReportesDisponibles.VistaPrevia
                    CargarReporteVistaPrevia()

                Case enumReportesDisponibles.VistaClientes
                    CargarReporteVistaClientes()


       End Select

    End Sub


    Private Sub CargarReporteVistaPrevia
       
        ' en estos metodos trabajas con als propiedades que estan en el formulario sabiedno cuales son als que necesitas
        ' y solo esas que fueron asignadas en la llamda.
        Dim importar As CrystalDecisions.CrystalReports.Engine.TextObject

         importar = SATFRONT1.Section1.ReportObjects.Item(”txtdescrip1″)
         importar.Text = FrmFormatos.TextBox1.Text

          CrvVistaPre.ReportSource = “C:\satfront.rpt”

    End Sub

    Private SubCargarReporteVistaClientes()
      ' idem el tro metodo
    End Sub



    bueno espero se entienda la explicacion
    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    domingo, 27 de septiembre de 2009 4:47