我需要让staticText
浮动到另一个具有可变高度的元素下面。我正在从书JasperReports for Java Programmers
中取样。它说可以做到这一点。与我的示例的不同之处在于我在textFieldExpression
中使用了一个硬编码字符串,它们使用$ F {}字段。
<textField isStretchWithOverflow="true" hyperlinkType="None">
<reportElement x="0" y="0" width="100" height="24"/>
<box>
<pen lineWidth="0.5" lineStyle="Solid"/>
</box>
<textElement/>
<textFieldExpression class="java.lang.String"><![CDATA["jjjjjjjjjjj oooooooooo uuuuuuuuuu aaaaaaaaaa xxxxxxxxx u ttttt"]]></textFieldExpression>
</textField>
<staticText>
<reportElement positionType="Float" x="0" y="25" width="500" height="30"/>
<box>
<pen lineWidth="0.5" lineStyle="Solid"/>
</box>
<textElement/>
<text><![CDATA[ This staticText element has a positionType of "Float" ppp ]]></text>
</staticText>
它表示当您使用positionType="Float"
时,会忽略y属性,因为staticText
位于textField
下方。这似乎有效,但是......他们可能是我的BS吗? textField
的y = 0,高度= 24。 staticText
的y = 25。巧合?如果我更改staticText
的y,很明显它不会被忽略:元素位于我告诉它的任何地方。没有漂浮!!!
从书中引用:
As we can see, setting the positionType attribute of <reportElement> to Float made JasperReports ignore the y position of the <staticText> element, which was pushed down by the stretched <textField> element.
不,我们不知道它是如何被忽略的,因为y = 25是我们所期望的!
positionType="Float"
是否适用于staticText
?
谢谢!
答案 0 :(得分:6)
我对浮动性质的理解是浮动物体会在必要时向下移动,但如果前一个物体小于预期,它就不会向上移动。
我不记得在必要时浮动对象实际上没有浮动的任何问题,无论它们是静态文本还是文本字段。
另一方面,如果您发现文本字段有效,则可以使用它来显示静态文本,方法是在文本字段值中将文本放在引号中(使其成为Java对象)。
答案 1 :(得分:3)
This answer适用(不同的元素,相同的情况)。
我从书中的样本中没有看到的一件事是textField的声明高度(24)小于元素拉伸时的实际高度。因此,staticText上的y =“25”将映射到其实际位置之上;该元素实际上已经下降了!