[英]Strange behaviour of SSRS parameters when comparing Report Builder and Report Viewer
SQL Server 2008 R2 SQL Server報告服務Report Builder 3.0 Visual Studio 2010 ASP.NET/C#
我在報表生成器中設計.rdl報表,並將其部署在SharePoint網站上。 大部分數據是通過存儲過程從SQL Server檢索的,其中大多數帶有參數。 參數顯示在報告的頂部。
大多數用戶使用ReportViewer控件在ASP.NET應用程序中使用報告。
<rsweb:ReportViewer ID="rvResults" runat="server"
ProcessingMode="Remote"
BackColor="#F5F6F7" ShowZoomControl="true"
ShowPrintButton="true" SizeToReportContent="true" ZoomMode="FullPage"
ShowDocumentMapButton="true" ShowFindControls="true" ShowPageNavigationControls="true"
ShowPromptAreaButton="False" InternalBorderColor="#ACBBD8">
</rsweb:ReportViewer>
當我從Report Builder或SharePoint運行報表時,一切都會按預期進行。 參數顯示在報告的頂部(或側面),用戶可以輸入值(這些值主要來自使用存儲過程或嵌入式SQL填充的數據集的下拉列表)。 一些下拉列表是級聯的-即列表2中的值取決於列表1中選擇的值。
當我從ASP.NET應用程序中運行報表時,有兩個問題。 首先,我收到一個腳本錯誤:
行:157錯誤:Sys.ArgumentNullException:值不能為null。 參數名稱:panelsCreated 1
我已將報表中的某些參數設置為NULLABLE,並采用默認值NULL,因為報表的正確操作需要它。
其次,從下拉列表中選擇一個值將禁用所有參數值,並使報告不可用。 下面的兩個圖像顯示了這一點。
來自報告構建器的報告參數(正常工作)
來自ASP.NET應用程序的報告參數(無法正常工作)
細心的讀者可能會注意到,“輔助狀態ID”控件中顯示的值在兩個方面都不同。 在第一個正確版本中顯示,而在第二個版本中顯示。 用於填充控件的SQL如下:
SELECT Null AS ID, '<All>' AS Name
UNION
Select Distinct ID, Name
from lutRequestStatusSecondary
Where FKRequestTypeID=1
AND Deleted=0
AND FKStatusID=@StatusID
Order by Name
我在母版頁的ScriptManager中設置ScriptMode =“ Release”。 我不確定為什么它停止了工作(也不知道為什么舊版本仍在工作!),但這至少是答案之一(另一個可行的方法是在ReportViewer控件上設置AsyncRendering = False)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.