SSRS打印计数器



我对SSRS很不熟悉,我几乎已经完成了我被要求做的报告,一切都按照预期进行,但是我的客户只是让我在报告的标题中指出报告以当前形式打印了多少时间。

所以我的报告有两个参数:开始日期和结束日期。

假设我的客户调出一份从05-05-2005到06-06-2006期间的报告,并打印它,在标题/标题中显示"report NAME (Print #1)"。然后,如果他决定一周后再来打印完全相同的报告,它将显示"报告名称(打印#2)"。

有办法这样做吗?到目前为止,我的研究使我相信这是不可能的。

提前感谢任何线索/解决方案!

您必须编写一个自定义打印交付扩展来在某个数据库中记录"打印"。所以实际上,不,在"纯"SSRS

的想法:

  • 近似的做法是在呈现报告时将查询记录到数据库中。你不知道报告是否通过
  • 打印出来
  • 使用ReportViewer控件或其他一些编程方法一次性启动和打印:因此数据库查询打印。并记录,如上所述。

对于将来的读者:不需要创建自己的查询日志。

可以查询reportserver .dbo. executionlog表。它包含大量关于报告请求的信息,包括XML格式的参数。您可以在此基础上执行组/计数,以确定特定报表的先前执行次数。

更多关于从执行日志中提取信息的信息:http://technet.microsoft.com/en-us/library/ms155836 (v = sql.90) . aspx

唯一的问题仍然是确定用户是否打印了报告。您也可以从ExecutionLog:

中派生出这个。
  • 格式栏-这应该是"图像(emf)"或类似的打印输出。
  • 另外,打印操作很可能发生在HTML渲染操作之后,具有相同的ExecutionID和/或Source = "Session"

查看打印输出生成的日志:查询执行日志按executionstart排序,显示报告,查询,打印,查询等

最新更新