我自己已经在考虑这个问题了,但是如果你想为我和社区提供一些有关要检查的事情的有用建议,或者指出SSRS的相关部分如何工作以帮助回答问题,继续阅读......
我在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':
以下是参数使用的“程序”数据集:
答案 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,它们不需要单独部署