Электронная почта, управляемая данными SSRS

Я новичок в SSRS, и у меня есть вопрос о том, как отправить электронное письмо лицам, которые указаны в отчете.

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

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


person MDP    schedule 12.12.2018    source источник
comment
подождите минуту, вы можете использовать КУРСОРЫ и где бы вы ни читали данные; вы используете этот процесс и его параметр для создания временной таблицы. Поскольку у вас есть электронная почта менеджера (ов), вы можете создать электронную почту DB и отправить текст в формате html с желаемыми строками об их конкретных сотрудниках. Это не будет отчет SSRS с заголовками и т. д., но он будет закрыт.   -  person junketsu    schedule 12.12.2018


Ответы (2)


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

1) Создайте хранимую процедуру

а) Он собирает менеджеров и сотрудников в табличную переменную

б) Он использует курсор для перебора каждого менеджера в переменной таблицы и выполняет вторую хранимую процедуру, которая использует DB-email для отправки им сообщения.

c) Он ВЫБИРАЕТ данные отчета

2) Создайте отчет SSRS

а) Создайте набор данных, который вызывает вашу хранимую процедуру из шага 1) (Примечание: это будет отправлять электронное письмо менеджерам при каждом запуске!)

б) Опубликовать отчет SSRS на сервере отчетов

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

person Vic Street    schedule 12.12.2018
comment
безопаснее использовать табличные переменные, потому что sql-сервер имеет то ограничение, при котором вложенные SP с использованием временных таблиц не разрешены. Esp, если op задействует курсор. - person junketsu; 12.12.2018
comment
мы никогда не делали шаг 2 на моем последнем месте. Кажется выполнимым. Использовал базу данных db-mail с тегами html для создания отчета, подобного ощущениям, и отправки менеджерам/сотрудникам запрошенных ими данных. - person junketsu; 12.12.2018
comment
Спасибо, ребята, за вашу помощь, это указало мне на правильный подход/решение. - person MDP; 13.12.2018

SSRS позволяет создавать подписки, использующие данные, но не позволяет использовать данные для создания подписок.

Что вы МОЖЕТЕ сделать, так это: добавьте «Имя менеджера» в качестве параметра в свой отчет, и в отчете будут отображаться только сотрудники, которые находятся непосредственно под менеджером, переданным в параметр. Затем создайте подписку для каждого менеджера, которая передает свое имя параметру «Имя менеджера».

Что вы НЕ МОЖЕТЕ сделать, так это использовать данные, сгенерированные отчетом, для динамического создания подписок для менеджеров, чьи сотрудники будут в отчете в этот день. Чтобы сделать что-то подобное, вам нужно написать собственное приложение для создания отчетов в .net или что-то подобное.

person Tab Alleman    schedule 12.12.2018
comment
Спасибо Табу за ваше предложение, оно помогло мне получить много знаний о том, как подходить к ситуации. - person MDP; 13.12.2018