Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/11/2010, 09:24
sebdream
 
Fecha de Ingreso: mayo-2010
Mensajes: 6
Antigüedad: 14 años
Puntos: 0
Crystal Report y 2 Datatables

Hola foreros, si me pueden ayudar en esto porfavor que me tiene un poco agobiado y no tengo mucha experiencia con Crystal Report.
Resulta que quisiera hacer una vista previa e imprimir información de 2 DataTables, primeramente creo un DataSet y en este las Tablas con sus respectivas columnas. Luego al cargar el formulario de vista previa ( CrystalReportViewer1 )realizo la siguiente acción


Dim ds As New DataSetOT
Dim dt2 As DataTable = ds.Tables.Add("Componentes")
Dim dt1 As DataTable = ds.Tables.Add("Equipos")

dt1.Columns.Add(New DataColumn("NumeroItem", GetType(Integer)))
dt1.Columns.Add(New DataColumn("NumParte_producto", GetType(String)))
dt1.Columns.Add(New DataColumn("DescripResumida", GetType(String)))
dt1.Columns.Add(New DataColumn("Cantidad", GetType(Integer)))



dt2.Columns.Add(New DataColumn("id_RecetaComponente", GetType(Integer)))
dt2.Columns.Add(New DataColumn("NumeroItem", GetType(Integer)))
dt2.Columns.Add(New DataColumn("NumeroParte", GetType(String)))
dt2.Columns.Add(New DataColumn("Descripción", GetType(String)))
dt2.Columns.Add(New DataColumn("Cantidad", GetType(Integer)))


Dim workRow1 As DataRow = dt1.NewRow()
Dim workRow2 As DataRow = dt2.NewRow()

For a = 0 To NuevaT.DataGridOT1.Rows.Count - 1
workRow1 = dt1.NewRow()
workRow1("NumeroItem") = NuevaT.DataGridT1.Rows(a).Cells(0).Value.ToString( )
workRow1("NumParte_producto") = NuevaT.DataGridT1.Rows(a).Cells(1).Value.ToString( )
workRow1("DescripResumida") = NuevaT.DataGridT1.Rows(a).Cells(2).Value.ToString( )
workRow1("Cantidad") = NuevaT.DataGridT1.Rows(a).Cells(3).Value.ToString( )
dt1.Rows.Add(workRow1)
dt1.AcceptChanges()
Next
For b = 0 To NuevaOT.DataGridOT2.Rows.Count - 1
workRow2 = dt2.NewRow()
workRow2("NumeroItem") = NuevaT.DataGridT2.Rows(b).Cells(1).Value.ToString( )
workRow2("NumeroParte") = NuevaT.DataGridT2.Rows(b).Cells(2).Value.ToString( )
workRow2("Descripción") = NuevaT.DataGridT2.Rows(b).Cells(3).Value.ToString( )
workRow2("Cantidad") = NuevaT.DataGridT2.Rows(b).Cells(4).Value.ToString( )
dt2.Rows.Add(workRow2)
dt2.AcceptChanges()
Next


*****

Dim objRpt As New ReporteOT
For a = 0 To 1
MsgBox(ds.Tables(a).ToString)
objRpt.SetDataSource(ds.Tables(a))
CrystalReportViewer1.ReportSource = objRpt
CrystalReportViewer1.Refresh()
Next


*****

Creo las tablas en tiempo de ejecución y le asigno los valores que estan en los DataGridview de otro fomulario. Al realizarlo solo con una tabla funciona bien, pero con dos no me carga los datos.

Lo otro que quisiera saber es como hacer que se agrupen por NumerodeItem, osea Primera tabla con Tabla1.Numero A y luego todo el contenido de la segunda tabla con Tabla2.Numero A abajo de Tabla1. El equipo y debajo sus componentes, eso. Si me pudieran dar una ayuda en esto que he buscado por mucha paginas y no sale nada igual.
Gracias de antemano.