2008-10-01 2 views
5

Мне было интересно, если можно не прикрепить лист Excel, если он пуст, и, возможно, напишите другой комментарий в письме, если он пуст.SQL Server Reporting Services 2005 - Как обрабатывать пустые отчеты

Когда я перехожу к параметрам доставки отчетов, такой конфигурации нет.

Edit: Я бегу SQL Server Reporting Services 2005.

Некоторые возможные обходные пути, как указано ниже:

MSDN: Reporting Services Extensions

NoRows and NoRowsMessage properties

я должен смотреть на эти вещи.

ответ

1

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

+0

Благодарим за упоминание о расширении. – 2008-10-01 22:49:10

1

Да, я не думаю, что это возможно. Вы можете использовать свойство «NoRows» вашей таблицы для отображения сообщения, когда данные не возвращаются, но это не помешает прикреплению отчета. Но, по крайней мере, когда они открыли файл excel, он мог распечатать ваше собственное сообщение вместо пустого документа.

+0

Спасибо, что сообщили мне о собственности «NoRows». – 2008-10-03 17:47:44

0

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

SELECT * FROM REPORT_SUBSCRIBERS WHERE EXISTS (SELECT QUERY_FROM_YOUR_REPORT) 

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


Для ваших целей вы можете воспользоваться настройками доставки «Включить отчет» и «Комментировать».
Я полагаю, что управляемые данными подписки запрос, как это будет работать для вас:

SELECT '[email protected]; [email protected]' AS RECIPIENTS, 
CASE WHEN EXISTS (REPORT_QUERY) THEN 'TRUE' ELSE 'FALSE' END AS INCLUDE_REPORT, 
CASE WHEN EXISTS (REPORT_QUERY) THEN 'The report is attached' ELSE 'There was no data in this report' END AS COMMENT 

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

1

Нашел где-то еще ...

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

  1. Создайте подписку на отчет со всеми необходимыми получателями.

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

  3. Откройте вновь созданное задание в SQL Management Studio, перейдите к шагам и скопируйте строку SQL (это будет выглядеть примерно так: EXEC ReportServer.dbo.AddEvent @ EventType = 'TimedSubscription', @ EventData = '1c2d9808-aa22-4597-6191-f152d7503fff')

  4. Создайте свою собственную работу в SQL с фактическим графиком и использовать что-то вроде:

IF EXISTS (SELECT ваши критерии тестирования ...)

НАЧАТЬ

EXEC ReportServer.dbo.AddEvent @EventType = ... и т.д.

END

Смежные вопросы