Использование двух наборов данных в одном отчете с использованием службы отчетов SQL-сервера - PullRequest
1 голос
/ 06 сентября 2011

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

  1. Мне нужно показать количество пользователей, зарегистрированных по группам по региону, стране и типу пользователя, я использовал функцию детализации дляпоказывая это и работает нормально.Также сообщаемыми данными является количество пользователей, зарегистрированных между двумя датами.Наряду с этим я должен показать общее количество пользователей в системе, используя ту же самую детализацию, что и общее количество пользователей по регионам, странам и типам пользователей, в отдельном столбце вместе с каждым количеством (количество пользователей между двумя датами)

так что мой результат будет таким же следующим:

   Region  - Country - New Reg - Total Reg - User Type 1 - UserType2

 + Region1              2          10         1    5        1    5

 + Region2              3           7         2    4        1    3

, а при расширении региона он будет выглядеть как

  Region  - Country - New Reg - Total Reg - User Type 1 - UserType2

 + Region1              2          10         1    5        1    5
            country1    1           2         1    2        -    -

            country2    1           8         1    8        -    -


 + Region2              3           7         2    4        1    3

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

Ответы [ 2 ]

1 голос
/ 19 октября 2011

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

Для начала настройте свой запрос на создание одного набора данных, например:

Region  Country      New Reg - Total Reg -  User Type 1 - User Type 2
Region1 country1    1              2            1   
Region1 country2    1              8            1   
Region2 country3    2              4            1              1
Region2 country4    1              3            1   

Теперь, когда вы получили это, вы хотите создать новую таблицу с полями «NewReg», «TotalReg», «UserType1» и «UserType2». Затем щелкните правой кнопкой мыши строку таблицы и перейдите к «Добавить группу> Группа строк> Родительская группа». Выберите «Страна» в группе и нажмите «ОК». Затем повторите этот процесс и выберите «Регион». Однако на этот раз установите флажок «Добавить заголовок группы». Это вставит еще один ряд над оригиналом.

Теперь для каждого из ваших полей («NewReg», «TotalReg» и т. Д.) Щелкните в новой строке выше и снова выберите поле. это автоматически добавит значение Sum (FieldName) в ячейку. Это позволит сложить все отдельные отдельные строки и представить новую, сгруппированную по региону строку при запуске отчета.

Это должно дать вам требуемую таблицу с правильно агрегированными данными, поэтому все, что вам нужно сделать, это управлять отображением / скрытием строк сведений по требованию.

Для этого выберите строку сведений (исходную строку) и щелкните правой кнопкой мыши «> Видимость строки». Установите для этого «Скрыть». Теперь выберите ячейку, содержащую «Регион», и запишите ее идентификатор, используя «Свойства» (сейчас давайте предположим, что она называется «Регион»). Нажмите на строку с подробностями и посмотрите на окно свойств. Внизу вы увидите настройку «Видимость». Там установите «InitialToggleState» в «False», а «ToggleItem» - в имя ячейки вашей группы регионов (т.е. «Region»).

Теперь все, что нужно оставить, это выполнить форматирование и т.д. и привести в порядок.

0 голосов
/ 09 декабря 2011

Я решил эту проблему, взяв все записи из БД и отфильтровав записи для сбора новых регистров, используя выражение, следующее:

=Sum(IIF(Fields!RegisteredOn.Value  >Parameters!FromDate.Value and  Fields!RegisteredOn.Value  < Parameters!EndDate.Value , 1,0))
...