KB2715841 - CORRECCIÓN: Report Viewer 2010 no muestra el parámetro DateTime al ejecutar un informe en SSRS 2012

Este problema se aplica a Microsoft SQL Server 2012 Reporting Services.

Síntomas

Tenga en cuenta el siguiente escenario:

  • Crear una aplicación de Windows Forms o de Windows Presentation Foundation (WPF) basada en Microsoft .NET Framework 4.0.
  • En la aplicación Windows Forms o WPF, use un control de Microsoft Report Viewer 2010 para mostrar un informe de Microsoft SQL Server 2012 Reporting Services (SSRS 2012) que se ejecuta en modo remoto.
  • El informe incluye un parámetro de tipo DateTime con un valor predeterminado.
  • Ejecuta la aplicación en un sistema operativo que tiene la configuración regional establecida en italiano. Además, el formato de hora larga se establece en "HH:mm:ss".

En esta situación, puede experimentar uno de los siguientes problemas:

  • El valor predeterminado del parámetro de tipo DateTime no se muestra en el área de solicitud de parámetros.
  • Si asigna un valor al parámetro de tipo DateTime y actualiza el informe, el valor se perderá después de que el informe se represente y no se muestre.

      

Causa

Este problema se produce debido a un cambio en .NET Framework 4.0 que impide que la aplicación y SSRS 2012 usen la información correcta en función de la configuración regional del sistema operativo. Las aplicaciones que se basan en .NET Framework 4.0 usan la configuración regional que devuelve Windows. Sin embargo, SSRS 2012 se basa en .NET Framework 3.5 Services Pack 1 (SP1). Por lo tanto, SSRS 2012 utiliza la configuración regional que está incrustada en .NET Framework 3.5 SP1.

Cuando un servidor SSRS 2012 ejecuta un informe utilizando el símbolo "." como separador de tiempo, el parámetro de tipo DateTime se devuelve al cliente como una cadena. El control Visor de informes llama al método DateTimeOffset.TryParse para validar la cadena mediante el símbolo ":" como separador de tiempo. Por lo tanto, la cadena se valida como falsa y no se muestra en el área de solicitud de parámetros.

Nota: Este problema solo se produce si el formato de hora larga se establece en "HH:mm:ss", la configuración predeterminada para la configuración regional italiana. La configuración predeterminada para la configuración regional italiana depende del sistema operativo. Además, puede configurar la configuración predeterminada del sistema operativo cambiando el formato de hora larga.

Resolución

Información sobre la actualización acumulativa

Actualización acumulativa 2 para SQL Server 2012 Service Pack 1 (SP1)

                
La corrección de este problema se publicó por primera vez en la actualización acumulativa 2. Para obtener más información acerca de cómo obtener este paquete de actualización acumulativa para SQL Server 2012 Service Pack 1, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

2790947 paquete de actualización acumulativa 2 para SQL Server 2012 Service Pack 1Nota Dado que las compilaciones son acumulativas, cada nueva corrección contiene todas las revisiones y correcciones de seguridad que se incluyeron con la versión anterior de SQL Server 2012 Service Pack 1. Recomendamos que se plantee la posibilidad de aplicar la versión de corrección más reciente que contiene esta revisión. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

2772858 Compilaciones de SQL Server 2012 que se publicaron después de SQL Server 2012 Service Pack 1

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".

Solución alternativa

Para resolver este problema, use una de las siguientes soluciones alternativas:

  • Establezca la configuración regional de la aplicación y el sistema operativo para que coincida con la configuración regional que se encuentra en el cliente.
  • Cree un campo de entrada de cadena para que el usuario lo rellene con texto. Después, en el informe, convierta la cadena en una fecha.
  • Cree un parámetro oculto o sin mensaje que se rellene desde el campo de entrada de cadena al ejecutar el informe.
  • Crea un parámetro de tipo DateTime no visible y un control DateTimePicker fuera del control Visor de informes. Haga clic en Ver informe y coloque el valor de cadena en el parámetro de tipo DateTime en el controlador de eventos SubmittingParameterValues.

      

Más información

Microsoft Report Viewer 2010 SP1 Redistributable Package está disponible para su descarga en el siguiente sitio web del Centro de descarga de Microsoft:

Microsoft Report Viewer 2010 SP1 Redistributable Package Para obtener más información sobre el método DateTimeOffset.TryParseExact y el método DateTimeOffset.TryParse, visite los siguientes sitios web de MSDN:

Método DateTimeOffset.TryParseExact (String, String, IFormatProvider, DateTimeStyles, DateTimeOffset%)
        
         Método DateTimeOffset.TryParse (String, DateTimeOffset%)