2

我花了很多时间在互联网上搜索,但此时有点绝望。

我们有一个报告有两个 DataSet 字段定义为

Date_Difference = Round((DateDiff("d", Fields!StartDate.Value, Fields!EndDate.Value))* Fields!ProjectStatusPct.Value)

status_date = CDate(DateAdd("d", Fields!Date_Difference.Value, Fields!StartDate.Value))

SSRS 和 BIDS 都安装在同一台服务器(VM、Windows Server 2008 R2)上。Region,Language,Format,机器上我能想到的一切都配置为en_US。

报告属性中的语言是 en-US,我在报告代码中定义了这个 en-US 以确保。

<Language>en-US</Language>

同样在reportViewer.aspx中,我改变了

<%@ Page Language="C#" AutoEventWireup="true" Inherits="Microsoft.ReportingServices.WebServer.ReportViewerPage"%>

<%@ Page Language="C#" AutoEventWireup="true" Inherits="Microsoft.ReportingServices.WebServer.ReportViewerPage" Culture="en-US"%>

正如一些帖子所建议的那样。

数据源服务器(MSSQL 2008,在同一台机器上)语言也是 en-US。

该报告在 BIDS 设计器中看起来不错。但是,当我将它部署到服务器时,日期格式会变得混乱。报告服务器将 MM/dd/yyyy(美国格式)作为 dd/MM/yyyy(加拿大格式)。结果,status_date 字段总是生成错误的日期,如果涉及到像 03/31/2012 这样的日期,则为 NULL

当我查看 SSRS 日志文件时,标题始终显示为

   <Header><Product>Microsoft SQL Server Reporting Services Version 2007.0100.5500.00 ((Katmai_PCU_Main).110922-0336 )</Product><Locale>English (Canada)</Locale><TimeZone>Pacific Daylight Time</TimeZone><Path>C:\Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER\Reporting Services\Logfiles\ReportServerService__06_07_2012_16_30_41.log</Path><SystemName>KAM1ODDBS06</SystemName><OSName>Microsoft Windows NT 6.1.7601 Service Pack 1</OSName><OSVersion>6.1.7601</OSVersion><ProcessID>1160</ProcessID></Header>rshost!rshost!ec0!06/07/2012-16:30:41:: i INFO: CLR runtime is initialized.

所以我认为 BIDS 采用本地机器的语言设置,然后正确处理日期。

更多信息 :

  • 浏览器(IE) 的语言是 en_US
  • 当我将报告部署到具有 en_US 语言环境的其他报告服务器时,它可以工作。

我的问题是,如何将此报告服务器的区域设置也更改为 en_US?

4

1 回答 1

0

我认为设置服务器语言可能会解决它。分配区域设置有两个级别,一个是报告级别,另一个是文本框或字段级别(如果可能)。检查你的领域有什么。以防万一您可能也对此感兴趣http://technet.microsoft.com/en-us/library/ms155064(v=sql.100).aspx它谈到了您所描述的案例。

于 2012-06-09T10:00:18.113 回答