我有一個SSRS 2005
報告與兩個參數。 CountID參數是一個查詢值(From query
)。我使用以下方法從ASP.Net 2.0調用此報告,它工作正常。參數缺失值SSRS
window.location.href= strRepServer + strReport + "&rc:Parameters=false&rs:ClearSession=true&plantcd=" + strPlantCD + "&CountID=" + strCountID;
請注意,我們僅傳遞參數CountID的ASPX頁面中的一個字符串值。它仍然可以正常工作。
現在,我修改了代碼,使用reportviewercontrol使用下面的代碼。但是,當報告呈現時,它會顯示「CountID'參數缺少值」。我提到了以下兩篇文章 - 但它沒有幫助。任何想法如何使其工作?
- Pass Multi value parameter to SSRS from UI
- Passing a Multi-value parameter to the ReportViewer control
注:我明白,如果我做CountID爲non-queried
或使得它作爲文本框將解決此問題。但我需要使代碼工作而不更改rdl
文件。 [原因是該RDL正常工作與以前的方法(調用報告沒有的ReportViewer)
CODE
rvInvalidPackageSKUs.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote
rvInvalidPackageSKUs.ServerReport.ReportServerUrl = New Uri("http://myserver/ReportServer/")
rvInvalidPackageSKUs.ServerReport.ReportPath = "/MyFolder/SubFolder/MyReport"
Dim rpPlant As New ReportParameter
rpPlant.Name = "plantcd"
rpPlant.Values.Add("23")
'Dim rpCountID As New ReportParameter
'rpCountID.Name = "CountID"
'rpCountID.Values.Add("1")
Dim rpCountID As ReportParameter
rpCountID = New ReportParameter("CountID")
Dim valuesArray As String() = New String() {"x", "y", "z"}
rpCountID.Values.AddRange(valuesArray)
Dim paramList As New Generic.List(Of ReportParameter)
paramList.Add(rpPlant)
paramList.Add(rpCountID)
rvInvalidPackageSKUs.ServerReport.SetParameters(paramList)
rvInvalidPackageSKUs.ServerReport.Refresh()
參數在RDL
請問爲什麼當我使用url方法(不使用reportviewer)時它工作正常? – Lijo 2015-02-09 14:54:25
您能否告訴我您評論的區塊是否有效? (將單個值設置爲「rpCountID」參數而不是多個)。此外,請嘗試對每個值使用「rpCountID.Values.Add」,而不是一次使用「rpCountID.Values.AddRange」。它工作嗎? 順便說一句,我仍然會確保** all **您應用於參數的值確實存在於數據集中。從我的經驗來看,單一的價值混淆了整個事物是很常見的。 – 2015-02-09 16:20:42
既然你提到過,當使用url方法時,你只傳遞一個單一的值,我的猜測是這個參數不接受這個值,因爲你分配它們的方法,或者是因爲有一個單獨的值是無效的。 – 2015-02-09 16:42:09