使用此代码,我想在查询后打印它在显示3列的DataGridView1上显示的内容。我不想使用Dataset Xsd及其DataTable。我在项目中添加了Crystalreport1的空白页面。
使用此代码,当我单击Button1时,恰好在以下行中出现此错误“ The report has no tables.
”:rp.SetDataSource(DS.Tables(0))
。
我问了这个问题,但没有找到最好的结果: Create DataColumns and Dataset witout database by code 这就是我的全部代码:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim FACTORY As New DataTable
FACTORY.TableName = "FACTORY"
Dim col1 As New DataColumn("FirstName", GetType(String))
Dim col2 As New DataColumn("LastName", GetType(String))
Dim col3 As New DataColumn("Phone", GetType(String))
FACTORY.Columns.Add(col1)
FACTORY.Columns.Add(col2)
FACTORY.Columns.Add(col3)
Dim DS As New DataSet
DS.Tables.Add(FACTORY)
For Each dr As DataGridViewRow In DataGridView1.Rows
DS.Tables(0).Rows.Add(dr.Cells(0).Value, dr.Cells(1).Value, dr.Cells(2).Value)
Next
'Dim rp1 As New CrystalReport1
'rp1.SetDataSource(DS.Tables(0))
'rp.SetDataSource(DataGridView1.DataSource)
'Form1.CrystalReportViewer1.ReportSource = rp
'Form1.ShowDialog()
Dim Rp As New ReportDocument
Rp.Load("E:\SABRINE\CrystalReport1.rpt")
Form1.CrystalReportViewer1.ReportSource = Rp
Form1.CrystalReportViewer1.Refresh()
Form1.ShowDialog()
End Sub
答案 0 :(得分:0)
在将crysta报表查看器添加到您的应用程序后,您必须添加一个新的水晶报表格式,然后在其中添加数据源。 用数据源创建报告后。您可以将此新的晶体重新添加到rp对象rp.Load(“ crystalrport path \ yourcrystal.rpt”) 广告,然后添加您的数据源。 在http://vb.net-informations.com/crystal-report/vb.net_crystal_report_step_by_step.htm
中描述