Подотчеты стараются держать вместе, оставляя пустые места/страницы.

StackOverflow https://stackoverflow.com/questions/635051

Вопрос

Службы отчетов 2005

Моя раскладка такая:

  • У меня есть основной отчет, который содержит таблицу
  • Эта таблица состоит из трех групп: GrpLevel1, GrpLevel2, GrpLevel3.
  • Подотчеты добавляются в одну из трех групп и выполняются с передачей ключа этой группы в подотчет.

Таким образом, конкретный подотчет будет запускаться на уровне GrpLevel1, и для каждого содержащегося в нем уровня2 будут запускаться подотчеты на уровне GrpLevel2.

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

Если подотчет содержит таблицу с кучей данных и не может поместиться на 3/4 страницы (первая страница отчета имеет заголовок отчета поверх 1/4), он перенесет все на следующую страницу. оставляя только заголовок, а не печатая то, что можно, на первой странице.

На столе у ​​меня выключено «Держать вместе».

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

ОБНОВЛЯТЬ ****************ЭТО БЫЛО ИСПРАВЛЕНО В SSRS 2008 R2 *************************
Это было исправлено в службах Reporting Services (SQL Server) 2008 R2.Теперь вы можете переключать KeepTogether во вложенных отчетах.Пагинация выглядит намного лучше.

Это было полезно?

Решение

Похоже, решения этой проблемы нет.Ошибка признана Microsoft, но в SSRS2008 она до сих пор не исправлена.

Из статьи КБ (http://support.microsoft.com/kb/938943)

Такое поведение происходит из -за того, что контроль подрепорта имеет неявное свойство.По своей конструкции Свойство KeepTogether стремится сохранить содержимое подотчета на одной странице.Из-за такого поведения отчет двигатель создает пустое пространство на главном сообщить, если подотчет не подходит на той же странице, что и основной отчет.Затем механизм отчетов создает subreport на новой странице.

Обходной путь, который они перечисляют, по сути, заключается в том, чтобы «не использовать подотчеты».

Другие советы

Я не уверен насчет более ранней версии SSRS, но я столкнулся с той же проблемой в SSRS 2008.

Решение состоит в том, чтобы изменить свойство Subreport в коде.

  1. Перейдите в обозреватель решений, щелкните правой кнопкой мыши отчет и выберите «Просмотреть код».

  2. Найдите свой подотчет.

  3. Внутри тега подотчета вы найдете "<KeepTogether>", для которого будет установлено значение "истина", измените его на "ложь"

Это свойство недоступно в дизайнере, и его необходимо изменить из фактического XML-кода отчета.

щелкните правой кнопкой мыши подотчет и выберите формат подотчета, затем снимите флажок «Сохранить объект вместе».

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

Мне потребовалась неделя, чтобы решить эту проблему!Но я нашел решение и рад поделиться им с вами.

У меня была точно такая же проблема.В моем основном отчете есть таблица, содержащая 3 группы и 2 разных подотчета в каждой группе.И в этих подотчетах были матрицы.Я считаю, что независимо от матриц размещение подотчетов внутри групповых/подробных групп внутри таблицы приводило к печати множества ненужных пустых страниц до, между и после разделов.Это была головная боль, и я подумывал удалить подотчеты, но тогда это сводит на нет всю цель отчета.

Итак, наконец, что было исправлено, так это то, что вместо размещения подотчета в группах DETAIL групп в таблице поместите их в нижний колонтитул групп.Теперь я знаю, что это может изменить или повлиять на формат отчета и может не соответствовать целям вашего отчета.Но это решило проблему для меня.Другой способ обойти проблему с пустой страницей — оставить подотчеты там, где они находятся (группы подробностей или группы), и переместить ДРУГИЕ полосы подробностей в одну полосу нижнего колонтитула.По сути, нужно иметь в виду уменьшение количества полос детализации/групп внутри таблицы.Ограничьте группировку и используйте минимальное количество подотчетов в таблице, если вы можете это сделать.

Надеюсь, это кому-то поможет.

Для ССРС 2008Если ваши подотчеты находятся в какой-либо группе, вам следует перейти к свойствам группы и переключить свойство «Сохранять вместе» для этой группы (групп) на false.Это сработало для меня.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top