Добро пожаловать, 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
, а в качестве метки - то, что вы хотите, чтобы ваш пользователь видел.
Теперь у вас должен быть раскрывающийся список менеджеров.
Надеюсь, я ничего не пропустил (здесь уже полночь), и вы сможете выполнить эти шаги.
Удачи!