“如何在高度固定的框架中加入细节带?,截断为 4cm。”
jasper 报告的主要优势是扩展范围以包含您提供的所有内容..
这就是为什么我建议您重新考虑您的报告,不要试图截断内容,而是提供更少的内容。最快的是 limit 在您的详细信息带中显示的行。是的。
<detail>
<band height="35" splitType="Stretch">
<printWhenExpression><![CDATA[new Boolean($V{REPORT_COUNT}<=4)]]></printWhenExpression>
.... your textField's ...
</band>
</detail>
即使我的数据源提供 100 条记录,我也只会打印前 4 条记录。
没有丑陋的截断,相反,我们用一些逻辑来处理这种情况,有一天我们甚至可以将 4 转换为参数(例如,用户可以定义他喜欢多少条记录)或基于其他变量的变量content 定义了我们想要显示的行数...
编辑:添加了如何使用jr:list 组件实现此结果(无细节带)
如果你使用jr:list组件(你没有detail band),你需要在jr:listes内的组件上设置printWhenExpression和isRemoveLineWhenBlank="true"。
<jr:listContents height="20" width="100">
<textField>
<reportElement x="0" y="0" width="100" height="20" isRemoveLineWhenBlank="true" uuid="c65e627e-be7f-4bce-9976-f89c5ccc5d68">
<printWhenExpression><![CDATA[new Boolean($V{REPORT_COUNT}<=4)]]></printWhenExpression>
</reportElement>
<textFieldExpression><![CDATA[$F{theField}]]></textFieldExpression>
</textField>
</jr:listContents>
注意:new Boolean() 用于兼容 jasper report v3(5/6 版本不需要)