使用报表执行Web服务,如何判断报表的表是否没有返回任何行?

时间:2013-04-10 15:51:39

标签: reporting-services

我有一个C#项目,它使用ReportExecution2005.asmx Web服务。在我的项目中,我遍历一些数据库记录,将行的数据传递给报告的参数,然后呈现报告。

报告是一个简单的,一个数据集,一个表格报告,我最终导出到Excel。

当我渲染报告时,我不知道我传递的参数是否实际上会导致报告的数据集/表返回任何行。如果报告确实返回了数据,那么我会通过电子邮件发送报告。但是,如果报告的表格为空,那么我需要跳过此报告并继续下一个报告。

无论如何,我可以检查我的渲染报告,看看数据集或表是否返回了任何数据?

感谢您的光临。

1 个答案:

答案 0 :(得分:2)

这听起来更像是在后端sql中可以在报告中完成的事情。根据我的知识,报告只会生成,因此没有任何内容可以做到这一点。订阅的知识非常基础....但您可以进行动态订阅,这可以脱离数据库逻辑。

我相信你可以做一个多层次的方法让订阅变得动态。

  1. 在SQL数据库中为数据库创建一个作业,以跟踪包含数据的报表。只需在RecordTable中执行一个简单的插入选择(reportname),dateadd(day,datediff(day,0,getdate()),0),从(tabledataset)计数(*)。
  2. 如果您的数据集是否有行,请在设定的时间每天运行此作业以填充。
  3. 如果rowcount大于零,则创建动态订阅以执行查询,如果不是,则创建。