我在SSRS的ReportViewer组件中遇到了令人震惊的问题。我正在使用WinForms应用程序,并且有几个本地报告,这些报告显示了数据库中各个位置的DateTime值。不管格式化是如何进行的(完全不格式化,在Format属性中使用“d”,或将FormatDateTime与任何DateFormat枚举值一起使用),它始终似乎会以带有美国文化的格式格式化DateTime,而不是使用系统日期和数字格式文化。

我已验证CurrentCulture是否符合预期。报告语言设置为“默认”。 .rdlc文件中甚至没有Language标记。如果我更改报告语言,则无论系统文化如何,它似乎都可以反射(reflect)该文化的格式。

是否可以使用当前的系统区域性来呈现报告,或者根据区域性以编程方式修改报告的语言?

最佳答案

事实证明,“默认”作为一种语言设置没有多大作用。为了获取用户当前的区域性,必须将语言指定为表达式“= User.Language”(这也需要在所有子报表上设置,因为该值不会传播或继承)。

归功于Chris May的blog article on the subject

关于winforms - SSRS ReportViewer中的DateTime格式始终使用en-US吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2608947/

10-17 02:22