JasperReports: positionType = '' Float '' работает вообще для staticText? - PullRequest
6 голосов
/ 05 декабря 2008

Мне нужно иметь 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. Кажется, это работает, НО ... возможно, они меня преследуют? 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.

Нет, мы не видим, как это игнорируется, потому что у = 25, где мы и ожидали! positionType="Float" работает на staticText вообще? Спасибо!

Ответы [ 2 ]

6 голосов
/ 23 декабря 2008

Мое понимание плавающей природы заключается в том, что плавающий объект будет двигаться вниз при необходимости, но если предыдущий объект меньше ожидаемого, он не будет двигаться вверх.

Я не припомню, чтобы у меня возникали проблемы с плавающими объектами, которые фактически не плавали вниз при необходимости, будь то статический текст или текстовые поля.

С другой стороны, если вы обнаружите, что текстовое поле работает, вы можете использовать его для отображения статического текста, поместив текст в кавычки в значение текстового поля (сделав его объектом Java).

3 голосов
/ 11 декабря 2008

Этот ответ применяется (разные элементы, одна и та же ситуация).

Одна вещь, которую я не понял из примера книги, - это то, что объявленная высота textField (24) меньше, чем фактическая высота, когда элемент растянут. Таким образом, y = "25" в staticText будет отображаться над его фактическим положением; элемент фактически уплыл!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...