SQL SERVER 2008 R2 SQL SERVER报告服务Report Builder 3.0 Visual Studio 2010 ASP.NET / C#
我在Report Builder中设计.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>
当我从报表生成器或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
答案 0 :(得分:1)
我设置了ScriptMode =&#34; Release&#34;在母版页的ScriptManager中。我不确定为什么它已停止工作(也不知道为什么旧的版本仍在工作!)但这至少是其中一个答案(另一个有效的是在ReportViewer控件上设置AsyncRendering = False)。