2011-07-07 31 views
2

我的WPF应用程序中的WindowsFormsHost标签中有一个ReportViewer控件。当我使用此代码时:WPF中的报表查看器控件的数据源

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项目中,我使用了一个共享数据源,它允许我像预期的那样传递报表前端的参数。我究竟做错了什么?

回答

1

如果您正在使用ProcessingMode = Local,那么您将负责大部分的报告。您或您的应用程序定义了哪些参数,如何加载数据,&什么是子报表或钻取事件。你必须明确地编码这些。如果ProcessingMode = Remote,那么所有这些元素都由报告服务器处理。微软并没有在MSDN中清楚地说明这一点,但我可以看到他们的理由是“如果你要在你的应用中托管报告,那么你可以对所有细节负责”。

相关问题