Подтвердить что ты не робот

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

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

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

Missing Data

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

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

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 Dataset enter image description here

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

enter image description here

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

  • Удалите файлы .data связанные с отчетом.
  • Дублируйте/создайте резервную копию отчета и попытайтесь добавить набор данных в новый базовый таблик, чтобы увидеть, показывает ли это данные.
  • Проверьте скрытое свойство. Не забывайте, что (по какой-то глупой причине) это не (как в любом другом разумном продукте) поле Видимое Y/N, а поле скрытого Y/N.
  • Цвет и размер шрифта Double Check и т.д.
  • Запустите отчет на своем сервере отчетов (в отличие от предварительного просмотра), чтобы проверить, работает ли это.
  • Используйте несколько временных текстовых полей, чтобы показать фактические значения ваших параметров, чтобы убедиться, что они точно такие же, как при тестировании набора данных.
  • Проверьте код-позади (xml в rdl) для непредвиденных фильтров, скрытого свойства, выражений и т.д. В tablix. Даже если вы не можете "прочитать" RDL с подсветкой синтаксиса, вы должны уметь его просматривать и извлекать много информации об этом.
  • Проверьте ExecutionLog2 и другие материалы ведения журнала, чтобы узнать, сколько строк возвращается в отчетах.

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

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

Ответ 3

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

    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" не соответствовало псевдониму "Продукт", который я предоставил в select для создания набора результатов. понял, что когда я обновил поля в разделе "Данные" отчета SSRS, затем отобразил поля набора данных, он перечислил имена полей из объявления таблицы (например: "GaugeColor"). Когда я выполнил хранимую процедуру в наборе данных (нажал на!), набор результатов, указанный в SSRS, показал псевдонимы полей (то есть: "Продукт"). Поскольку они не совпадали, в текстовом поле, которое я присвоил поле, ничего не отображалось (то есть: "= Поля "ColorGauge.Value"). 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

Дэн

Ответ 4

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

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

Ответ 5

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

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

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