1

我自己已经在研究这个问题了,但是如果你想为我和社区提供一些有用的建议来检查要检查的东西,或者关于 SSRS 相关部分如何工作的指针可以帮助回答这个问题,然后继续阅读......

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

在此处输入图像描述

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

在此处输入图像描述

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

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

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

  • 我已经手动部署了自定义程序集的调试版本,该程序集将此语言环境转换为 C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PublicAssemblies(我自己的自定义程序集的默认位置)

  • 当我在 VS2012 中通过将 VS2008 附加到调试过程并在 VS2008 中运行报告预览来针对此程序集进行调试时,会返回正确的程序名称,例如“GRIT CARDIO”

所以问题是'为什么当我在 IE 报表查看器中运行报表时没有返回这个'?

为了帮助澄清问题,这里是如何为我的“ProgramUid”参数配置“可用值”。我对为什么参数是“ProgramUid”感到困惑,但下拉列表在报告中显示为“Program”:

在此处输入图像描述

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

在此处输入图像描述

4

1 回答 1

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,它们不需要单独部署

于 2013-06-13T05:41:01.617 回答