获取您使用的页面中字段的第一个和最后一个值变量 with 重置类型并设置正确的评估时间 on the textField
(您将需要使用 2 个文本字段将它们彼此正确对齐)
这个例子将展示如何获取first and last字段值$F{Last_Name}
on 每一页
页面中字段的第一个值
The 重置类型你的变量将是resetType="None"
<variable name="firstValueOnPage" class="java.lang.String" resetType="None">
<variableExpression><![CDATA[$F{Last_Name}]]></variableExpression>
</variable>
并在textField
,使用变量evalution="Now"
(这是默认的,所以不需要标签)
<textField>
<reportElement x="30" y="19" width="100" height="20" uuid="e6421031-6db7-4fd9-995f-94cef2eb3621"/>
<textFieldExpression><![CDATA[$V{firstValueOnPage}]]></textFieldExpression>
</textField>
页面中字段的最后一个值
The 重置类型你的变量是resetType="Page"
<variable name="lastValueOnPage" class="java.lang.String" resetType="Page">
<variableExpression><![CDATA[$F{Last_Name}]]></variableExpression>
</variable>
并在文本字段中使用变量evaluationTime="Page"
<textField evaluationTime="Page">
<reportElement x="170" y="19" width="100" height="20" uuid="9100baa5-0095-4dc3-ac79-2cd87562a92d"/>
<textFieldExpression><![CDATA[$V{lastValueOnPage}]]></textFieldExpression>
</textField>
为了仅获取第一个和最后一个值的第一个字符,我发现您已经弄清楚了,但是为了完成答案,textFieldExpression 将是
<textFieldExpression><![CDATA[($V{firstValueOnPage}!=null&&$V{firstValueOnPage}.length()>0)?String.valueOf($V{firstValueOnPage}.charAt(0)).toUpperCase():""]]></textFieldExpression>
现在只需将两个文本字段放在一起(正确对齐它们),您就会得到所需的结果。
一些额外的信息,以了解更多信息重置类型 and 评估时间 (from 碧玉报告 API 6.2.0 http://jasperreports.sourceforge.net/api/)
重置类型
None- 在数据源迭代期间,变量随着每条记录而递增Report- 在报告填充过程中,变量永远不会增加。
Page- 该变量随着每个新页面而递增。
Column- 变量随着每个新列而递增。
Group- 每次由incrementGroup属性指定的组中断时,变量都会递增
评估时间
Auto评估时间表明每个变量参与
表达式应该在引擎决定的时间进行计算。
Band该元素将在频段结束时进行评估。
Column一个常量,指定在填充每列后应计算表达式。Group一个常量,指定应在每个组中断后计算表达式。
Master用于在主报告结束时评估的元素。
Now一个常量,指定应在填充过程中遇到表达式时立即对其求值。
Page一个常量,指定在填充每个页面后应计算表达式。
Report一个常量,指定应在填充过程结束时计算表达式。