繁体   English   中英

比较Report Builder和Report Viewer时SSRS参数的奇怪行为

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM