2010-04-09 60 views
6

Tengo un problema que deja de mostrarse con el componente ReportViewer que es parte de SSRS. Estoy trabajando en una aplicación WinForms y tengo un par de informes locales que muestran los valores DateTime de la base de datos en varias ubicaciones. Independientemente de cómo se realiza el formateo (sin formatear, usando "d" en la propiedad Format, o usando FormatDateTime con cualquiera de los valores de enumeración de DateFormat), siempre parece formatear el DateTime con la cultura en-US en lugar del formato fecha de formato del sistema y cultura de formato numérico.Formateo de fecha y hora en SSRS ReportViewer siempre usa en-US?

He validado que CurrentCulture es como se esperaba. El idioma del informe está configurado en "Predeterminado". La etiqueta Language ni siquiera está presente en el archivo .rdlc. Si cambio el idioma del informe, parece reflejar el formato de esa cultura, independientemente de la cultura del sistema.

¿Hay alguna manera de representar el informe con la cultura del sistema actual o modificar programáticamente el idioma del informe según la cultura?

Respuesta

6

Resulta que "Predeterminado" como configuración de Idioma no hace mucho. Para seleccionar la cultura actual del usuario, Language debe especificarse como la expresión "= User.Language" (esto también debe establecerse en todos los subinformes, ya que el valor no se propaga ni hereda).

Crédito a Chris May en su blog article on the subject.

+0

Awesome Gracias por eso !! – Luis

+0

Eso realmente me ha sacado de un agujero. Gracias. – James