Применить группу на стол
Я хочу применить к моему компоненту таблицы группу для иерархического отображения данных.
У меня есть объект Java с именем MASTER.
это имеет два атрибута:
- имя (строка)
- lstInfo (список другого объекта с именем SLAVE)
Я хочу построить таблицу, сгруппированную по master.name, чтобы показать все lstInfo, связанные с главным объектом.
Я пытаюсь добавить в свой компонент DataSet атрибут группы, и моя таблица определена следующим образом:
- Имя первого столбца
- Второй столбец lstInfo
Но когда я запускаю свой отчет, покажите эту ошибку:
Infinite loop creating new page due to column header overflow.
Для получения дополнительной информации: я использую iReport 5.2.0 в качестве IDE, чтобы нарисовать свой отчет
РЕДАКТИРОВАТЬ
<jr:column width="90" uuid="e562503c-d39f-47e3-b50a-04669ebe1d33">
<jr:tableHeader style="table 1_TH" height="30"/>
<jr:tableFooter style="table 1_TH" height="30"/>
<jr:groupHeader groupName="grpMaster">
<jr:cell style="table 1_TH" height="30">
<textField>
<reportElement uuid="e7e52c98-1631-4237-a11b-6167acbf4e01" x="0" y="0" width="90" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[""+$F{master.name}]]></textFieldExpression>
</textField>
</jr:cell>
</jr:groupHeader>
<jr:groupFooter groupName="grpMaster">
<jr:cell style="table 1_TH" height="30"/>
</jr:groupFooter>
<jr:columnHeader style="table 1_CH" height="30">
<staticText>
<reportElement uuid="85a422bc-2d60-4cd2-8058-ffbc8f18b69c" x="0" y="0" width="90" height="30"/>
<textElement/>
<text><![CDATA[master.name]]></text>
</staticText>
</jr:columnHeader>
<jr:columnFooter style="table 1_CH" height="30"/>
<jr:detailCell style="table 1_TD" height="20"/>
</jr:column>
<jr:column width="90" uuid="e47bd6ce-098d-447c-ae54-0639110ce45e">
<jr:tableHeader style="table 1_TH" height="30"/>
<jr:tableFooter style="table 1_TH" height="30"/>
<jr:groupHeader groupName="grpMaster">
<jr:cell style="table 1_TH" height="30"/>
</jr:groupHeader>
<jr:groupFooter groupName="grpMaster">
<jr:cell style="table 1_TH" height="30"/>
</jr:groupFooter>
<jr:columnHeader style="table 1_CH" height="30">
<staticText>
<reportElement uuid="de0366d9-3e7e-42ce-a755-279bcbbf4b81" x="0" y="0" width="90" height="30"/>
<textElement/>
<text><![CDATA[lstInfo]]></text>
</staticText>
</jr:columnHeader>
<jr:columnFooter style="table 1_CH" height="30"/>
<jr:detailCell style="table 1_TD" height="20">
<textField>
<reportElement uuid="2a8a5b05-49df-4f92-8cb0-65a2166ebf87" x="0" y="0" width="90" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[""+$F{lstInfo}]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
1 ответ
Решение
Я изменил свою точку зрения.
Вместо этого используйте объект с коллекцией, я создал матрицу данных.
Таким образом, я могу группировать из набора полей, и таблица отображается правильно.