我的WPF应用程序中的WindowsFormsHost标记中有一个ReportViewer控件。当我使用这段代码时:
rptViewer1.LocalReport.ReportPath = ...
List<ReportParameter> parms = new List<ReportParameter>();
parms.Add(new ReportParameter("regionID", "01"));
rptViewer1.LocalReport.SetParameters(parms);
rptViewer1.RefreshReport();
我收到有关未提供数据源实例的错误。我可以手动运行存储过程,然后使用它来填充数据源对象,如...
var dt = DAL.GetData()
var rds = new ReportDataSource("DataSet1", dt);
rptViewer1.LocalReport.DataSources.Add(rds);
这将导致报告显示,但是我将参数传递给GetData()方法而不是报告;这似乎不对。在我的SSRS项目中,我使用的是共享数据源,它允许我按照我的预期传递报表前端的参数。我做错了什么?
答案 0 :(得分:1)
如果您正在使用ProcessingMode = Local,那么您负责报告的大部分内容。您或您的应用程序定义了哪些参数,数据如何加载,以及什么子报告或钻取事件。您必须明确地编码这些。如果ProcessingMode = Remote,则所有这些元素都由报告服务器处理。微软并没有在MSDN中明确说明这一点,但我可以看到他们的理由是“如果你要在你的应用程序中托管报告,那么你可以对所有细节负责”。