Вопрос по ireport, jasper-reports – Таблица iReport с дополнительной записью, повторяющейся для каждой строки

4

Я искал по всему Интернету, а также на этом форуме, но не могу найти способ достичь чего-то подобного таблице ниже. Я используюiReport 4.7.1.

Пожалуйста, могли бы дать мне подсказку?

enter image description here

Как я правильно понялDetails about row # этоadditional record в вашей терминологии. Я прав? Вы можете опубликовать свойjrxml файл? Alex K
Да,Details about row # это дополнительная запись, которую я хочу охватить по всем столбцам, как на картинке выше. Я не могу дать вам файл jrxml, потому что его нет. Все мои предыдущие попытки провалились, поэтому мне нечего показать, кроме того, чего я хочу достичь. Andrei T

Ваш Ответ

1   ответ
6

textField элемент кDetail полоса нижеtextFields с полями.

Вот образец.

Дизайн отчета вiReport:

The report's design in iReport

jrxml файл:

<?xml version="1.0" encoding="UTF-8"?>
<jasperReport ..>
    <queryString>
        <![CDATA[SELECT id, street, city FROM ADDRESS]]>
    </queryString>
    <field name="ID" class="java.lang.Integer"/>
    <field name="STREET" class="java.lang.String"/>
    <field name="CITY" class="java.lang.String"/>
    <columnHeader>
        <band height="20" splitType="Stretch">
            <staticText>
                <reportElement x="0" y="0" width="100" height="20"/>
                <box>
                    <topPen lineWidth="1.0"/>
                    <leftPen lineWidth="1.0"/>
                    <bottomPen lineWidth="1.0"/>
                    <rightPen lineWidth="1.0"/>
                </box>
                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font isBold="true" isItalic="true"/>
                </textElement>
                <text><![CDATA[Id]]></text>
            </staticText>
            <staticText>
                <reportElement x="100" y="0" width="100" height="20"/>
                <box>
                    <topPen lineWidth="1.0"/>
                    <leftPen lineWidth="1.0"/>
                    <bottomPen lineWidth="1.0"/>
                    <rightPen lineWidth="1.0"/>
                </box>
                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font isBold="true" isItalic="true"/>
                </textElement>
                <text><![CDATA[City]]></text>
            </staticText>
            <staticText>
                <reportElement x="200" y="0" width="100" height="20"/>
                <box>
                    <topPen lineWidth="1.0"/>
                    <leftPen lineWidth="1.0"/>
                    <bottomPen lineWidth="1.0"/>
                    <rightPen lineWidth="1.0"/>
                </box>
                <textElement textAlignment="Center" verticalAlignment="Middle">
                    <font isBold="true" isItalic="true"/>
                </textElement>
                <text><![CDATA[Street]]></text>
            </staticText>
        </band>
    </columnHeader>
    <detail>
        <band height="40" splitType="Stretch">
            <textField>
                <reportElement x="0" y="0" width="100" height="20"/>
                <box leftPadding="10">
                    <topPen lineWidth="1.0"/>
                    <leftPen lineWidth="1.0"/>
                    <bottomPen lineWidth="1.0"/>
                    <rightPen lineWidth="1.0"/>
                </box>
                <textElement/>
                <textFieldExpression><![CDATA[$F{ID}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="100" y="0" width="100" height="20"/>
                <box leftPadding="10">
                    <topPen lineWidth="1.0"/>
                    <leftPen lineWidth="1.0"/>
                    <bottomPen lineWidth="1.0"/>
                    <rightPen lineWidth="1.0"/>
                </box>
                <textElement/>
                <textFieldExpression><![CDATA[$F{CITY}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="200" y="0" width="100" height="20"/>
                <box leftPadding="10">
                    <topPen lineWidth="1.0"/>
                    <leftPen lineWidth="1.0"/>
                    <bottomPen lineWidth="1.0"/>
                    <rightPen lineWidth="1.0"/>
                </box>
                <textElement/>
                <textFieldExpression><![CDATA[$F{STREET}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="0" y="20" width="300" height="20"/>
                <box leftPadding="10">
                    <topPen lineWidth="1.0"/>
                    <leftPen lineWidth="1.0"/>
                    <bottomPen lineWidth="1.0"/>
                    <rightPen lineWidth="1.0"/>
                </box>
                <textElement/>
                <textFieldExpression><![CDATA["Details about row " + $V{REPORT_COUNT}]]></textFieldExpression>
            </textField>
        </band>
    </detail>
</jasperReport>

Результатом будет:

The result in iReport via preview

@AndreiT Добро пожаловать :)
@ AndreiT Как я знаю, нет.Table компонент не позволяет объединить несколько ячеек таким образом. На самом деле,Table Компонент имеет механизм группировки столбцов, но я не думаю, что он может помочь вам решить эту проблему
@AndreiT Вы также можете прочитатьTable Component: Merge cell пост иIs thare a easy way to merge cells наjasperforge.org
Спасибо большое, Алекс, но можно добиться того же результата, используя компонент таблицы? Andrei T
Перед публикацией здесь я уже пытался сгруппировать столбцы, но эта группировка доступна только в верхнем и нижнем колонтитуле таблицы, поэтому эта группированная запись не может повторяться для каждой записи из таблицы. Единственное решение предоставлено вами, и я еще раз благодарю вас за вашу проблему. Andrei T

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