Отчет SSRS не отображает данные

Я только что создал отчет SQL Server 2005 SSRS, и данные не отображаются в области предварительного просмотра.

набор данных правильно заполняется из хранимой процедуры по строковому параметру. Я могу выполнить его в области данных. При запуске отчета в области предварительного просмотра отображается правильное количество строк, но содержимое ячеек не содержит никаких данных

Missing Data

исходный набор данных основан на хранимой процедуре с передано в строковый параметр в SQL Server 2005, возвращающий содержимое временной таблицы. Затем dataset сопоставляет поля локальным. Я могу выполнить это правильно в тех. данных.

Хранимая Процедура

ALTER PROCEDURE spWebReportStage25BuildReview
    @BuildNumber as nvarchar(50)

Temp таблицы-схемы

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

enter image description here

отображение набора данных SSRS

enter image description here

параметр набора данных SSRS enter image description here

выполнение набора данных с параметр

enter image description here

в отображаемой таблице нет дополнительной группировки, фильтров или агрегации. Это просто плоский стол

5 ответов


при использовании временных таблиц SSRS не удается получить метаданные. Таким образом, есть в основном 2 способа сообщить SSRS имена столбцов:

  1. добавить SET FMTONLY ON. Это приведет к извлечению метаданных, но не будет отображать данные.

  2. перейдите на вкладку Данные, щелкните универсальный конструктор запросов и выберите Обновить поля. Появится диалоговое окно для указания значения параметра. При выполнении запроса в конструкторе запросов SSRS получает схему и данные из хранимой процедуры. Теперь данные будут доступны в панели предварительного просмотра.


никогда не видел этого раньше. Однако SSRS иногда может быть немного "выключен", поэтому вот список вещей, которые нужно попробовать. Я боюсь, что большинство из них типа "вы пробовали выключить и снова включить?".

  • удалить .data файлы, связанных с отчетом.
  • дублировать / резервное копирование отчета и попытаться добавить набор данных в основных областях чтобы увидеть, если это делает данные.
  • Регистрация скрытый свойство. Не забывайте, что (по какой-то глупой причине) это не (как в любом другом нормальном продукте) a видимого поле Y/N, но a скрытый поле Y/N.
  • проверьте цвет и размер шрифта, etc.
  • выполнить отчет на reportserver с (в отличие от предварительного просмотра), чтобы проверить, если это работает.
  • используйте некоторые временные текстовые поля для показать фактические значения параметров, чтобы проверить, если они они точно такие же, как и при тестовом запуске набора данных.
  • Регистрация кода (xml в rdl)для неожиданных фильтров, скрытых свойств, выражений и т. д. в табликсе. Даже если вы не можете "прочитать" RDL, с подсветкой синтаксиса вы сможете просмотреть его и извлечь много информации об этом.
  • Регистрация ExecutionLog2 и другие записи журнала, чтобы узнать, сколько строк возвращается в отчете работает.

кроме того, это поможет, если вы обновите / отредактируете свой вопрос с дополнительной информацией:

  • какие группировки есть в табликсе?
  • каковы фильтры в табликсе, группах строк и группах столбцов?
  • какова общая структура набора данных, и результаты это?
  • как структурированы и используются параметры?

у меня была та же проблема. Вот что я нашел. Вот мой код:

    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

то, что я сделал, - это использовать начальный "SELECT * FROM @tblPigProblems", чтобы гарантировать, что если какие-либо сообщения об ошибках были указаны в коде до окончательной инструкции select, возвращающей набор данных, то SSRS смог определить поля из хранимой процедуры. Затем, когда результаты были определены, я назначил полям псевдоним. Проблема в том, что названия полей не совпадают объявленные имена полей (т. е. объявленное поле "GaugeColor" не соответствует псевдониму "[Product]", который я предоставил в select для создания результирующего набора. Способ, которым я понял это, заключается в том, что когда я обновил поля в разделе данных отчета SSRS, а затем отобразил поля набора данных, он перечислил имена полей из объявления таблицы (т. е.: "GaugeColor"). Когда я выполнил хранимую процедуру в наборе данных (нажал на !), результирующий набор, указанный в SSRS, показал псевдонимы полей (т. е. "продукт"). Поскольку они не совпадали, ничего не отображалось в текстовом поле, которому я назначил поле (т. е.: "=Fields!Колоргож.Значение.)" Службы SSRS не обнаружили этого несоответствия и позволили создать отчет, но не отображали значения. Исправление было простым, замените:

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

С:

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

Дэн


У меня был случай, когда рабочий отчет перестал показывать данные. Я добавил еще одну таблицу без форматирования, связанную с тем же набором данных - проверил, что запрос больше не возвращает данные при передаче параметров SSRS. После исследования я заметил, что мой тестовый параметр для значения "Якорная дата" был отформатирован как гггг-ММ-ДД, и в моем обновленном запросе я делал предположения о порядке символов в параметре даты (усечь до гггг-мм для одного соединения).

I подозревается, что службы SSRS могут передавать дату в другом формате (MM/DD/YY-моя текущая культурная настройка по умолчанию). Поэтому, работая с этой интуицией, я изменил свою логику SQL для работы с любым форматом даты. - например, слева (преобразовать (дата, @anchorDate, 20), 7)

это исправило мою проблему - предположения формата, которые я тестировал (жестко закодированные значения для тестирования запроса во время разработки), были плохими предположениями. SSRS также может передавать данные в локальных форматах - поэтому обязательно смотрите из-за такого предположения.


У меня также была аналогичная проблема. В моем случае это даже произошло без каких-либо параметров или чего-либо, просто самый простой отчет, который вы можете себе представить. Он включал в себя таблицу с одним полем, фильтры не использовались. Мне удалось просмотреть некоторые данные, но были показаны только те строки, которые не вписывались в ячейку и, таким образом, заставляли высоту строки увеличиваться.

мое исправление для этой проблемы: изменение шрифта или размера шрифта от стандартного (размер 10, Segoe UI). Затем показались все данные. Изменение этого обратно в Segoe UI заставило данные снова исчезнуть.