Подотчет SSRS не отображается в производстве - PullRequest
0 голосов
/ 02 октября 2019

Иногда я просто ненавижу M $.

У меня есть отчет SSRS, набор данных заполняется хранимой процедурой. Отчет отображает результаты по одному району (сгруппированные строки) на страницу. Хранимая процедура возвращает агрегированные подсчеты. Пока все хорошо.

Я добавил два подчиненных отчета в таблицу, один в левом столбце, другой в правом. Почти точно так же. Я нажал на ячейку, нажал на кнопку вставки и выбрал СУБ-ОТЧЕТ. Затем я нажимаю на новый SUB-REPORT и использую раскрывающийся список, чтобы указать, какой отчет использовать в качестве подотчета.

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

---------------------------------------------------
|___________________DISTRICT 12___________________|
|_____________Item 1|__75|____________Item 2 |__42|
|_____________Item 3|__15|____________Item 4 |__45|
|_____________Item 5|___5|____________Item 6 |__16|
|_____________Item 7|__65|____________Item 8 |___0|
|_____________Item 9|__12|___________Item 10 |__55|
|=================================================|
|______Sub Report 1______|______Sub Report 2______|
|_________category 1|__27|_________category A|__16|
|_________category 2|__15|_________category B|__42|
|_________category 3|___2|_________category C|__60|
|_________category 4|___6|                        |
|_________category 5|__16|                        |
---------------------------------------------------

В Visual Studio выглядит и работает нормально. Каждый подотчет прекрасно работает сам по себе, а также отлично работает в основном отчете. Но когда я развертываю все 3 отчета, подотчет 1 говорит: «Ошибка: Подотчет не может быть показан.»

Подотчеты принимают точно такие же параметры. Подотчеты получают идентификатор района, год и т. Д. Для получения данных.

Я воссоздал нарушающий подотчет с другим именем, заменил его в основном отчете с тем же результатом.

Я воссоздал основной отчет, предоставив обоим вложенным отчетам. отчеты с одинаковым результатом, подотчет 1 и подотчет 1b не работают, подотчет 2 работает.

Я сравнил файлы подотчетов друг с другом, используя ExamDiff (бесстыдный плагин, отличный инструмент!), И не обнаружил реальных отличий.

Я взломал основной файл отчета с помощью XML Notepad (еще один полезныйинструмента) и не обнаружили реальных различий в способе их настройки.

Все отчеты хранятся в одном каталоге.

Я открыл файл проекта и не нашел там ничего интересного.

Я даже добавил внешний инструмент в очистить локальный кэш отчетов , как предлагалось в другом месте.

Я в тупике. Я уверен, что это встречалось раньше. Любые указатели?

Как всегда, спасибо моим соотечественникам на Stack Overflow. Лучший источник рекомендаций для разработчиков на планете.

Ответы [ 2 ]

0 голосов
/ 04 октября 2019

Серьезно, иногда я ненавижу M $.

Хранимые процедуры для двух подотчетов возвращают только 4 поля, одно из которых я даже не использую (идентификатор района). В отчете всего три текстовых поля в таблице, одно из которых является буквальным. Два других -

=Description + " (" + code + ")"

и

=DistCounts

АБСОЛЮТНО НИЧЕГО ЭТИМ.

Наконец мы взяли тот, который сработал, скопировали XML в новый подотчет, изменил набор данных, имена полей и литерал, перераспределил, и это работает. Сравнение того, что работает с двумя, которые не ... не показывает ничего интересного. Arrrrgh!

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

0 голосов
/ 04 октября 2019

Это может быть старая проблема FMTONLY и SSRS.
Подробнее см. По этим ссылкам
http://www.sqlservercentral.com/articles/Reporting+Services+(SSRS)/119024/

Нет полей для хранимой процедуры динамического SQL в SSRSс SET FMTONLY

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

CREATE PROCEDURE report1 AS
BEGIN
     DECLARE @FMTONLY BIT;  
     IF 1 = 0               
      BEGIN  
        SET @FMTONLY = 1;  
        SET FMTONLY OFF;  
      END 

     -- Stored proc main code here

    IF @FMTONLY = 1  
     BEGIN  
        SET FMTONLY ON;  
     END  

END  -- End of stored proc / RETURN
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...