Отчет SSRS - многозначные параметры выполняются по одному - PullRequest
0 голосов
/ 15 сентября 2018

Я новичок в SSRS, и мне интересно, как я могу выполнить отчет SSRS несколько раз для разных наборов параметров, где результаты будут в одном документе.

Например, если есть элемент управлениятаблица со списком региональных менеджеров, магазинов и отдельных сотрудников, например:

RM |Магазин |Сотрудник

RM1 |Магазин 1 |Сотрудник 1
RM1 |Магазин 2 |Сотрудник 2
RM1 |Магазин 2 |Сотрудник 3
RM1 |Магазин 2 |Сотрудник 4
RM2 |Магазин X |Сотрудник 5
RM2 |Магазин X |Сотрудник 6
RM2 |Магазин Y |Сотрудник 7
RM2 |Магазин Y |Сотрудник 8

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

Ответы [ 2 ]

0 голосов
/ 15 сентября 2018

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

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

0 голосов
/ 15 сентября 2018

Добро пожаловать, StackOverflow!

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

Предположим, что ваш текущий отчет для одного сотрудника называется SingleEmpReport и для него требуется один параметр empID.Давайте пока оставим это как все, что нам нужно ..

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

Итак ..

  • Создайте новый отчет, скажем, ManagerReport
  • Создайте новый параметр с именем pManager (мы вернемся к этому позже, чтобы улучшить его, но достаточно просто создать параметр.на данный момент)
  • Создайте новый набор данных с именем, скажем, dsEmployees.Задайте для запроса набора данных что-то вроде

    SELECT DISTINCT EmployeeID FROM myControlTable WHERE ManagerID = @pManager ORDER BY EmployeeName

Примечание: имена параметров чувствительны к регистру.Он должен быть записан точно в качестве параметра вашего отчета и должен начинаться с символа @ 1030 *

  • Далее, добавьте таблицу в тело отчета, список будет делать, поскольку нам нужен только один столбеци одна строка, кроме таблицы, также работала бы.

  • Сделайте список таким же широким, как ваше тело отчета, высота не имеет значения, поэтому оставьте его на высоте по умолчанию.

  • Установите для свойства набора данных списка / tablix значение dsEmployees
  • В единственной «ячейке» в списке щелкните правой кнопкой мыши и вставьте подотчет

  • Щелкните правой кнопкой мыши местозаполнитель подотчета и задайте для свойства подотчета значение SingleEmpReport или как там будет называться исходный отчет для одного сотрудника.

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

  • Справавыпадающий, выберите EmployeeID.Это столбец из созданного нами набора данных, содержащий список сотрудников для выбранного менеджера.Поскольку list / tablix привязан к набору данных dsEmployees, мы можем выбрать любое поле из него для передачи в наш подотчет.

Я делаю это из памяти, но я думаю, что это в основномЭто.Запустите ManagerReport, введите идентификатор менеджера (RM1 и т. Д.), И вы должны получить подчиненный отчет для каждого сотрудника.

Если вы хотите добавить разрывы страниц между каждым сотрудником, выберите список / таблицу и посмотрите на панель групп строк в нижней части экрана.Вы, вероятно, увидите группу «детали».Щелкните правой кнопкой мыши, выберите «Свойства группы», затем щелкните разрывы страниц и выберите «между каждой группой».

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

Для этого просто добавьте новый набор данных, скажем, dsManagers, установите для запроса что-то вроде

`SELECT DISTINCT RM 
    FROM myControlTable 
    ORDER BY RM`

Теперь щелкните правой кнопкой мыши по параметру отчета (pManager) и установите его доступные значения взапрос, а затем выберите свой набор данных.Установите в качестве значения то, что вы хотите использовать для запроса набора данных dsEmployees, а в качестве метки - то, что вы хотите, чтобы ваш пользователь видел.

Теперь у вас должен быть раскрывающийся список менеджеров.

Надеюсь, я ничего не пропустил (здесь уже полночь), и вы сможете выполнить эти шаги.

Удачи!

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