не отправлять отчет, если в таблице на указанную дату нет данных - PullRequest
0 голосов
/ 27 марта 2019

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

Я должен передать параметр Дата отчета в отчете, чтобы захватить любые данные.За этот конкретный день, если есть записи, отправьте отчет, иначе не отправляйте отчет.

Я попробовал подписку, управляемую данными, и дал приведенный ниже запрос в редактируемом наборе данных и передал его в поле TO Email ID.

select 'aaa.bbb@xxx.com' EmailID
where 1<=(select count(1) records from dbo.table)

и в поле параметра я передаю параметр даты.

я следовал за этим видео https://www.youtube.com/watch?v=TOdKNWVes5g

Если для указанной даты есть какие-либо строки, тогдаон отправляет на указанный выше идентификатор электронной почты, иначе отправлять не следует, поскольку данные не извлекаются.Однако в обоих случаях с отчетом отправляется электронное письмо.если есть данные, отчет имеет данные, иначе отчет пуст.

Я вообще не хочу отправлять отчет, если на эту дату нет данных.

что мне здесь не хватает?любая помощь приветствуется!

Ответы [ 2 ]

0 голосов
/ 27 марта 2019

Что вам нужно сделать, это что-то вроде этого для вашего набора данных подписки на основе данных:

    DECLARE @Date AS DATETIME = '2018-01-01'


    if not exists(
    select top 1 *
    from dbo.table 
    WHERE [DateColumn] >= @Date) 

 raiserror ('Subscription need not run!',16,1)

 else
    select 'aaa.bbb@xxx.com' EmailID
    from dbo.table 
    WHERE [DateColumn] >= @Date

Что это в основном делает, так это не возвращает никаких данных, если ничего не происходит, и ваша подписка не выполняется .. электронное письмо не генерируется ... если условие if выполнено, то все остальное будет работать так, как вы запланировали.

0 голосов
/ 27 марта 2019

Здесь необходимо внести изменения в запрос для управляемой данными подписки

DECLARE @Date AS DATETIME = '2018-01-01'

select 'aaa.bbb@xxx.com' EmailID
where (select count(*) from dbo.table 
WHERE [DateColumn] >= @Date) > 0

Запрос в выражении where должен совпадать с набором данных отчета, который вы использовали в отчете о привязке.

И это значение набора данных, которое вы должны использовать в разделе подписки ToEmail.

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