Вопрос по jasper-reports – Избегайте разделения текстового поля на несколько страниц

3

У меня есть основной отчет и в основном отчете под названием это:

<detail>
    <band height="50">
        <subreport>
            <reportElement x="0" y="1" width="802" height="49" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true"/>
            <subreportParameter name="project_id">
                <subreportParameterExpression><![CDATA[$P{project_id}]]></subreportParameterExpression>
            </subreportParameter>
            <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
            <subreportExpression><![CDATA["subs/Project_planned.jasper"]]></subreportExpression>
        </subreport>
    </band>
</detail>

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

Текущий код текстового поля

                <textField isStretchWithOverflow="true" isBlankWhenNull="true">
                <reportElement stretchType="RelativeToBandHeight" x="555" y="0" width="99" height="21" isPrintInFirstWholeBand="true" forecolor="#000000"/>
                <box leftPadding="2">
                    <topPen lineWidth="1.0" lineColor="#000000"/>
                    <leftPen lineWidth="1.0" lineColor="#000000"/>
                    <bottomPen lineWidth="1.0" lineColor="#000000"/>
                    <rightPen lineWidth="1.0" lineColor="#000000"/>
                </box>
                <textElement verticalAlignment="Middle">
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <textFieldExpression><![CDATA[$F{logic}]]></textFieldExpression>
            </textField>

Пример того, как это выглядит (извините за отсутствующие данные):

avoid split of text field on multiple pages

Ваш Ответ

1   ответ
10

Да, есть, но не в текстовом поле. Для полосы, в которой находится текстовое поле, вы можете установить тип разделения наPrevent, если вы установите его в Detail Band, и строка должна быть переполнена на следующую страницу, она переместит всю строку на следующую страницу.

Я изменил его, добавив новую переменную и сбросив ее по группам вместо страницы. На данный момент это решает проблему. Спасибо за ваш ответ и комментарий. Отчеты Джаспера велики и безграничны, но иногда боль в заднице ;-) Michel
Я пробовал это в iReport, но каждый раз, когда я выбираю эту опцию, она меняется обратно на<default> Поэтому я думаю, что это было невозможно в моей ситуации, но когда я жестко закодировал это в XML:<band height="50" splitType="Prevent"> все еще не работает ... другое предложение? Michel
Я нашел проблему. Я настроил подотчет в полосе подробностей основного отчета. Это происходит в несколько странном поведении. Теперь я настраиваю подотчет в нижнем колонтитуле страницы, и это, похоже, решает мою проблему, за исключением того, что мой заголовок главной страницы теперь не отображается на каждой странице Michel
То, что я помню, не решаемо. По сути, происходит то, что он помещает последнюю строку, счетчики обновляются, затем он может сказать, что строка не помещается, и перемещает ее на следующую страницу. Возможно, вы захотите открыть еще один вопрос с просьбой о помощи, возможно, кто-то узнает решение для этого. Сожалею.
еще один комментарий: я решил это. Не знаю, как именно, но, похоже, это исправлено. Подотчет до сих пор в деталях, полоса основного отчёта. splitType детализации подотчета наPrevent и следующие свойства текстовых полей:stretchType="RelativeToBandHeight" height="21" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true" Michel

Похожие вопросы