Сохранять группу на одной странице с помощью служб Reporting Services

Я создал отчет как часть приложения С# с использованием служб Reporting Services, и я не могу найти некоторые функции, которые я привык видеть в других средах. Я считаю, что отчеты MS Access и Crystal имеют опцию "Keep Together", чтобы вы могли сохранить определенную группировку данных на одной странице, а не разделить информацию на две страницы.

Как это сделать, используя службы отчетов 2005, когда мой отчет отображается локально в приложении С# и просматривается с помощью средства просмотра отчетов .net. По сути, я хочу сохранить все записи в течение определенного года на одной странице. Я использую Visual Studio 2008.

Год - это один из столбцов, а количество строк в течение одного года всегда меньше, чем страница. Мой отчет использует только одну таблицу и имеет самую внутреннюю группировку по годам, а затем другую внешнюю группировку по имени клиента.

В настоящее время я могу поместить два года данных в отчет, однако, если данные начинаются на полпути через первый год, я получаю следующее:

Пример:

Страница первая: 1/2 из 2004, потому что данные начались на полпути через 04

Весь 2005 год

Первая половина 2006 года

Стр .2: Вторая половина 2006 года

Я бы предпочел сделать все 2006 год на вторую страницу.

В настоящее время я использую таблицу для всех данных в отчете. На уровне таблицы существует опция keep together, но мне нужен один на уровне группы. В этом случае Группировка по годам.

Любая помощь, которая может быть предоставлена, будет высоко оценена.

Ответ 1

Проблема заключалась в том, что мне нужно было два года на странице, а не на полгода, даже если определенный набор записей начался наполовину через год. Оказывается, хотя на уровне таблицы есть опция "Держать вместе", на уровне группы нет ни одного. Мне нужен этот вариант на уровне группы. Вместо использования решения формата я изменил базовый SQL для отчета. В тех случаях, когда я составлял только полтора года данных, я создал записи для другой части года с правильными датами, но нулями для всех других значений. Это означает, что если страница отформатирована правильно, чтобы удерживать два года, она всегда будет показывать два полных года, а один год никогда не будет разбит на две страницы. Я также думал, что ответы, предоставленные Мози и Джоном Сансом, были хорошими, и я проголосовал за них обоих.

Спасибо за помощь!

Ответ 2

  • Вставьте в отчет "Список".
  • В своем "Свойствах табликса" установите для свойства "Имя набора данных" имя вашего набора данных.
  • В окне дизайна щелкните правой кнопкой мыши по списку и выберите "Группа строк" > "Свойства группы".
  • В окне "Свойства группы" нажмите кнопку "Добавить" в разделе "Групповые выражения", затем выберите поле, которое вы хотите группировать на странице.
  • После этого вы можете вставить таблицу для ваших подробных данных внутри группы строк.
  • После рендеринга отчета отчет будет хранить данные внутри группы вместе между разрывами страниц.

Ответ 3

Пожалуйста, нажмите на группу, которую вы хотите сохранить вместе на одной странице в разделе "Группа групп". После того, как вы нажмете на нужную группу, в разделе свойств установите параметр Сохранить Together как True. Это. Это сработало для меня.

Ответ 4

Просто добавьте немного ответа Джона. Для SSRS 2005 объекты List и Table имеют свойство KeepTogether, что означает, что они попытаются сохранить все на одной странице. Я думаю, что лучший подход - сначала следовать совету Джона.

Ответ 5

Хорошо, вам нужно сначала определить размер страницы отчетов, чтобы быть достаточно большим, чтобы охватить всю область данных.

См:

http://msdn.microsoft.com/en-us/library/bb677374.aspx

Затем вам необходимо добавить точки перерыва страницы в группу в вашей матрице. См. Ниже:

http://msdn.microsoft.com/en-us/library/ms156434.aspx

Ответ 6

Используйте элемент Rectangle и скопируйте и вставьте в него все элементы управления. В свойствах прямоугольника tke установите флажок для хранения содержимого вместе. Не включайте границу, если вам не нужны дополнительные строки.

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