如何使用数据库从iReport检查参数?

时间:2018-08-06 06:04:02

标签: jasper-reports

当前我正在使用iReport 3.0.0制作报告

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

我按此字段分组,以便所有记录将基于Indicator打印在不同的页面上。 (我使用iReport Group By函数)

但是,我有一段时间在查询sql时仅返回A和C。如果我也想生成带有文本未找到记录Ind = B怎么办? >

这是我当前的表情:

($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,然后打印找不到记录

预先感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

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

使用内置变量${YOUGROUP_COUNT}source

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

设置了此变量后,您可以创建一个{<1>找不到记录的textField。仅当组计数等于零时,才使用属性printWhenExpression显示此textField。

<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>

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