winforms 将DataTable传递给ReportViewer

gcuhipw9  于 2023-11-21  发布在  其他
关注(0)|答案(1)|浏览(242)

我试图将一个数据表传递给一个reportviewer,我通过代码填充,有没有办法做到这一点?我尝试了这个,但没有发生:

  1. Dim bs As BindingSource
  2. bs = New BindingSource()
  3. bs.DataSource = DataTablefillbycode
  4. Dim rs As ReportDataSource
  5. rs = New ReportDataSource()
  6. rs.Name = "Tabletest"
  7. rs.Value = bs
  8. form2.ReportViewer1.RefreshReport()
  9. form2.ReportViewer1.Reset()
  10. form2.ReportViewer1.LocalReport.ReportEmbeddedResource = "Test.Report1.rdlc"
  11. form2.ReportViewer1.LocalReport.DataSources.Clear()
  12. form2.ReportViewer1.LocalReport.DataSources.Add(rs)
  13. form2.ReportViewer1.RefreshReport()
  14. form2.ShowDialog()

字符串
PS:GridView可以很好地处理表“Tablefillbycode”


的数据

ifmq2ha2

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的数据传递给它。
不要忘记在Form1Imports Microsoft.Reporting.WinForms

产品代码:

  1. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  2. Dim cn = "data source=(localdb)\v11.0;initial catalog=TestDB;integrated security=True;"
  3. Dim cmd = "SELECT Id,Name FROM Category"
  4. Dim adapter = New SqlDataAdapter(cmd, cn)
  5. Dim table = New DataTable()
  6. adapter.Fill(table)
  7. Me.DataGridView1.DataSource = table
  8. End Sub
  9. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  10. Dim form2 = New Form2()
  11. Dim rds= New ReportDataSource("DataSet1", Me.DataGridView1.DataSource)
  12. form2.ReportViewer1.LocalReport.DataSources.Clear()
  13. form2.ReportViewer1.LocalReport.DataSources.Add(rds)
  14. form2.ReportViewer1.LocalReport.ReportEmbeddedResource = "Test.Report1.rdlc"
  15. form2.ShowDialog()
  16. End Sub

字符串

截图:


的数据

运行时从DataGridView创建RDLC报告有什么想法吗?

你可能会对下面的帖子感兴趣,它解释了如何在运行时动态地将任何DataGridView转换为RDLC报告以用于打印等目的。这篇帖子在GitHub repo中提供了完整的代码和下载链接:

展开查看全部

相关问题