我有一个网页表单页面,其中包含用于SSRS报告的ReportViewer。除了在SSRS中的RDL文件中内置的三个参数之外,我还需要从Web表单(User.Identity.Name和报表的描述)传递两个值。如何将所有五个值发送到RDL文件使用的存储过程?
我在Page_Load中使用
在C#代码中收集用户名和报告名称(var username = User.Identity.Name;)
(var report = "Customer Service - Get Ship Date";)
我有报告查看器,它使用RDL文件,用户将从下拉列表中选择三个参数。
<rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" Font-Size="8pt" ProcessingMode="Remote" WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt" Height="100%" Width="100%" SizeToReportContent="True" PageCountMode="Actual" AsyncRendering="False">
<ServerReport ReportPath="/Express/Customer Service/CSGetShipDate" ReportServerUrl="http://MMSMV-SQL1:81/ReportServer_SQL2008" />
</rsweb:ReportViewer>
我只是不确定如何组合要发送到报表服务器的参数来执行RDL文件。
非常感谢任何帮助。
答案 0 :(得分:1)
请执行以下操作,将参数传递给SSRS存储过程。
List<ReportParameter> reportParams = new List<ReportParameter>();
reportParams.Add(new ReportParameter("SPVariable1", User.Identity.Name));
reportParams.Add(new ReportParameter("SPVariable2", Report.Description));
ReportViewer1.ServerReport.SetParameters(reportParams);
确保您使用了正确的变量名称。因为它们区分大小写。