在单个波段中具有多行时,数据溢出会拉伸一行

问题描述 投票:20回答:3

我的要求绑定我在一个“详细信息”带中有多行。

现在我在最左边的列中有一个静态文本字段(以彩色突出显示),旁边有三个文本数据字段。

在我的报告中我想要的是,当三个波段中的任何一个中的数据溢出时,静态文本带以及三个波段应该在高度上拉伸,下一行“正确”显示在拉伸行的下方。 “正确”是指下一行元素的“顶部”值应该相同并显示在同一“行”中。

我尝试将“Stretch with overflow”标志设置为“true”,将“Position”设置为“float”,但问题是下一行数据未正确定位。

jasper-reports
3个回答
30
投票

我找到了答案。解决方案的关键是将行内的元素组合在一起。

  1. 删除所有静态文本标签。改为使用文本字段,文本用引号括起来。它们可以与其他文本字段和数据字段分组。
  2. 将引用文本字段后面的所有数据字段放在与引用文本字段相同的组中。
  3. 现在,对要显示的所有行执行相同操作。单个行的单独组。

选择组中的所有元素,或者选择所有组中的所有元素并执行以下操作:

  • 将“位置”设置为“浮动”
  • 将“拉伸类型”设置为“相对于最高的对象”
  • 选中“细节溢出时打印”复选框。
  • 选中“Stretch with overflow”复选框。

这就是我们可以做的事情,让事情“拉伸”在一起。

现在,乐队将不得不动态地伸展这些拉伸的细节。只需转到band属性,将Split type设置为“Default”并将split允许为true。这对我有用。


4
投票

万一有人遇到这个问题,上面的答案不起作用。我建议检查你的xml的根元素。如果它具有以下属性,则将其删除:

printOrder="Horizontal"

然后上面的答案应该工作。

希望我能在一天用Google搜索同样的东西。


3
投票

在我的情况下,按照你的建议做不起作用。我不得不稍微修改你的解决方案 - 我做了一个“框架”而不是分组对象,并在该框架中放置了一些预先分组的元素。我在该帧中设置了positionType =“Float”和stretchType =“No stretch”,并将stretchType =“RelativeToTallestObject”设置为其子项 - 然后一切正常。

© www.soinside.com 2019 - 2024. All rights reserved.