使用BindingSource在ReportViewer中对报表数据进行排序

时间:2009-01-08 15:51:54

标签: vb.net ado.net reportviewer bindingsource

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

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

我怀疑我错过了一些简单的事情。

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

这是我用过的解决方案。您将BindingSource中的数据放入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()