2012-07-06 48 views
11

Acabo de crear un informe SQL Server 2005 SSRS y los datos no se muestran en el panel Vista previa.Informe SSRS que no muestra datos

El conjunto de datos se rellena correctamente de un procedimiento almacenado con un parámetro String. Puedo ejecutarlo en el panel Datos. Cuando se ejecuta el informe en el panel de vista previa el número correcto de filas se muestran pero el contenido de las celdas no contienen ningún dato

Missing Data

El conjunto de datos de origen se basa en un procedimiento almacenado con una pasa en el parámetro de cadena en SQL Server 2005 que devuelve el contenido de una tabla temporal. El conjunto de datos luego asigna los campos a los locales. Puedo ejecutar esto correctamente en la vista de Datos.

procedimiento almacenado

ALTER PROCEDURE spWebReportStage25BuildReview 
    @BuildNumber as nvarchar(50) 

tabla Temp de esquema

CREATE TABLE #tmpModelZones 
(
    BuildID bigint NOT NULL, 
    BuildNo nvarchar(50) NOT NULL, 
    ModelID int NOT NULL, 
    ModelName nvarchar(50) NOT NULL, 
    ZoneID int NOT NULL, 
    ZoneName nvarchar(50) NOT NULL, 
    SortOrder int NOT NULL, 
    Created bit DEFAULT 0 NOT NULL, 
    Closed bit DEFAULT 0 NOT NULL, 
    PRIMARY KEY (BuildID, ZoneID) 
) 

SSRS conjunto de datos

enter image description here

SSRS conjunto de datos de mapeo

enter image description here

SSRS conjunto de datos de parámetros enter image description here

de ejecución del conjunto de datos con el parámetro

enter image description here

No hay agrupación, filtros o agregación adicionales en la tabla que se muestra. Es simplemente una mesa plana

+0

Por equivocación ¿Ha cambiado la propiedad de visibilidad inicial que se ocultará para la celda? – praveen

+0

No, Hidden is False para todos los elementos –

+0

¡Vaya! Nunca vi que esté usando tablas temporales. Creo que el problema es que ssrs no puede obtener los metadatos ya que está utilizando tablas temporales – praveen

Respuesta

6

Al usar tablas temporales, SSRS no puede obtener los metadatos. Así que hay básicamente 2 formas de SSRS Dando a conocer los nombres de columna:

  1. Añadir SET FMTONLY ON. Esto recuperará los metadatos pero no mostrará los datos.

  2. Vaya a la pestaña DATOS y haga clic en el diseñador de consultas genéricas y haga clic en los campos de actualización. Esto generará un cuadro de diálogo para especificar el valor del parámetro. Cuando ejecutamos la consulta en el diseñador de consultas, SSRS obtiene el esquema y los datos del procedimiento almacenado. Ahora los datos estarán disponibles en el panel de vista previa.

8

Nunca he visto esto antes. Sin embargo, SSRS puede estar un poco "apagado" a veces, así que aquí hay una lista de cosas para probar. Me temo que la mayoría de estos son del tipo "¿Has probado apagar y encender nuevamente?".

  • Eliminar los archivos .data asociados con el informe.
  • Duplicar/hacer una copia de seguridad del informe e intentar agregar el conjunto de datos en una tablix nueva y básica para ver si eso muestra datos.
  • Compruebe la propiedad oculta. No olvide que (por algún motivo estúpido) no es (como en cualquier otro producto) un campo visible Y/N, pero Oculto campo Y/N.
  • doble comprobación color de fuente y tamaño de, etc.
  • Ejecutar el informe en su reportserver (en contraposición a la vista previa) para comprobar si funciona.
  • Use algunos cuadros de texto temporales a para mostrar los valores reales de sus parámetros, para comprobar si son exactamente los mismos que cuando prueba el conjunto de datos.
  • Compruebe el código detrás (xml en el rdl) para filtros inesperados, propiedades ocultas, expresiones, etc. en el tablix. Incluso si no puede "leer" el RDL, con el resaltado de sintaxis debería poder leerlo y extraer mucha información al respecto.
  • Compruebe ExecutionLog2 y otras cosas de registro para ver cuántas filas se devuelven en las ejecuciones de informes.

Además, sería útil si actualiza/editar su pregunta con algo más de información:

  • ¿Qué tipo de agrupaciones tiene el tablix?
  • ¿Cuáles son los filtros en el tablix, grupos de filas y grupos de columnas?
  • ¿Cuál es la estructura general del conjunto de datos y sus resultados?
  • ¿Cómo se estructuran y utilizan los parámetros?
0

Tuve el mismo problema. Esto es lo que encontré. Aquí está mi código:

DECLARE @tblPigProblems TABLE (
    Id   INT IDENTITY, 
    PPId   INT, 
    GaugeColor  VARCHAR(25), 
    FullStartTime  VARCHAR(25), 
    PigSystem   VARCHAR(25) 
    ) 

    IF (1 = 0) 
    BEGIN 
     SELECT * FROM @tblPigProblems 
    END 

    ... 

    SELECT '@tblPigProblems' [PigProblems], 
    @p_vchLine  [Line],   
    GaugeColor  [Product], 
    FullStartTime  [Start Time], 
    PigSystem  [Pig System] 
FROM @tblPigProblems 

Lo que hice fue utilizar la inicial "SELECT * FROM @tblPigProblems" para asegurar que si se especificaron algún mensaje de error en el código antes de la instrucción de selección final de devolver el conjunto de datos, que SSRS fue capaz de determinar los campos del procedimiento almacenado. Luego, cuando se determinaron los resultados, asigné un alias a los campos. El problema era que los alias de los campos no coincidían con los nombres de campo declarados (es decir, el campo declarado "GaugeColor" no coincidía con el alias "[Producto]" que proporcioné en la selección para crear el conjunto de resultados. me di cuenta de que cuando actualicé los campos en la sección Datos del informe SSRS, visualicé los campos del conjunto de datos, listé los nombres de los campos de la declaración de la tabla (es decir: "GaugeColor"). Cuando ejecuté el procedimiento almacenado dentro del conjunto de datos (hizo clic en!), el conjunto de resultados enumerados en SSRS mostró los alias de campo (es decir, "Producto"). Dado que estos no coincidían, no se mostraba nada en el cuadro de texto al que le había asignado el campo (es decir: "= Campos ! ColorGauge.Value "). SSRS no detectó esta discrepancia y permitió la creación del informe, pero no se visualizaron valores. La solución era simple, reemplace:

IF (1 = 0) 
    BEGIN 
     SELECT * FROM @tblPigProblems 
    END 

con:

IF (1 = 0) 
    BEGIN 
     SELECT '@tblPigProblems' [PigProblems], 
     @p_vchLine  [Line],   
     GaugeColor  [Product], 
     FullStartTime [Start Time], 
     PigSystem  [Pig System] 
    FROM @tblPigProblems 
    END 

Dan

0

tuve un caso en que un informe de trabajo dejó de mostrar datos.Agregué otra tabla sin formato, vinculada al mismo conjunto de datos: verifiqué que la consulta ya no devolvía los datos cuando pasaba los parámetros por SSRS. Después de investigar, noté que mi parámetro de prueba para un valor de "fecha de anclaje" se formateó como AAAA-MM-DD, y en mi consulta actualizada, estaba haciendo suposiciones sobre el orden de los caracteres en el parámetro de fecha (para truncar a AAAA -MM por una unión).

Sospeché que SSRS puede estar pasando la fecha en un formato diferente (MM/DD/YY siendo mi configuración cultural actual para los valores predeterminados de fecha). Así que corriendo con esa corazonada, cambié mi lógica de SQL para trabajar con cualquier formato de fecha pasado. - p.ej. left (convert (date, @anchorDate, 20), 7)

Esto solucionó mi problema: las suposiciones de formato con las que había probado (valores codificados para probar la consulta durante el desarrollo) eran suposiciones erróneas. SSRS también puede pasar datos en formatos locales, así que asegúrese de tener cuidado con este tipo de suposición.

0

También tuve un problema similar. En mi caso, incluso ocurrió sin ningún parámetro ni nada, solo el informe más simple que puedas imaginar. Incluía una tabla con un solo campo, no se usaron filtros. Me las arreglé para ver algunos datos, pero solo se mostraban las líneas que no encajaban en la celda y, por lo tanto, obligaban a aumentar la altura de la fila.

Mi solución para este problema: cambiar la fuente o el tamaño de fuente del estándar (tamaño 10, interfaz de usuario de Segoe). Entonces, todos los datos estaban mostrando. Al cambiar esto a Segoe UI, los datos desaparecieron una vez más.

Cuestiones relacionadas