Есть код формирования отчета:
Public connect As New SqlConnection
strSQL = "Select * from Nametable"
Dim MyDataAdapter As _
New SqlDataAdapter(strSQL, connect)
Dim MyDataSet As New DataSet("temp")
Dim MyTable As DataTable
connect.Open()
Try
MyDataAdapter.Fill(MyDataSet, "temp")
Catch ex As Exception
MsgBox(ex.Message)
connect.Close()
End Try
connect.Close()
MyTable = MyDataSet.Tables("temp")
Dim SetTable As New SetData.NameTable
dim i as int32
for i=0 to MyTable.Rows.Count-1
dim row as datarow = MyTable.Rows(i)
Dim NewRowSet As DataRow = SetTable.NewRow
NewRowSet(Pole1) = row(Pole11)
………
NewRowSet(PoleN) = row(PoleNN)
SetTable.Rows.Add(NewRowSet)
Next
Dim doc As New ReportDocument
doc.Load(Application.StartupPath + "\" + ReporName)
doc.SetDataSource(SetTable )
CrystalReportViewer.ReportSource = doc
Me.CrystalReportViewer.Refresh()
Все отлично работает формируется отчет. Но есть необходимость когда в ДатаСете заполняешь две таблицы:
Public connect As New SqlConnection
strSQL = “Select * from Nametable”
Dim MyDataAdapter As _
New SqlDataAdapter(strSQL, connect)
Dim MyDataSet As New DataSet("temp")
Dim MyTable As DataTable
connect.Open()
Try
MyDataAdapter.Fill(MyDataSet, "temp")
Catch ex As Exception
MsgBox(ex.Message)
connect.Close()
End Try
connect.Close()
MyTable = MyDataSet.Tables("temp")
Dim SetTable As New SetData.NameTable
Dim SetTable2 As New SetData.NameTable2
dim i as int32
for i=0 to MyTable.Rows.Count-1
dim row as datarow = MyTable.Rows(i)
Dim NewRowSet As DataRow = SetTable.NewRow
NewRowSet(Pole1) = row(Pole11)
………
NewRowSet(Pole5) = row(Pole55)
SetTable.Rows.Add(NewRowSet)
Next
for i=0 to MyTable.Rows.Count-1
dim row as datarow = MyTable.Rows(i)
Dim NewRowSet As DataRow = SetTable2.NewRow
NewRowSet(Pole6) = row(Pole66)
………
NewRowSet(Pole10) = row(Pole88)
SetTable2.Rows.Add(NewRowSet)
Next
Dim doc As New ReportDocument
doc.Load(Application.StartupPath + "\" + ReporName)
doc.SetDataSource(SetTable )
CrystalReportViewer.ReportSource = doc
Me.CrystalReportViewer.Refresh()
Соответсвенно макет отчета меняю. Отчет формируется на основе данных из двух таблиц. NameTable и NameTable2 имеют всязь один ко многим,
При просмотре отчета вылетает окно "DateBase Logon" где необходимо ввести Сервер, Базу, имя и пароль для подключения к таблицам NameTable и NameTable2. Подскажите как формировать отчет используя несколько таблиц в ДатаСете....
Ответить
|