Пользователь моего отчета хотел бы знать, был ли отчет уже напечатан? Если отчет уже был напечатан, пользователь хотел бы увидеть сообщение о том, что отчет уже был напечатан ранее в отчете при следующем создании отчета. Каков наилучший способ достичь этого? Заранее спасибо.Как узнать, распечатан ли отчет в SSRS?
ответ
Нет официальной документации о том, как этого достичь, но я мог бы сделать это.
Таблица ExecutionLogStorage
содержит информацию об отчетах, выполненных или экспортированных.
Когда вы печатаете отчет, нажав кнопку «Печать» на панели инструментов, отчет «сгенерирован», и он регистрируется в таблице ExecutionLogStorage
с Format = 'IMAGE'
.
Если вы экспортируете свой отчет в виде файла TIFF, строка также генерируется с помощью Format = 'IMAGE'
.
К счастью, есть также столбец ByteCount
, который содержит «Размер отображаемых отчетов в байтах». согласно MSDN.
Этот столбец ByteCount
содержит 0
в случае, если отчет печатается, и размер изображения, если вы делаете экспорт изображения.
Так что я в конечном итоге с помощью следующего запроса, который можно выполнить в SSRS БД:
select els.[LogEntryId],
c.[Name],
c.[Path],
els.[Parameters],
els.[UserName],
els.[TimeStart],
els.[TimeEnd]
from [dbo].[ExecutionLogStorage] els
left join [dbo].[Catalog] c on els.[ReportID] = c.[ItemID]
where els.[Format] = 'IMAGE'
and els.[ByteCount] = 0
order by els.[LogEntryId] desc
Я просто сохранил ключевые столбцы здесь и, конечно, вы можете вы можете адаптировать его под ваши потребности, и возможно, сделайте group by
, чтобы иметь количество распечаток для каждого отчета.
Важные примечания:
- Это сработало в моем случае, но это официально не поддерживается, так что не удивляйтесь, если он не работает для вас.
- Это может быть очевидным для большинства людей, но это не будет работать, если пользователь печатает отчет в любой другой форме, чем нажать на отчете о печати кнопки, как:
- Экспорт отчета в любом формате (PDF, Excel , Doc)
- CTRL + P страница
- Возьмите Server Properties во внимание:
EnableExecutionLogging
должен быть установлен вtrue
- по умолчанию
ExecutionLogDaysKept
является60
так настроить этот номер соответственно
В вашем случае с вышеупомянутым запросом, можно добавить DataSource в отчет ориентируется на ReportServer DB, и если запрос имеет результат, соответствующий отчету, отображает сообщение.
В качестве альтернативы вы можете запланировать задание, заполняющее другую БД, которая будет использоваться для отслеживания распечатанных отчетов, и запросить эту БД в отчете.
При нажатии на кнопку печати, то RenderFormat.Name из отчета IMAGE
(кнопка печати на самом деле делает отчет в виде TIFF до печати, так Export as TIFF file
будет иметь тот же эффект)
если вы» повторно используя renderformat в качестве параметра для proc, вы можете записать тот факт, что он был напечатан, и впоследствии отобразить сообщение об этом.
- 1. Как распространять отчет SSRS?
- 2. Как узнать отчет rdlc
- 3. Можно ли встроить javascript в отчет SSRS?
- 4. SSRS: программно генерировать отчет
- 5. Как создать динамический отчет SSRS
- 6. Пользовательский отчет SSRS конечных пользователей
- 7. Как создать отчет SSRS ReportServer?
- 8. Отчет SSRS внезапно висит
- 9. SSRS Отчет Просмотреть
- 10. Как открыть отчет мастера ssrs
- 11. Отчет динамической службы SSRS
- 12. Отчет SSRS - Конкретный формат
- 13. получить данные в отчет ssrs
- 14. SSRS Anchor отчет в центр экрана
- 15. меняется SSRS отчет
- 16. SSRS ежемесячный/ежедневный отчет
- 17. SSRS Показать отчет monthwise
- 18. XSLT на SSRS отчет
- 19. Отчет модели модели SSRS
- 20. SSRS отчет вычислить поле
- 21. Автоматически печатать отчет SSRS
- 22. Десятичный отчет SSRS
- 23. Добавить процент в отчет SSRS
- 24. разрывы строк в SSRS отчет
- 25. Слишком длинный отчет SSRS
- 26. Отчет SSRS в MS CRM 2011
- 27. Редактировать отчет SSRS в SharePoint
- 28. Удалить отчет SSRS
- 29. Сгенерировать отчет SSRS в памяти
- 30. SSRS добавляет субобъекты в отчет
Вы нашли решение? –