SSRS - 为什么预览中的报告下拉数据与报表查看器中的数据不同?

时间:2013-06-12 04:49:50

标签: visual-studio-2008 reporting-services sql-server-2008-r2 report

我自己已经在考虑这个问题了,但是如果你想为我和社区提供一些有关要检查的事情的有用建议,或者指出SSRS的相关部分如何工作以帮助回答问题,继续阅读......

  • 我正在通过SQL Server 2008 R2报表服务器使用SSRS
  • 当我在VS2008中预览我的报告(最初由其他开发人员创建)时,我在其中一个下拉列表中看到了正确的数据:

enter image description here

  • 当我通过我的计算机上的报告查看器在http:// localhost / ReportServer_SQL2008上运行报告时,我看到了这一点 - 请注意在下拉列表中显示的错误UID代替了一些最近添加的项目(例如'GRIT CARDIO'):

enter image description here

  • 我在VS2008中重新构建了报告,并且我使用报告管理器手动将.rdl文件重新上传到我的报告服务器:http:// local-machine-name / Reports_SQL2008 /,但在使用IE报告查看器时,我仍然可以获得不同的数据。

  • 我查看了数据的来源,用于填充程序下拉列表,使用查询分析器 - 当查看报表预览和通过报表查看器查看报表时,数据来自相同的数据库,使用完全相同的存储过程调用

  • 从SQL中提取的“原始”数据在报告中的相关数据字段中使用之前会得到一些处理 - 它通过使用自定义.NET程序集进行处理,以回退基于“友好”的字符串在报告用户的区域设置上。这使用VS2012项目中保存的.resx文件进行自定义程序集转换数据。 .resx中的条目似乎都是正确的。

  • 我已手动将自定义程序集的调试版本部署到C:\ Program Files \ Microsoft Visual Studio 9.0 \ Common7 \ IDE \ PublicAssemblies(我自己的自定义程序集的默认位置)< / p>

  • 当我通过将VS2008附加到调试过程并在VS2008中运行报告预览来调试VS2012中的此程序集时,正确的程序名称,例如'GRIT CARDIO'被退回

所以问题是'当我在IE报告查看器中运行报告时,为什么不返回?

为了帮助澄清问题,以下是为“ProgramUid”参数配置“可用值”的方法。我很困惑为什么参数是'ProgramUid',但下拉列表在报告中显示为'Program':

enter image description here

以下是参数使用的“程序”数据集:

enter image description here

1 个答案:

答案 0 :(得分:3)

固定。事实证明,将自定义.dll部署到:

C:\ Program Files(x86)\ Microsoft Visual Studio 9.0 \ Common7 \ IDE \ PrivateAssemblies

允许VS2008报告预览使用自定义扩展。要允许SSRS使用自定义扩展,需要在此部署:

C:\ Program Files \ Microsoft SQL Server \ MSRS10_50.MSSQLSERVER \ ReportingServices \ ReportServer \ bin

并且.resx文件确实被编译为.dll,它们不需要单独部署