The user of my report would like to know if the report has already been printed? If the report has already been printed then the user would like to see a message that the report has already been printed previously on the report next time the report is generated. what is the best way to achieve this? Thanks in advance.
How to know if a report is already printed in SSRS?
883 views Asked by user3577463 At
2
There are 2 answers
0
On
If you click the print button, the RenderFormat.Name of the report is IMAGE
(The print button actually renders the report as a TIFF prior to printing, so Export as TIFF file
would have the same effect)
if you're using the renderformat as a parameter to an proc, you could log the fact it was printed, and subsequently display a message saying so.
There is no official documentation on how to achieve this, but I there could be a way of doing this.
The
ExecutionLogStorage
table contains information about reports executed or exported.When you print a report by clicking on the print button in the toolbar, the report is "re-generated" and it is logged in the
ExecutionLogStorage
table, withFormat = 'IMAGE'
.If you export your report as a TIFF file, a line is also generated with
Format = 'IMAGE'
.Fortunately, there is also a
ByteCount
column, which contains the "Size of rendered reports in bytes." according to MSDN.This
ByteCount
column contains0
in the case the report is printed, and the image size if you do an image export.So I ended up with the following query, that you can execute in the SSRS DB:
I just kept key columns here and of course you can you can adapt it to fit your need, and maybe do a
group by
to have print counts per report.In your case with the above query, you could add a DataSource to your report targetting the ReportServer DB, and if the query has a result matching the report, display the message.
Alternatively, you could schedule a job filling another DB that will be used to keep track of the reports printed, and query this DB in the report.