Хранить группу на одной странице с помощью служб отчетов - PullRequest
12 голосов
/ 21 мая 2009

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

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

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

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

Пример:

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

Весь 2005 год

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

Page2: Вторая половина 2006 года

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

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

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

Ответы [ 6 ]

8 голосов
/ 27 марта 2013
  1. Вставить «Список» в отчет.
  2. В разделе «Свойства таблицы» установите для свойства «Имя набора данных» имя вашего набора данных.
  3. В представлении конструктора щелкните правой кнопкой мыши список и выберите «Группа строк> Свойства группы».
  4. В окне «Свойства группы» нажмите кнопку «Добавить» под «Выражения группы», затем выберите поле, которое вы хотите сгруппировать на странице.
  5. После этого вы можете вставить «Таблицу» для ваших подробных данных в группу строк.
  6. Как только вы создадите отчет, отчет будет хранить данные внутри группы между перерывами страниц.
5 голосов
/ 16 апреля 2014

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

3 голосов
/ 21 мая 2009

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

2 голосов
/ 21 мая 2009

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

См:

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

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

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

1 голос
/ 26 апреля 2013

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

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

0 голосов
/ 08 июня 2009

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

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

...