nguyen_lanthao
23-06-2003, 15:31
Crystal report có hỗ trợ việc kết nối với source bằng dataset. Mình có lập một dataset chứa một datatable được tạo bằng tay như sau
Private Sub FillDataset(ByVal mydataset As DataSet)
Dim myconn As SqlConnection
Dim Customers(,) As String = {{"123", "Jonh"}, {"456", "Rachel"}}
Dim myDatatable As DataTable = New DataTable("DataTable")
Dim myDataRow As DataRow
Dim myDataColumn As DataColumn
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "CustomerID"
myDatatable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "LastName"
myDatatable.Columns.Add(myDataColumn)
mydataset.Tables.Add(myDatatable)
Dim i As Integer
For i = 0 To 1
myDataRow = myDatatable.NewRow()
myDataRow(0) = Customers(i, 0)
myDataRow(1) = Customers(i, 1)
myDatatable.Rows.Add(myDataRow)
Next
End Sub
Theo nguyên tắc thì khi gắn dataset này làm source của report như:
Dim myreport As New myRptDataset()
myreport.SetDataSource(mydataset)
Me.CrystalReportViewer1.ReportSource = myreport
thì report phải hiển thị mydatatable ra, nhưng mà khi chạy thì lại là một blankreport. Những tên field trong mydatatable do mình tự đặt và không có trong bất kỳ một datatable nào nên khi chọn dạng report mình chọn là blank. Vậy xin hỏi là tại sao? và làm sao cho nó hiện mytable này ra??
Cám ơn
Private Sub FillDataset(ByVal mydataset As DataSet)
Dim myconn As SqlConnection
Dim Customers(,) As String = {{"123", "Jonh"}, {"456", "Rachel"}}
Dim myDatatable As DataTable = New DataTable("DataTable")
Dim myDataRow As DataRow
Dim myDataColumn As DataColumn
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "CustomerID"
myDatatable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "LastName"
myDatatable.Columns.Add(myDataColumn)
mydataset.Tables.Add(myDatatable)
Dim i As Integer
For i = 0 To 1
myDataRow = myDatatable.NewRow()
myDataRow(0) = Customers(i, 0)
myDataRow(1) = Customers(i, 1)
myDatatable.Rows.Add(myDataRow)
Next
End Sub
Theo nguyên tắc thì khi gắn dataset này làm source của report như:
Dim myreport As New myRptDataset()
myreport.SetDataSource(mydataset)
Me.CrystalReportViewer1.ReportSource = myreport
thì report phải hiển thị mydatatable ra, nhưng mà khi chạy thì lại là một blankreport. Những tên field trong mydatatable do mình tự đặt và không có trong bất kỳ một datatable nào nên khi chọn dạng report mình chọn là blank. Vậy xin hỏi là tại sao? và làm sao cho nó hiện mytable này ra??
Cám ơn