2017-01-11 14 views
0

我们可以在SSRS报告的RDL文件的命令文本中添加RAISE ERROR吗?SSRS RDL文件 - 命令文本 - 升级错误

由于数据库中缺少数据,我的报告正在创建一个空白PDF文件。我想检查数据,如果没有找到数据,我需要提出错误。那可能吗?

或者在渲染调用之后,我们如何检查文件的内容数据?有没有办法做到这一点?

我们正在使用SSRS-2008-R2版本。我们通过C#.net应用程序运行端口,因此,我通过Reporting Services的WebServices调用报告,并返回一个表示报告结果的字节数组,但数组字节总是带有字节,因为报告有一个标题,因此发生字节。

我需要检查字节数组来决定是否生成PDF。

我该怎么做。

回答

0

SSRS中有一个内置函数,允许您检查DataSet是否有任何行。

=CountRows(“DataSet1”) 

您可以随时检查并采取适当的措施。

我喜欢在隐藏属性的Tablix的/矩阵利用这一点,把它隐藏当行数为0

=IIf(CountRows(“DataSet1”) = 0, True, False) 

另外,我喜欢到一个文本框添加到报表中,简单地包含单词无资料需报告。然后,我通过它的隐藏属性显示数据集为空时。

=IIf(CountRows(“DataSet1”) <> 0, True, False) 

没有必要做一个引发错误,用一点技巧来处理这个问题。这适用于所有版本的SSRS。

编辑:

另一种方法是使用存储过程数据集源。在那里处理所有的逻辑。将数据选择到临时/工作表中,检查行数是否为0,采取所需的任何操作(发送电子邮件,返回数据或两者兼有)。

另一种方式可能是数据驱动订阅;如果您运行的是SSRS企业版,则可用。然后,您可以获得一份报告,提醒您任何想要监控的数据异常情况。

+0

如果CountRows()返回0,那么我需要得到一些消息。怎么能这样做。? – Sahi

+0

你是什么意思得到一些消息? –

+0

我在msmq中生成pdf请求并读取复制数据库中的数据。 由时间msmq开始处理请求,复制不会发生。因此数据集将是空的。 如果数据集为空,则从ssrs RDL返回一些消息或空数据集,并再次以msmq为单位对请求进行排队。 – Sahi