jasper-reports - 除了最后一次之外,如何详细打印每次迭代的文本?
问题描述
我有一个迭代名称的子报告。我想在每个循环上打印一个文本“或”,除了最后一个。现在我正在为这个问题做一个建议的解决方案,但它仍然在最后一次迭代中打印。
这是我现在拥有的示例:
子报表的末尾还有一个额外的或。
我现在拥有的当前子报告源代码:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.5.1.final using JasperReports Library version 6.5.1 -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="paiwi-signatories-name-only-subreport" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="8f474d5a-0cca-4c5f-807e-71af8848276f">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="signatoryJSON"/>
<queryString language="json">
<![CDATA[signatoryNames]]>
</queryString>
<field name="name" class="java.lang.String">
<fieldDescription><![CDATA[name]]></fieldDescription>
</field>
<field name="address" class="java.lang.String"/>
<variable name="signatoryCurrentCount" class="java.lang.Integer" resetType="None">
<variableExpression><![CDATA[$V{nameGroup_COUNT}]]></variableExpression>
</variable>
<group name="nameGroup">
<groupExpression><![CDATA[$F{name}]]></groupExpression>
</group>
<detail>
<band height="36" splitType="Stretch">
<textField isBlankWhenNull="true">
<reportElement positionType="Float" x="-20" y="-20" width="260" height="20" uuid="220a59b9-595b-4149-badd-f4a1ecff36c5"/>
<textElement>
<font fontName="Times New Roman" size="12"/>
</textElement>
<textFieldExpression><![CDATA[$F{name}]]></textFieldExpression>
</textField>
<textField evaluationTime="Auto" isBlankWhenNull="true">
<reportElement positionType="Float" x="0" y="0" width="100" height="20" isRemoveLineWhenBlank="true" uuid="afda4fcc-78fc-46f9-8c5c-2e0c4f04dfa5"/>
<textFieldExpression><![CDATA[$V{signatoryCurrentCount}.equals($V{nameGroup_COUNT}) ? "or" : ""]]></textFieldExpression>
</textField>
</band>
</detail>
</jasperReport>
如何避免在最后一条记录之后打印最后一个 textField?
解决方案
你可以尝试一个简单的事情,把2个变量放在你的报表中,我想你已经知道你的报表将包含多少页,然后将printWhenExpression
语句更改为你的页面的值,例如你的报表包含20页,然后在您的变量将打印条件更改PAGE_NUMBER==20
为PAGE_NUMBER < 20
另一个。祝你好运。
推荐阅读
- c# - 在应用设置中显示 UWP 应用的版本信息
- excel - Excel:使用中位数,如果在数组公式中给出的结果与手工挑选的单元格不同
- vue.js - 在运行时向 Vue 组件添加道具
- java - Java - 根据条件迭代地图列表
- linux - 如何更改 bash 脚本的 `echo` 输出?
- javascript - Angular 7:没有编译错误,但屏幕空白
- kubernetes - k8s、Ingress、Minio 和静态站点
- python - python中不同元素的组合
- python - 在列表中匹配和追加
- microsoft-graph-api - 通过 Microsoft Graph API 访问当前 SharePoint Online 用户的“喜欢”和“保存以供以后”文档/页面?