如果我在报告中有相同的重复 UUID 会怎样?

What happens if I have same duplicate UUID in report?

在我的 jasper 报告中,我使用了类似这样的元素:

<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 文件中的其他一些文本字段元素保持相同的 UUID 会发生什么情况,UUID 的意义是什么?

当我尝试时,报告生成正常。

Jasper 报告使用引擎中的 UUID 来标识元素,例如参见 [​​=17=]。

Jasper 社区论坛的友好用户(员工)states

UUID is used mostly for the interactive elements like tables and crosstabs to identify the elements for sorting/filtering/etc. It's used in the viewer and on the engine level, I am not sure there is useful API available to interact with elements using UUID.

也尽我所能 see,在大多数简单的情况下,例如两个 textField 具有相同的 UUID 没有问题,但是如果您有具有多个相似组件的更复杂的设计,并且所有组件都具有相同的 UUID

使用IDE,您无需担心。

如果您在原始 jrxml 中复制并粘贴 elements/components,更改数字或删除 UUID,当保存在 JasperSoft Studio 中时,如果没有,它将自动为您生成存在。总的来说,我建议您对所有操作(复制和过去等)使用 IDE,就我个人而言,如果我需要快速替换某些内容等,我只使用 code/jrxml 视图。