Как избежать отсутствия границы ячейки, когда запись разделена между двумя страницами?

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

Вот результат:

введите здесь описание изображения

Как переместить последнюю запись (№ 26) на следующую страницу или как показать строку?


person Hariawan    schedule 15.01.2012    source источник


Ответы (2)


Вы можете поместить элемент staticText без текста за элементом textField. Вы должны установить свойство stretchType со значением RelativeToTallestObject и свойство isPrintWhenDetailOverflows со значением истинное значение.

Пример:

<detail>
    <band height="20" splitType="Stretch">
        <staticText>
            <reportElement stretchType="RelativeToTallestObject" x="0" y="0" width="100" height="20" isPrintWhenDetailOverflows="true"/>
            <box>
                <leftPen lineWidth="1.0"/>
                <bottomPen lineWidth="1.0"/>
                <rightPen lineWidth="1.0"/>
            </box>
            <textElement/>
            <text><![CDATA[]]></text>
        </staticText>
        <textField>
            <reportElement stretchType="RelativeToTallestObject" x="0" y="0" width="100" height="20"/>
            <box>
                <leftPen lineWidth="1.0"/>
                <bottomPen lineWidth="1.0"/>
                <rightPen lineWidth="1.0"/>
            </box>
            <textElement/>
            <textFieldExpression><![CDATA[$F{id}]]></textFieldExpression>
        </textField>

В результате вы получите вертикальную границу на второй странице.

Текст из полученного файла PDF с вертикальной рамкой после использования статического текста

Результат до добавления второго staticText был (вертикальная рамка на второй странице отсутствует):

Текст из полученного файла PDF без вертикальной границы перед использованием статического текста

person Alex K    schedule 15.01.2012
comment
Я пробовал путь успеха, но для каждой строки есть повторяющиеся строки. Как этого избежать? это мои фотографии i.stack.imgur.com/mFIKl.jpg - person Amin SCO; 31.10.2012

Лучший способ — убедиться, что новые элементы в полосе «Подробности» (или любой полосе) будут генерироваться на следующей странице путем настройки, а не в текстовом поле. Для полосы, в которой находится текстовое поле, вы можете установить тип разделения на «Предотвратить». если вы установите это на полосе сведений, а строка должна перейти на следующую страницу, она переместит всю строку на следующую страницу.

person martinnovoty    schedule 23.10.2012