SSRS打印计数器

时间:2011-07-21 12:49:36

标签: report reporting-services

我对SSRS很陌生,我几乎完成了我被要求做的报告,一切都按预期工作,但我的客户只是要求我说明报告在当前表格中打印了多少时间,在报告的标题中。

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

假设我的客户提出了05-05-2005到06-06-2006期间的报告,并打印出标题/标题中的“REPORT NAME(打印#1)”。然后,如果他决定在一周后回来并打印相同的确切报告,则会显示“报告名称(打印#2)”。

反正有没有这样做?到目前为止,我的研究使我相信这是不可能的。

提前感谢任何潜在客户/解决方案!

2 个答案:

答案 0 :(得分:3)

对于未来的读者:无需创建自己的查询日志记录。

您可以查询ReportServer.dbo.ExcecutionLog表。它包含许多有关报告请求的信息,包括XML格式的参数。您可以对其进行分组/统计,以确定特定报告的先前执行次数。

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

只有问题仍在确定用户是否打印了报告。您也可以从ExecutionLog中获取它:

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

自己查看打印输出生成的日志:查询按执行开始排序的执行日志,显示报告,重新查询,打印,重新查询等。

答案 1 :(得分:2)

你必须写一个custom Print delivery extension来在某个数据库中记录“打印”。所以实际上,不,在“纯粹的”SSRS中

思路:

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