如何在SSRS 2012中的客户端本地时区显示报表执行时间

时间:2015-01-30 03:56:58

标签: reporting-services ssrs-2012

我在SSRS2008R2中有报告,该报告使用此代码在运行报告的客户端的本地时区返回报告执行时间:

=System.TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime.UtcNow,TimeZoneInfo.Utc.Id,First(Fields!TenantTimeZoneName.Value, "Company"))

为了在SSRS2008R2中运行,我在下面添加了参考组件:

System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

这些报告直到现在都运行良好。我正在构建一个新的SSRS2012服务器,当我尝试将报告部署到新服务器时,我在部署期间收到以下错误:

The definition of the report '/MyReport' is invalid.

假设这只是意味着我必须将引用程序集切换为指向更高版本的System.Core,我将程序集更改为指向System.Core 4.0而不是System.Core 3.5。当我这样做时,我收到了这个错误:

Error while loading code module: ‘System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089’. Details: Could not load file or assembly 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The system cannot find the file specified.

我检查了文件位置,System.Core程序集显示了路径指示的位置。我还检查了GAC,并且组装在那里。

我真的需要尽快让这个工作,但我陷入了僵局。有任何想法吗?

1 个答案:

答案 0 :(得分:0)

这是旧的,但对于任何寻找的人。最好删除对System.Core的引用,并通过系统调用相同的函数。

以下示例将转换日期时间为" UTC"到" EST"。

=System.TimeZoneInfo.ConvertTimeBySystemTimeZoneId(Fields!YOURDATETIMEHERE.Value, "Dateline Standard Time", "Eastern Standard Time")