none
VB2008 - Como llenar Tabla en un Dataset Tipado RRS feed

  • Pregunta

  • Estimados,

    Necesito llenar una tabla específica ubicada en un DataSet para poder llenar un reporte, como lo puedo hacer?

    Detallo parte de mi estructura:

    CAPA DATOS

     Public Function BusquedaVenta(ByVal Fecha As String, ByVal Usuario As Integer) As DataSet
           
                Using cnx As New MySqlConnection(cx.oMySQL)
                    cx.pMySQLCmd = New MySqlCommand("sp_VentaBuscar", cnx)
                    cx.pMySQLCmd.CommandType = CommandType.StoredProcedure

                    cx.pMySQLCmd.Parameters.AddWithValue("FECHA", Fecha)
                    cx.pMySQLCmd.Parameters.AddWithValue("USUARIO", Usuario)

                    cx.pMySQLAdaptador = New MySqlDataAdapter(cx.pMySQLCmd)
                    cx.pDataset = New DataSet
                    cx.pMySQLAdaptador.Fill(cx.pDataset, "Venta")

                End Using
          
            Return cx.pDataset
    End Function

    CAPA PRESENTACION

    Private Sub ImprimirDetalle()

    Dim oDataBuscar As New DataTable
    Dim oInforme As New CrystalReport1
    Dim mi_oDataReportes As New oDataReportes

    oDataBuscar = oVNT.BusquedaVenta(Fecha, Usuario).Tables("Venta")

    oInforme.SetDataSource(mi_oDataReportes)

    ......

    End Sub

    ESTRUCTURA DATASET

    DataSet: oDataReportes.xsd

    DataTables en oDataReportes.xsd: VtaLibroVenta y VtaLibroDiario

    Basicamente, la idea es usar oDataBuscar = oVNT.BusquedaVenta(Fecha, Usuario).Tables("Venta") para llenar solamente VtaLibroVenta. Con otro reporte y consulta, llenaría VtaLibroDiario. Nota: Los DataTables tienen los campos creados manualmente.

    Agradesco la ayuda que me pudiesen brindar.

    • Cambiado Enrique M. Montejo sábado, 7 de abril de 2012 16:47 acceso a datos (De:Lenguaje VB.NET)
    viernes, 3 de septiembre de 2010 19:24

Todas las respuestas

  • hola

    podrias definir ese dataset tipado en un proyecto de entidades

    como muestro en este articulo

    [N-Tier] – Desarrollo en capas - Ejemplo Facturacion- parte 2

    alli veras como en el proyecto de entidad se crea el dataset tiapod y es usado desde dos capas distintas

    pero la capa de datos devuelve directo el dataset tipado, no uno generico

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 3 de septiembre de 2010 19:34
  • En la internet encontré esto:

    Dim oDataBuscar As New DataTable
    Dim oInforme As New CrystalReport1
    Dim mi_oDataReportes As New oDataReportes

    oDataBuscar = oVNT.BusquedaVenta(Fecha, Usuario).Tables("Venta")

    mi_oDataReportes.VtaLibroVenta.Merge(oDataBuscar, False, System.Data.MissingSchemaAction.Ignore)
    oInforme.SetDataSource(mi_oDataReportes)

    Está correctamente implementado?

    viernes, 3 de septiembre de 2010 21:29
  • hola

    si estas diseñando en capas eso que planteas no es correcto

    ojo no digo que no funcione, en principio con el Merge deberia ir bien, si es que el datasert tipado y el dataset sin tipo tienen la misma estructura y nombre de campos

    pero ams alla de eso, y peensando en una arquitectura, la verdad no lo aplciaria de esa forma, haria que la capa de datos devuelva un tipo concreto, lo cual se puede lograr si pasas el dataset tipado a un proyecto que justamente refleje las entidades de tu negocio, y que este proyecto se referencie desde la presentacion y la capa de datos

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    sábado, 4 de septiembre de 2010 2:36
  • Hola Leandro muy interesante tu articulo [N-Tier] – Desarrollo en capas - Ejemplo Facturacion- parte 2, pero tengo una pregunta ¿Como diseño mi rpt con los campos de mi dataset tipado si se encuentra en otra clase (Clase Entidad) no se visualiza el DataSet desde el Field Explorer ya que mi rpt esta en la clase del proyecto y el dataset esta en la clase entidad?, mil gracias por tu respuesta de ante mano, solo me falta ello para hacer andar mis reportes. gracias
    martes, 20 de marzo de 2012 16:42