首页 > 解决方案 > 如何使用数据库检查 iReport 中的参数?

问题描述

目前我正在使用 iReport 3.0.0 进行报告

我有一个字段,即Indicator(A、B 和 C)。

我按此字段分组,以便所有记录都将打印在不同的页面中Indicator。(我使用 iReportGroup By功能)

但是,我有一定的时间,当它查询我的 sql 时,它只会返回 A 和 C .. 如果我Ind = B也想用文本生成NO RECORD FOUND

这是我现在的表达:

($F{IND}.equals("A")) ? "SMS MESSAGE NOT FOUND" :  ( 
   ($F{IND}.equals("B")) ? "CW MESSAGE NOT FOUND" : (
    ($F{IND}.equals("C")) ? "STATUS MIS-MATCHED" : null
   )
 )

如何检查IND = B我的数据库中是否不存在,然后打印NO RECORD FOUND

在此先感谢您的帮助 !

标签: jasper-reports

解决方案


您可以使用特殊变量来计算组 B 中的行数。

要么使用内置变量${YOUGROUP_COUNT}source

或者自己增加一个变量:在此处查看更多信息

设置此变量后,您可以拥有一个textField包含NO RECORD FOUND的变量。printWhenExpression仅当组计数为零时,才使用该属性显示此文本字段。

<staticText>
    <reportElement x="234" y="10" width="100" height="30" uuid="05895bf2-3ce1-4d88-82fe-ff3fd650eaf6">
        <printWhenExpression><![CDATA[${YOURGROUP_COUNT} == 0]]></printWhenExpression>
    </reportElement>
    <text><![CDATA[NO RECORD FOUND]]></text>
</staticText>

不要在详细信息带中显示此静态文本元素,因为如果没有记录,它将不会显示。使用任何其他波段来显示它。


推荐阅读