Jasperreports:如何优雅地处理或忽略SQL错误?

时间:2016-04-15 14:34:54

标签: jasper-reports

我们的运行时环境是具有compile/get connection/fill/generate PDF功能的瘦jasperreports servlet的Tomcat。 报告通常由几个表组成,每个表都有自己的数据集(SQL查询)。 JR版本是6.2.0。

有办法:

  1. 优雅地处理数据集中的SQL错误 - 即。赶上它 显示错误代码/消息
    1. 忽略SQL错误,以便报告执行不会中断 (当然,如果其他报表部分依赖于错误的sql查询, 报告最终会破裂)
    2. 是否可以使用自定义scriptlet类,自定义数据适配器,数据源或类似内容(覆盖某些引擎class/method)来执行此操作?

      关于, 戈兰

1 个答案:

答案 0 :(得分:0)

JasperReport只是数据的查看者。错误管理必须在其他地方完成。

两个想法:将函数实现为“业务”表,并在表上选择JasperReports。当然,结果会有更多的表格。如果作业尚未完成,则不会有任何数据。这是我们通常解决这一要求的方式。

或者你可以使用JasperReports API,在Java代码中选择数据并处理那里的错误。在报告中,您可以使用“无数据”字段或“错误”参数,该参数通常为空。如果发生错误,将填充错误消息。这可以使用Custom data source来完成,如the documentation中所示。在自定义数据源中,您可以使用自己的方法选择数据并处理任何错误。然后你可以控制给出的结果。

注意:我们还没有实现自定义数据源,所以仍然可能有更好的方法。