我在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/