SSRS для каждого цикла на основе идентификаторов запроса

#reporting-services

Вопрос:

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

Идентификатор пользователя От Для Ценность Имя
1 2021-10-1 2021-10-31 10 Имя 1
1 2021-11-1 2021-11-30 20 Имя 1
2 2021-10-1 2021-10-31 100 Имя 2
2 2021-11-1 2021-11-30 200 Имя 2

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

Имя: Имя1

От Для Ценность
2021-10-1 2021-10-31 10
2021-11-1 2021-11-30 20

Имя: Имя 2

От Для Ценность
2021-10-1 2021-10-31 100
2021-11-1 2021-11-30 200

Как этого можно достичь?

Заранее спасибо

Ответ №1:

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

В этом случае вы можете использовать объект СПИСКА для группировки ваших данных, а затем поместить свою таблицу (и любые другие объекты, которые вам могут понадобиться) в одну (большую) ячейку СПИСКА.

Есть таблица регионов, но ее нужно повторить для более высокой группы — СТРАНЫ.

введите описание изображения здесь

Добавьте СПИСОК и сгруппируйте его по полю СТРАНА. Сделайте одну ячейку того же размера, что и другая таблица. Поместите таблицу регионов в одну ячейку списка СТРАН. Для вашего сценария вы бы использовали идентификатор пользователя.

введите описание изображения здесь

Список повторяется для каждой страны. Для вашей таблицы это будет повторяться для каждого пользователя.

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

Ответ №2:

Добавьте группу строк с заголовком группы, которая группируется по идентификатору пользователя.

введите описание изображения здесь

В заголовке группы строк вы можете указать имя пользователя, идентификатор и т. Д.

Ответ №3:

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

Если вы это сделаете, таблица сгруппирует все строки для каждой уникальной UserId , а также позволит вам добавлять промежуточные итоги и т. Д

Комментарии:

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

2. @xeraphim Группа существует внутри таблицы, поэтому вы можете добавлять элементы как в любую группу, так и за ее пределами. Это означает, что вы можете добавлять заголовки столбцов, которые либо повторяются с каждой группой, либо просто располагаются в верхней части самой таблицы. Если вы хотите отобразить данные так, как если бы они находились в отдельной таблице, просто добавьте пару строк таблицы внутри группы, одну вверху над вашими фактическими данными и одну внизу, которые отформатированы так, чтобы они выглядели как верхняя и нижняя части таблицы. Затем они будут повторяться с каждой группой данных, создавая впечатление нескольких таблиц.