Usuario
Como agregar los resultados de varios DataGridView a un DataSet para presentarlos en un reporte con CrystalReports?

Pregunta
-
Hola he estado trabajando en mi sistema y me encuentro con un problema; en el que deseo que los resultados de una compra se muestren en un reporte. Para ello en mi projecto de vb he creado varios DGV, un DataSet con varios DataTable ya que son varias consultas las que hago a la base de datos, estas consultas las muestro en los DGV y los resultados que se muestran en los DGV los cargo a los DataTable y asi poder presentarlos en un reporte con CrystalReports.
Ya he intentado que se muestre la información en el reporte pero cuando ejecuto mi aplicación hago las compras y hago el reporte, el reporte no me muestra nada de la información que deberia mostrar, este es el codigo que utilizo para cargar los datos de los DGV a los DataTable;
Private Function GenerarMen() As dtCompra Dim facturacion As New dtCompra() ' Agrego el registro con la info ' Dim mensual As dtCompra.DatosMensualRow = facturacion.DatosMensual.NewDatosMensualRow() mensual.Fechadesde = DateTimePicker4.Text mensual.Fechahasta = DateTimePicker5.Text mensual.ReciboCancel = TextBox5.Text mensual.SaldoAnterior = TextBox6.Text facturacion.DatosMensual.AddDatosMensualRow(mensual) ' ' Itero por cada fila del DataGridView creando el registro ' en el DataTable For Each row As DataGridViewRow In DataGridView1.Rows Dim rowCompra As dtCompra.ComprasRow = facturacion.Compras.NewComprasRow() rowCompra.PartidaSel = Convert.ToString(row.Cells(0).Value) rowCompra.DescripcionSel = Convert.ToString(row.Cells(1).Value) rowCompra.PrecioSel = Convert.ToDecimal(row.Cells(2).Value) rowCompra.TextoSel = Convert.ToString(row.Cells(3).Value) rowCompra.TotalSel = Convert.ToDecimal(row.Cells(4).Value) rowCompra.PartidaGeSel = Convert.ToString(row.Cells(5).Value) rowCompra.ServiciosSel = Convert.ToString(row.Cells(6).Value) facturacion.Compras.AddComprasRow(rowCompra) Next For Each row As DataGridViewRow In DataGridView2.Rows Dim rowCompra As dtCompra.Compras1Row = facturacion.Compras1.NewCompras1Row() rowCompra.PartidaSel = Convert.ToString(row.Cells(0).Value) rowCompra.DescripcionSel = Convert.ToString(row.Cells(1).Value) rowCompra.PrecioSel = Convert.ToDecimal(row.Cells(2).Value) rowCompra.TextoSel = Convert.ToString(row.Cells(3).Value) rowCompra.TotalSel = Convert.ToDecimal(row.Cells(4).Value) rowCompra.PartidaGeSel = Convert.ToString(row.Cells(5).Value) rowCompra.ServiciosSel = Convert.ToString(row.Cells(6).Value) facturacion.Compras1.AddCompras1Row(rowCompra) Next For Each row As DataGridViewRow In DataGridView3.Rows Dim rowCompra As dtCompra.Compras2Row = facturacion.Compras2.NewCompras2Row() rowCompra.PartidaSel = Convert.ToString(row.Cells(0).Value) rowCompra.DescripcionSel = Convert.ToString(row.Cells(1).Value) rowCompra.PrecioSel = Convert.ToDecimal(row.Cells(2).Value) rowCompra.TextoSel = Convert.ToString(row.Cells(3).Value) rowCompra.TotalSel = Convert.ToDecimal(row.Cells(4).Value) rowCompra.PartidaGeSel = Convert.ToString(row.Cells(5).Value) rowCompra.ServiciosSel = Convert.ToString(row.Cells(6).Value) facturacion.Compras2.AddCompras2Row(rowCompra) Next For Each row As DataGridViewRow In DataGridView4.Rows Dim rowCompra As dtCompra.Compras3Row = facturacion.Compras3.NewCompras3Row() rowCompra.PartidaSel = Convert.ToString(row.Cells(0).Value) rowCompra.DescripcionSel = Convert.ToString(row.Cells(1).Value) rowCompra.PrecioSel = Convert.ToDecimal(row.Cells(2).Value) rowCompra.TextoSel = Convert.ToString(row.Cells(3).Value) rowCompra.TotalSel = Convert.ToDecimal(row.Cells(4).Value) rowCompra.PartidaGeSel = Convert.ToString(row.Cells(5).Value) rowCompra.ServiciosSel = Convert.ToString(row.Cells(6).Value) facturacion.Compras3.AddCompras3Row(rowCompra) Next For Each row As DataGridViewRow In DataGridView5.Rows Dim rowCompra As dtCompra.Compras4Row = facturacion.Compras4.NewCompras4Row() rowCompra.PartidaGeSel = Convert.ToString(row.Cells(5).Value) rowCompra.ServiciosSel = Convert.ToString(row.Cells(6).Value) facturacion.Compras4.AddCompras4Row(rowCompra) Next For Each row As DataGridViewRow In DataGridView6.Rows Dim rowCompra As dtCompra.Compras5Row = facturacion.Compras5.NewCompras5Row() rowCompra.PartidaGeSel = Convert.ToString(row.Cells(5).Value) rowCompra.ServiciosSel = Convert.ToString(row.Cells(6).Value) facturacion.Compras5.AddCompras5Row(rowCompra) Next For Each row As DataGridViewRow In DataGridView7.Rows Dim rowCompra As dtCompra.Compras6Row = facturacion.Compras6.NewCompras6Row() rowCompra.PartidaGeSel = Convert.ToString(row.Cells(5).Value) rowCompra.ServiciosSel = Convert.ToString(row.Cells(6).Value) facturacion.Compras6.AddCompras6Row(rowCompra) Next Return facturacion End Function
Como ejemplo así mas o menos es lo que el reporte deberia mostrarse:
Cada concepto pertenece a un servicio es decir; Inscripcion pertenece a Tesoreria, Expedición de titulos pertenece a Servicios escolares, total que al final del mes se tiene que generar un reporte de lo que se ha pago durante este periodo por dicho servicio. En el reporte tiene que aparecer con este formato:
Tesoreria $100
Inscripción $50
Inscripción $50
Servicios escolares $150
Expedición de titulo $150
TOTAL $250
- Cambiado Eder Costa miércoles, 5 de septiembre de 2012 16:28 (De:Lenguaje VB.NET)
Todas las respuestas
-
Hola:
Para generar un listado con crystal en el Form tienes que tener 1 ReportDocument (rdInforme) y 1 CrystalReportViewer (crvInforme).
El codigo a ejecutar seria algo como esto:Try
'Cargar fichero de crystal en ReportDocument
Me.rdInforme.Load(TUFICHEROCRYSTAL.RPT)
Catch Exp As Exception
MessageBox.Show(Exp.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Information)
End Try
'Cargar el ReportDocument con un DataTable con los datos filtrados de las n Tablas de tu base de datos.
Me.rdInforme.SetDataSource(TUDATATABLE)
'Cargar el CrystalReportViewer con el ReportDocument
Me.crvInforme.ReportSource = Me.rdInformePor lo tanto lo que tienes que conseguir es el DataTable con los datos filtrados.
¿ Puedes poner las estructuras de las tablas implicadas y los campos que aparecen en el fichero TUFICHEROCRYSTAL.RPT ?Un saludo desde Bilbo
Carlos -
Hola radx182!
Tu post se moverán a un foro más adecuado para tu pregunta.
Saludos.
Eder Costa
LATAM Forum Support Engineer
Microsoft Corporation- Editado Eder Costa miércoles, 5 de septiembre de 2012 16:28