jasper-reports - 如何使用数据库检查 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?
在此先感谢您的帮助 !
解决方案
您可以使用特殊变量来计算组 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>
不要在详细信息带中显示此静态文本元素,因为如果没有记录,它将不会显示。使用任何其他波段来显示它。
推荐阅读
- reactjs - 将 React Javascript 中的类组件转换为 React TypeScript 中的功能组件
- php - 调用未定义的方法 Srmklive\PayPal\Services\PayPal::setExpressCheckout()
- html - 如果条件满足,为什么我的xml和xslt不会链接?
- javascript - app.use() 中使用的 require() 返回什么?
- microsoft-graph-api - 是否可以跟踪从队列到结束的呼叫?
- flutter - 在函数加载后或特定计时器后添加自动索引更改
- javascript - 有没有一种方法或方法可以使用 javascript 随机播放/返回字符串的变体?
- microsoft-graph-api - MS graph api - 对特定用户收件箱的范围访问
- windows-10 - SonarQube 包装器在 Windows 上停止,没有指示符
- spring - Spring Kafka - 使用哪个批处理错误处理程序?