【发布时间】:2017-02-22 23:06:46
【问题描述】:
我正在使用 Wpf 使用 Report Viewer 查看一些报告。我使用 sql 报告生成器“ReportByTopic.rdl”设计了一个报告,将其添加到了解决方案中。rdl 文件中的 DataSet 名为“Dataset1”并在那里是三个参数@TopicId,@SDate,@EDate 测试了查询,它工作正常
我正在尝试将过滤后的数据加载到 ReportViewer 中,但没有查看任何数据
这是代码
private void reportViewer_load()
{
ReportParameter[] Params = new ReportParameters[3];
Params[0] = new ReportParameter("TopicId", "4");
Params[1] = new ReportParameter("SDate", "2009-01-01");
Params[2] = new ReportParameter("EDate", "2017-01-01");
ReportDataSource rds = new ReportDataSource();
rds.Name = "DataSet1";
reportViewer.LocalReport.ReportPath = "Reports\ReportByTopic.rdl";
reportViewer.LocalReport.DataSource.Add(rds)
reportViewer.LocalReport.SetParameters(Params);
reportViewer.Refresh();
}
我哪里做错了
更新
根据答案,我对上述代码进行了一些更改。首先,我使用了一种方法“GetData”,它使用与设计 rdl 文件相同的查询返回我需要的所有数据的数据表。 修改后的代码
private void reportViewer_load()
{
ReportParameter[] Params = new ReportParameters[3];
Params[0] = new ReportParameter("TopicId", "4");
Params[1] = new ReportParameter("SDate", "2009-01-01");
Params[2] = new ReportParameter("EDate", "2017-01-01");
ReportDataSource rds = new ReportDataSource("DataSet1", GetData());
reportViewer.LocalReport.ReportPath = "Reports\ReportByTopic.rdl";
reportViewer.LocalReport.DataSource.Add(rds)
reportViewer.LocalReport.SetParameters(Params);
reportViewer.Refresh();
}
数据表被正确填充了 900 行,但 reportViewer 仍然没有
【问题讨论】:
-
根据您更新的代码查看答案的更新。
标签: c# wpf reportviewer reportbuilder3.0