Jasper Report横向列表无法按水平顺序换行排列问题
jr:list组件实现水平排列换行的解决方案
- 抛弃
jr:list自带的多列填充逻辑,改用横向容器+单行列表的组合:- 创建一个宽度适配父容器的
Panel,设置printOrder="Horizontal"并开启overflow="Wrap",这个面板负责控制元素换行。 - 在该面板内嵌入
jr:list,将列表的columns设为1,同时指定layout="Horizontal",让列表项横向依次排列。 - 给列表内的单元格设置固定宽度(比如
80px),确保容器能准确判断何时换行。
- 创建一个宽度适配父容器的
- 核心配置示例:
<panel printOrder="Horizontal" overflow="Wrap" width="100%"> <jr:list printOrder="Horizontal" columns="1" layout="Horizontal" dataSource="..." width="100%"> <!-- 你的列表项内容,设置固定width --> <textField width="80px"><textFieldExpression>$F{yourField}</textFieldExpression></textField> </jr:list> </panel> - 备选方案:如果
jr:list仍有问题,直接用jr:forEach循环渲染单个元素,把所有元素放在开启overflow="Wrap"的横向Panel中,彻底避开列表的列填充机制。
内容的提问来源于stack exchange,提问作者noogel
相关产品推荐
相关产品推荐

