在我的碧玉报告中,我使用的是这样的元素:
<textField isStretchWithOverflow="true">
<reportElement style="alternateStyle" positionType="Float" stretchType="RelativeToTallestObject" x="292" y="0" width="85" height="30" uuid="b93b4e99-d6fb-4679-836d-9b198cb5fe1c"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font fontName="SMCustomFont" size="9" isBold="false"/>
<paragraph leftIndent="3"/>
</textElement>
<textFieldExpression><![CDATA[($F{SOMEEXP}]]></textFieldExpression>
</textField>
此处的uuid为“ b93b4e99-d6fb-4679-836d-9b198cb5fe1c”。
我的问题是,如果我对同一JRXML文件中的其他textField元素保持相同的UUID,会发生什么?
当我尝试时,报告生成良好。
答案 0 :(得分:3)
碧玉报告使用引擎中的UUID
来标识元素,例如参见SortElementJsonHandler.getCurrentSortField
。
Jasper社区论坛states的友好用户(员工)
UUID通常用于诸如表和交叉表之类的交互元素,以标识要排序/过滤/等的元素。它已在查看器和引擎级别使用,我不确定是否有可用的API可以使用UUID与元素进行交互。
就我所能see而言,在最简单的情况下,例如两个textField
,使用相同的UUID
是没有问题的,但是如果您拥有更复杂的结果,您可能会得到奇怪的结果具有多个相似组件的设计,它们都具有相同的UUID
如果您在原始jrxml中复制和粘贴元素/组件,请更改一个数字或删除UUID
,当保存在JasperSoft Studio中时,它将自动为您生成(如果不存在)。总的来说,我建议您将IDE用于所有操作(复制和过去操作等),就我个人而言,如果我需要对某些内容进行快速替换,则仅使用code / jrxml视图。