我认为我有一个基本的误解,关于SQL Server Reporting Services报告,我试图在WinForms应用程序中本地运行(最终它将在WPF应用程序中,但是稍后) 。我不会写很多报告,每当我过去,我都使用了Crystal Reports。但我们正试图摆脱Crystal。
无论如何,我正在使用的报告使用SQL Server中的存储过程。该SP需要2个参数。我还想将一些参数传递给报告本身,比如标题等等。自从我用Crystal完成此操作已经很长时间了,但在我看来,我所做的是将参数配置为Crystal报表,接受SP和报告的参数,然后在Crystal设计器中分配哪个参数去哪里。所以,我尝试用我的新.RDLC报告做同样的事情,但那不起作用。当报表显示在表单上的ReportViewer控件中时,它会显示:
“'ClientNumber'参数缺少值。”
ClientNumber是SP的参数之一。并且该表适配器似乎是在Fill方法中提供它。所以,我错了它是如何工作的。那么,如何为报告的参数赋值?
答案 0 :(得分:1)
private void PrintBankReport(ReportDataSource rds)
{
rds.Name = Constants.Accounting.ClientReportDataSourceName.BankReportDS1;
rds.Value = ((BankReportDataSet)Session[Faraconesh.Portal.Common.Constants.Accounting.Session.BankReport]).ReportDetail;
ReportViewerControl.LocalReport.DataSources.Add(rds);
ReportDataSource rds2 = new ReportDataSource();
rds2.Name = Constants.Accounting.ClientReportDataSourceName.BankReportDS2;
rds2.Value = ((BankReportDataSet)Session[Faraconesh.Portal.Common.Constants.Accounting.Session.BankReport]).ReportItem;
ReportViewerControl.LocalReport.DataSources.Add(rds2);
}
但是在rdl报告(服务器报告)中,您可以将sp作为数据源传递给报告,报告可以自动指定参数。