2008-12-05 10 views
6

Ich brauche eine staticText, um unter einem anderen Element mit variabler Höhe zu schweben. Ich nehme eine Probe aus dem Buch JasperReports for Java Programmers. Es sagt, dass es möglich ist, es zu tun. Der Unterschied zu meinem Beispiel besteht darin, dass ich eine fest codierte Zeichenfolge in textFieldExpression verwende, die ein Feld $ F {} verwendet.JasperReports: Funktioniert positionType = '' Float 'überhaupt für staticText?

<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> 

Er sagt, dass, wenn Sie positionType="Float" verwenden, wird das y-Attribut ignoriert, weil die staticText unter den textField positioniert ist. Dies scheint zu funktionieren, ABER ... ist es möglich, dass sie mich BS'en? Die textField hat y = 0 und Höhe = 24. Die staticText hat y = 25. Zufall? Wenn ich das staticTexts y ändere, ist es offensichtlich, dass es nicht ignoriert wird: das Element wird positioniert, wo auch immer ich es erzähle. Es gibt kein Schwimmen !!! Zitat aus dem Buch:

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.

Nein, wir nicht sehen, wie es ignoriert wird, weil y = 25 ist, wo wir es erwartet haben! Funktioniert positionType="Float" überhaupt für staticText? Danke!

Antwort

2

This answer gilt (verschiedene Elemente, gleiche Situation).

Eine Sache, die ich nicht richtig aus dem Beispiel des Buches genommen habe, ist, dass die deklarierte Höhe von textField (24) kleiner ist als die tatsächliche Höhe, wenn das Element gestreckt wird. So würde y = "25" auf dem staticText über seiner tatsächlichen Position abbilden; das Element ist tatsächlich schwebend!

5

Mein Verständnis der schwebenden Natur ist, dass das schwebende Objekt bei Bedarf nach unten bewegt wird, aber wenn das vorherige Objekt kleiner als erwartet ist, bewegt es sich nicht nach oben.

Ich kann mich nicht erinnern, irgendwelche Probleme mit schwebenden Objekten zu haben, die nicht wirklich herunterschweben, wenn es notwendig ist, ob sie statischer Text oder Textfelder sind. Wenn ein Textfeld funktioniert, können Sie es verwenden, um statischen Text anzuzeigen, indem Sie den Text in Anführungszeichen in den Textfeldwert setzen (wodurch es zu einem Java-Objekt wird).

Verwandte Themen