2016-05-16 139 views
0

我有一個Web表單頁面,其中包含一個SSRS報表ReportViewer。除了SSRS中RDL文件中內置的三個參數之外,我需要從Web表單(User.Identity.Name和報表描述)傳遞兩個值。如何將所有五個值發送到RDL文件使用的存儲過程?如何將參數值從Asp.net傳遞到SSRS存儲過程?

我收集的用戶名,並通過使用

(var username = User.Identity.Name;) 
(var report = "Customer Service - Get Ship Date";) 

我的報表查看器,它使用一個RDL文件,其中用戶從下拉菜單中選擇三個參數下的Page_Load中報背後的C#代碼名稱名單。

<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文件。

任何幫助將不勝感激。

回答

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); 

確保您使用了正確的變量名稱。因爲它們區分大小寫。

+0

我嘗試添加這些內容,但它並沒有通過報告運行時的值。我得到的消息是報告沒有用戶名的值。 – eric90125

+0

好的,你可以請你分享你的嘗試。所以我可以得到更好的主意。是的,當我們將參數傳遞給SSRS報告時,應該隱藏參數。 – pedram

+0

我發現問題所在。你的代碼是完美的,但我忽略了一小部分。我的錯。非常感謝! – eric90125

相關問題