gpt4 book ai didi

java - 如何实现动态细节带高度(取决于文本长度)?

转载 作者:行者123 更新时间:2023-12-01 10:14:13 25 4
gpt4 key购买 nike

我在尝试找到解决方案时遇到了一些麻烦。

在我的报表中,我有一个子报表,其功能是打印与我正在打印的文档相关的人员的姓名。

此子报表只有一个文本字段,其中姓名是从Java代码导入的。

问题是,每当名字和姓氏太长而无法在一行中打印时,我必须在第二行中完成打印。

我尝试了两种方法来解决此问题(请忽略其他字段,nameAndSurname 是相关的):

1. 单个细节带,具有适合两行的高度。

One line

2. 双细节带。通过Java代码,我剪切了第二个姓氏并将其导入到第二个姓名和姓氏字段中。仅当条件 (nameAndSurnameTwo!=null) 为 true 时才打印第二个详细信息。

enter image description here

<小时/>

我还没有找到解决方案。问题是,无论是否打印第二行,细节带都会占用第二行空间。

在简历中,我需要的是一个带,它可以根据我必须打印的名字和姓氏的长度动态改变其高度。如果这些很短,只需一条线。仅当名字和姓氏的长度太长时,才必须占用两行空间。

最佳答案

这通常可以通过使用 isStretchWithOverflow 来解决

解决方案是使用:单个细节带,一条线具有适当的高度。将 textField 上的属性设置为 isStretchWithOverflow="true"

示例

<detail>
<band height="20">
<textField isStretchWithOverflow="true">
<reportElement stretchType="RelativeToTallestObject" x="0" y="0" width="133" height="20" uuid="728a0280-ae29-425a-ab57-3ac78855de58"/>
<textFieldExpression><![CDATA[$F{nameAndSurname}]]></textFieldExpression>
</textField>
</band>
</detail>

我还建议使用stretchType="RelativeToTallestObject"在所有其他文本元素上,以便在您的文本字段溢出时它们也会拉伸(stretch)。

此外,如果您想强制拉伸(stretch),例如您希望姓氏显示在第二行,只需添加 \n示例Petter\nFriberg或使用 html <br/>将标记设置为 html。

关于java - 如何实现动态细节带高度(取决于文本长度)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36006107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com