在单个带中具有多行时拉伸数据溢出的行
Posted
技术标签:
【中文标题】在单个带中具有多行时拉伸数据溢出的行【英文标题】:Stretch a row with data overflow while having multiple rows in a single band 【发布时间】:2012-05-11 20:28:52 【问题描述】:我的要求使我在一个“详细信息”带中拥有多行。
现在我在最左边的列中有一个静态文本字段(以颜色突出显示),旁边有三个文本数据字段。
我在报告中想要的是,当三个带中的任何一个中的数据溢出时,静态文本带和三个带应该在高度上拉伸,下一行“正确”显示在拉伸行下方。 “正确”是指下一行元素的“顶部”值应相同,并显示在同一“行”中。
我尝试将“Stretch with overflow”标志设置为“true”,将“Position”设置为“float”,但问题是下一行数据没有正确定位。
【问题讨论】:
我有答案,但我不能在这个评论框中发布它,字符限制。我也无法回答,因为我在问了这个问题 8 小时后找到了答案,而 *** 不允许我这样做。有人问类似的问题,我可以回答。 恰恰相反:您无法在前 8 小时内回答。现在就试试吧。 【参考方案1】:我找到了答案。解决方案的关键是将一行内的元素组合在一起。
-
删除所有静态文本标签。请改用文本字段,并将文本放在引号中。它们可以与其他文本字段和数据字段组合在一起。
将所有数据字段放在带引号的文本字段之后,与带引号的文本字段在同一组中。
现在,对要显示的所有行执行相同操作。单个行的单独组。
选择组中的所有元素,或者选择所有组中的所有元素,然后执行以下操作:
将“位置”设置为“浮动” 将“拉伸类型”设置为“相对于最高物体” 选中“详细信息溢出时打印”复选框。 选中“溢出时拉伸”复选框。这就是我们可以做的所有事情来让事情“伸展”在一起。
现在,乐队必须通过这些拉伸的细节动态拉伸。只需转到乐队属性,将拆分类型设置为“默认”并将允许拆分为真。这对我有用。
【讨论】:
我遇到了与我在此处提到的 link 相同的问题。就我而言,我想以不同的方式设置标签的样式,例如粗体标签。如果我将静态文本与“名称:”+Fname 之类的字段一起放置,那么如何分别格式化标签。另外,您能否向我们展示一些您实际如何对元素进行分组的屏幕截图?谢谢 @Ali,对不起,伙计,我现在无法访问 Jasper,但我相信这可以通过属性框完成。它必须非常简单,因为即使在我这里的情况下,我也将标签设置为粗体。我没有在这些帖子中提到这一点,因为它太简单明了。 我的列标题在标题行中的高度不同。解决方案是将stretchType="RelativeToBandHeight"
属性添加到我的<textField>
s 中的每个<reportElement>
标记,这些标记都被<band height="15" splitType="Stretch">
标记包围。【参考方案2】:
万一有人遇到这个问题,上面的答案不起作用。我建议检查你的 xml 的根元素。如果它具有以下属性,则将其删除:
printOrder="Horizontal"
那么上面的答案应该有效。
希望我能节省一天在谷歌上搜索相同内容的人。
【讨论】:
【参考方案3】:在我的情况下,按照你的建议做是行不通的。我不得不稍微修改您的解决方案 - 我制作了一个“框架”而不是对对象进行分组,并将之前分组的元素放在该框架中。我在该框架中设置 positionType="Float" 和 stretchType="No stretch",并将 stretchType="RelativeToTallestObject" 设置为其子项 - 然后一切正常。
【讨论】:
感谢您的回答。如果您添加您的 JasperServer 版本和其他重要细节,这对这里的每个人都会更好。 当然:产品版本:Jaspersoft iReport Designer 5.5.0;爪哇:1.7.0; Java HotSpot(TM) 64 位服务器 VM 21.0-b17;系统:Windows 7 版本。 6.1 在amd64上工作; CP1250; pl_PL(报告);我想这就是全部......以上是关于在单个带中具有多行时拉伸数据溢出的行的主要内容,如果未能解决你的问题,请参考以下文章