Как добавить строку нижнего колонтитула, отображающую количество строк, в матрицу в службах отчетов SQL? - PullRequest
3 голосов
/ 15 февраля 2011

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

Company     Position   Name
-------     --------   -----
Acme Inc.   CEO        Bob
Acme Inc.   COO        Alice
Beta Corp.  CEO        Frank
Beta Corp.  CTO        Rob
Beta Corp.  COO        Bill
(etc)

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

  Company        CEO      CTO     COO
-----------------------------------------
| Acme Inc.   |  Bob              Alice |
| Beta Corp   |  Frank    Rob     Bill  |
| Foo, Inc.   |           Paul          |
| Bar Corp    |  Mary                   |

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

-------------------------------------
People in role | 3         2        2

Как мне это сделать в SQL Reporting Services 2005?К сожалению, элементы управления Matrix в SSRS 2005, похоже, не поддерживают строки нижнего колонтитула, как это делают элементы управления Table.Я думаю, что решение будет включать некоторую хитрость с участием групп строк, но я не знаю достаточно о контроле Matrix, чтобы понять это.

Ответы [ 3 ]

3 голосов
/ 15 февраля 2011

В представлении «Дизайн» щелкните правой кнопкой мыши ячейку «Компания» и выберите «Добавить итог» -> «После».

Новая строка будет добавлена ​​в качестве нижнего колонтитула с «Всего» в самой левой ячейке. Справа от суммы в столбце заголовка введите следующее выражение:

=COUNT(Fields!Name.Value)

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

Обновление

Ответ выше для SSRS 2008. Поскольку вы используете SSRS 2005, взгляните на Технику № 5 по следующей ссылке: http://www.simple -talk.com / sql / reports-services / advanced- матрица-отчетно-технологии /

2 голосов
/ 03 апреля 2012

Самое простое решение, которое я смог найти, было

= SUM (iif (Fields! Name.Value <> "", 1,0))

где Fields! Name - поле данных вМатрица.


Пометьте это как ответ, если вы считаете это полезным

1 голос
/ 16 февраля 2011

Можете ли вы попробовать использовать функцию InScope?

Например,

=IIF(InScope("nameOfColumnGrouping"), Sum(yourField.Value), do something)

Вам также может потребоваться указать область действия функции Sum.

Например,

=IIF(InScope("nameOfColumnGrouping"), Sum(yourField.Value,"datasetName/groupName"), do something)

Надеюсь, это поможет!

...