当前我正在使用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
,然后打印找不到记录?
预先感谢您的帮助!
答案 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>
不要在详细信息栏中显示此静态文本元素,因为如果没有记录,则不会显示它。使用其他任何乐队来显示它。