0

我试图让 ReportViewer 显示来自 BindingSource (VB.Net Winforms) 的数据。

我在基础数据集上构建了报告。然后我将数据源实例配置为 BindingSource。我认为这将应用排序、过滤等。但看起来数据来自数据集而不是 BindingSource。

我怀疑我错过了一些简单的东西。

更新:或者也许它不是那么简单 - 我几天前发布了这个,但仍然没有人知道答案!也许我正在尝试做一些无法完成的事情?

4

2 回答 2

0

您需要在报告中指定排序(在 RDL 中),因为它应用了自己的排序逻辑。

于 2009-01-12T14:19:29.227 回答
0

这是我使用的解决方案。您将 Bi​​ndingSource 中的数据放入 DataTable 中,然后让 Report 使用 DataTable。

    ReportViewer1.Reset()
    Dim dt As DataTable
    dt = DirectCast(Form1.ProgActnBindingSource.Current, DataRowView).DataView.ToTable

    Dim rs = New ReportDataSource
    rs.Name = "name"
    rs.Value = dt

    ReportViewer1.ProcessingMode = ProcessingMode.Local
    ReportViewer1.LocalReport.DataSources.Clear()
    ReportViewer1.LocalReport.DataSources.Add(rs)
    ReportViewer1.LocalReport.ReportEmbeddedResource = "projectname.Report1.rdlc"

    Me.ReportViewer1.RefreshReport()
于 2009-01-16T17:09:06.867 回答