我试图将一个数据表传递给一个reportviewer,我通过代码填充,有没有办法做到这一点?我尝试了这个,但没有发生:
Dim bs As BindingSource
bs = New BindingSource()
bs.DataSource = DataTablefillbycode
Dim rs As ReportDataSource
rs = New ReportDataSource()
rs.Name = "Tabletest"
rs.Value = bs
form2.ReportViewer1.RefreshReport()
form2.ReportViewer1.Reset()
form2.ReportViewer1.LocalReport.ReportEmbeddedResource = "Test.Report1.rdlc"
form2.ReportViewer1.LocalReport.DataSources.Clear()
form2.ReportViewer1.LocalReport.DataSources.Add(rs)
form2.ReportViewer1.RefreshReport()
form2.ShowDialog()
字符串
PS:GridView可以很好地处理表“Tablefillbycode”
的数据
1条答案
按热度按时间ifmq2ha21#
按照以下步骤将数据表传递到您的报表:
1.我假设你在你的项目
Test
的根目录下创建了一个Report1.rdlc
,所以它的嵌入资源的名字应该是Test.Report1.rdlc
。我还假设你的Report1
中的DataSet
的名字是DataSet1
。1.在
Form2
上放置一个报表查看器,并将其Dock
属性设置为Fill
,将其Modifier
属性设置为Public
。1.在
Form1
中,我假设你有一个DataGridView1
,你想把它填充到Form_Load
中,你将使用与创建报告相同的查询。1.在
Form1
中,我假设你有一个Button1
,当你点击Button1
时,你想显示Form2
,你想把DataGridView1
的数据传递给它。不要忘记在
Form1
中Imports Microsoft.Reporting.WinForms
产品代码:
字符串
截图:
的数据
运行时从DataGridView创建RDLC报告有什么想法吗?
你可能会对下面的帖子感兴趣,它解释了如何在运行时动态地将任何DataGridView转换为RDLC报告以用于打印等目的。这篇帖子在GitHub repo中提供了完整的代码和下载链接: