Search code examples
jasper-reports

How to create a table with repeating the parent element values in Jasper report


I have a requirement to create a table using JSON data using Jasperstudio 6.2.12 and export it to .xlsx format. I'm able to create the table as shown below:

The requirement I have is to iterate the values in A, B, C, and D columns based on the number of rows in the E and F columns. The expected output is: enter image description here

The JSON data I've used to print the table is :

{
"root": [{
        "firstName": "John",
        "lastName": "Doe",
        "accounts": [{
            "bank": "LLOYDS",
            "accountNumber": 123456,
            "references": [{
                    "name": "Eva Doe",
                    "refAccountNumber": 6549873

                },
                {
                    "name": "Robin Doe",
                    "refAccountNumber": 3216545

                },
                {
                    "name": "Peter Doe",
                    "refAccountNumber": 9876549

                }
            ]

        }]
    },
    {
        "firstName": "James",
        "lastName": "Doe",
        "accounts": [{
            "bank": "HSBC",
            "accountNumber": 654321,
            "references": [{
                    "name": "Sam Doe",
                    "refAccountNumber": 6549873

                },
                {
                    "name": "Roger Doe",
                    "refAccountNumber": 3216545

                },
                {
                    "name": "Jason Doe",
                    "refAccountNumber": 9876549

                }
            ]

        }]
    }
]}

JRXML:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.13.0.final using JasperReports Library version 6.13.0-46ada4d1be8f3c5985fd0b6146f3ed44caed6f05  -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="accounts" pageWidth="842" pageHeight="595" orientation="Landscape" columnWidth="802" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="066cfa9f-bcf0-4095-8d82-a5ef1cb8632d">
    <property name="com.jaspersoft.studio.data.defaultdataadapter" value="Test"/>
    <property name="net.sf.jasperreports.export.xls.one.page.per.sheet" value="true"/>
    <property name="net.sf.jasperreports.export.xls.remove.empty.space.between.rows" value="true"/>
    <property name="net.sf.jasperreports.export.xls.remove.empty.space.between.columns" value="true"/>
    <property name="net.sf.jasperreports.export.xls.white.page.background" value="false"/>
    <property name="net.sf.jasperreports.export.xls.detect.cell.type" value="true"/>
    <property name="net.sf.jasperreports.export.xls.ignore.graphics" value="false"/>
    <property name="net.sf.jasperreports.page.break.no.pagination" value="apply"/>
    <property name="net.sf.jasperreports.export.xls.sheet.names.all" value="Accounts"/>
    <property name="net.sf.jasperreports.export.xls.freeze.row" value="1"/>
    <property name="net.sf.jasperreports.print.keep.full.text" value="true"/>
    <property name="net.sf.jasperreports.exports.xls.font.size.fix.enabled" value="false"/>
    <property name="maximumRowsPerSheet" value="0"/>
    <style name="Table_TH" mode="Opaque" backcolor="#F0F8FF">
        <box>
            <pen lineWidth="0.5" lineColor="#000000"/>
            <topPen lineWidth="0.5" lineColor="#000000"/>
            <leftPen lineWidth="0.5" lineColor="#000000"/>
            <bottomPen lineWidth="0.5" lineColor="#000000"/>
            <rightPen lineWidth="0.5" lineColor="#000000"/>
        </box>
    </style>
    <style name="Table_CH" mode="Opaque" backcolor="#BFE1FF">
        <box>
            <pen lineWidth="0.5" lineColor="#000000"/>
            <topPen lineWidth="0.5" lineColor="#000000"/>
            <leftPen lineWidth="0.5" lineColor="#000000"/>
            <bottomPen lineWidth="0.5" lineColor="#000000"/>
            <rightPen lineWidth="0.5" lineColor="#000000"/>
        </box>
    </style>
    <style name="Table_TD" mode="Opaque" backcolor="#FFFFFF">
        <box>
            <pen lineWidth="0.5" lineColor="#000000"/>
            <topPen lineWidth="0.5" lineColor="#000000"/>
            <leftPen lineWidth="0.5" lineColor="#000000"/>
            <bottomPen lineWidth="0.5" lineColor="#000000"/>
            <rightPen lineWidth="0.5" lineColor="#000000"/>
        </box>
    </style>
    <subDataset name="AccountsDataset" uuid="73085770-27bc-42cb-b4db-edc97074de2c">
        <property name="com.jaspersoft.studio.data.defaultdataadapter" value="Test"/>
        <queryString language="json">
            <![CDATA[root.accounts]]>
        </queryString>
        <field name="bank" class="java.lang.String">
            <property name="net.sf.jasperreports.json.field.expression" value="bank"/>
            <fieldDescription><![CDATA[bank]]></fieldDescription>
        </field>
        <field name="accountNumber" class="java.lang.Integer">
            <property name="net.sf.jasperreports.json.field.expression" value="accountNumber"/>
            <fieldDescription><![CDATA[accountNumber]]></fieldDescription>
        </field>
        <field name="accoutType" class="java.lang.String">
            <property name="net.sf.jasperreports.json.field.expression" value="accoutType"/>
            <fieldDescription><![CDATA[accoutType]]></fieldDescription>
        </field>
        <field name="references" class="java.lang.String">
            <property name="net.sf.jasperreports.json.field.expression" value="references"/>
            <fieldDescription><![CDATA[references]]></fieldDescription>
        </field>
    </subDataset>
    <subDataset name="ReferencesDataset" uuid="b23c5f84-b106-4d89-a5d4-6287aa8bbdf7">
        <property name="com.jaspersoft.studio.data.defaultdataadapter" value="Test"/>
        <queryString language="json">
            <![CDATA[root.accounts.references]]>
        </queryString>
        <field name="name" class="java.lang.String">
            <property name="net.sf.jasperreports.json.field.expression" value="name"/>
            <fieldDescription><![CDATA[name]]></fieldDescription>
        </field>
        <field name="refAccountNumber" class="java.lang.Integer">
            <property name="net.sf.jasperreports.json.field.expression" value="refAccountNumber"/>
            <fieldDescription><![CDATA[refAccountNumber]]></fieldDescription>
        </field>
    </subDataset>
    <subDataset name="MainDataset" uuid="ab297ea1-81e6-4a6f-b90c-4ce1fb9521a2">
        <property name="com.jaspersoft.studio.data.defaultdataadapter" value="Test"/>
        <queryString language="json">
            <![CDATA[root]]>
        </queryString>
        <field name="firstName" class="java.lang.String">
            <property name="net.sf.jasperreports.json.field.expression" value="firstName"/>
            <fieldDescription><![CDATA[firstName]]></fieldDescription>
        </field>
        <field name="lastName" class="java.lang.String">
            <property name="net.sf.jasperreports.json.field.expression" value="lastName"/>
            <fieldDescription><![CDATA[lastName]]></fieldDescription>
        </field>
        <field name="email" class="java.lang.String">
            <property name="net.sf.jasperreports.json.field.expression" value="email"/>
            <fieldDescription><![CDATA[email]]></fieldDescription>
        </field>
        <field name="accounts" class="java.lang.String">
            <property name="net.sf.jasperreports.json.field.expression" value="accounts"/>
            <fieldDescription><![CDATA[accounts]]></fieldDescription>
        </field>
    </subDataset>
    <queryString language="json">
        <![CDATA[]]>
    </queryString>
    <field name="root" class="java.lang.String">
        <property name="net.sf.jasperreports.json.field.expression" value="root"/>
        <fieldDescription><![CDATA[root]]></fieldDescription>
    </field>
    <background>
        <band splitType="Stretch"/>
    </background>
    <detail>
        <band height="254" splitType="Stretch">
            <componentElement>
                <reportElement x="0" y="0" width="480" height="60" uuid="268fe625-e43f-48d5-90c7-f396d09cd88d">
                    <property name="com.jaspersoft.studio.layout" value="com.jaspersoft.studio.editor.layout.VerticalRowLayout"/>
                    <property name="com.jaspersoft.studio.table.style.table_header" value="Table_TH"/>
                    <property name="com.jaspersoft.studio.table.style.column_header" value="Table_CH"/>
                    <property name="com.jaspersoft.studio.table.style.detail" value="Table_TD"/>
                </reportElement>
                <jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
                    <datasetRun subDataset="MainDataset" uuid="67830a07-2594-4532-ae34-96829b8046da">
                        <dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("root")]]></dataSourceExpression>
                    </datasetRun>
                    <jr:column width="80" uuid="a8cf3aa0-1633-4f19-a908-6efbf55d2f75">
                        <property name="com.jaspersoft.studio.components.table.model.column.name" value="Column1"/>
                        <jr:columnHeader style="Table_CH" height="30" rowSpan="1">
                            <property name="com.jaspersoft.studio.unit.width" value="px"/>
                            <staticText>
                                <reportElement x="0" y="0" width="80" height="30" uuid="b89609d4-5cbb-4f5b-b470-c9f9f4ad9d26"/>
                                <textElement textAlignment="Center" verticalAlignment="Middle"/>
                                <text><![CDATA[First Name]]></text>
                            </staticText>
                        </jr:columnHeader>
                        <jr:detailCell style="Table_TD" height="30">
                            <textField>
                                <reportElement x="0" y="0" width="80" height="30" uuid="ec954e2c-43e4-43ba-9005-03272b9daad5"/>
                                <textElement textAlignment="Center" verticalAlignment="Middle"/>
                                <textFieldExpression><![CDATA[$F{firstName}]]></textFieldExpression>
                            </textField>
                        </jr:detailCell>
                    </jr:column>
                    <jr:column width="80" uuid="e7f5cfca-a803-485d-be01-5d2f785fbf0b">
                        <property name="com.jaspersoft.studio.components.table.model.column.name" value="Column2"/>
                        <jr:columnHeader style="Table_CH" height="30" rowSpan="1">
                            <property name="com.jaspersoft.studio.unit.width" value="px"/>
                            <staticText>
                                <reportElement x="0" y="0" width="80" height="30" uuid="0a2eb2ed-75b9-46c3-8751-871c5473c3e1"/>
                                <textElement textAlignment="Center" verticalAlignment="Middle"/>
                                <text><![CDATA[Last Name]]></text>
                            </staticText>
                        </jr:columnHeader>
                        <jr:detailCell style="Table_TD" height="30">
                            <textField>
                                <reportElement x="0" y="0" width="80" height="30" uuid="767b9d15-53e5-4a0b-be8c-ec94fc6398f8"/>
                                <textElement textAlignment="Center" verticalAlignment="Middle"/>
                                <textFieldExpression><![CDATA[$F{lastName}]]></textFieldExpression>
                            </textField>
                        </jr:detailCell>
                    </jr:column>
                    <jr:column width="80" uuid="c7103510-df1d-4c31-a30f-9b726540dd7a">
                        <property name="com.jaspersoft.studio.components.table.model.column.name" value="Column3"/>
                        <jr:columnHeader style="Table_CH" height="30" rowSpan="1">
                            <property name="com.jaspersoft.studio.unit.width" value="px"/>
                            <staticText>
                                <reportElement x="0" y="0" width="80" height="30" uuid="11192151-2c03-4590-91f7-87021b022301"/>
                                <textElement textAlignment="Center" verticalAlignment="Middle"/>
                                <text><![CDATA[Bank]]></text>
                            </staticText>
                        </jr:columnHeader>
                        <jr:detailCell style="Table_TD" height="30">
                            <componentElement>
                                <reportElement x="0" y="0" width="80" height="30" uuid="8b2678af-1b87-49e6-aca2-af0cec3d7a46"/>
                                <jr:list printOrder="Vertical">
                                    <datasetRun subDataset="AccountsDataset" uuid="faa7fa1c-7169-48fb-aac2-7483a2477998">
                                        <dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("accounts")]]></dataSourceExpression>
                                    </datasetRun>
                                    <jr:listContents height="30" width="80">
                                        <textField>
                                            <reportElement x="0" y="0" width="80" height="30" uuid="97ec29f7-36f2-4ecc-9f30-3049e0648e97"/>
                                            <textElement textAlignment="Center" verticalAlignment="Middle"/>
                                            <textFieldExpression><![CDATA[$F{bank}]]></textFieldExpression>
                                        </textField>
                                    </jr:listContents>
                                </jr:list>
                            </componentElement>
                        </jr:detailCell>
                    </jr:column>
                    <jr:column width="80" uuid="5a4bb23a-7d61-486b-91f8-b5150cb85817">
                        <property name="com.jaspersoft.studio.components.table.model.column.name" value="Column4"/>
                        <jr:columnHeader style="Table_CH" height="30" rowSpan="1">
                            <property name="com.jaspersoft.studio.unit.width" value="px"/>
                            <staticText>
                                <reportElement x="0" y="0" width="80" height="30" uuid="30680d44-df3b-484e-b059-399e0a21b304"/>
                                <textElement textAlignment="Center" verticalAlignment="Middle"/>
                                <text><![CDATA[Account Number]]></text>
                            </staticText>
                        </jr:columnHeader>
                        <jr:detailCell style="Table_TD" height="30">
                            <componentElement>
                                <reportElement x="0" y="0" width="80" height="30" uuid="d7780443-ba11-4d20-944d-4f8210a74506"/>
                                <jr:list printOrder="Vertical">
                                    <datasetRun subDataset="AccountsDataset" uuid="2c245f1d-7a8f-46dc-85c3-737b5b0bc5a1">
                                        <dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("accounts")]]></dataSourceExpression>
                                    </datasetRun>
                                    <jr:listContents height="30" width="80">
                                        <textField>
                                            <reportElement x="0" y="0" width="80" height="30" uuid="ba6b13f3-770d-4a02-b3f0-5d4293393cd3"/>
                                            <textElement textAlignment="Center" verticalAlignment="Middle"/>
                                            <textFieldExpression><![CDATA[$F{accountNumber}]]></textFieldExpression>
                                        </textField>
                                    </jr:listContents>
                                </jr:list>
                            </componentElement>
                        </jr:detailCell>
                    </jr:column>
                    <jr:column width="80" uuid="0720c554-a0af-4192-a669-38cea560a2e2">
                        <property name="com.jaspersoft.studio.components.table.model.column.name" value="Column5"/>
                        <jr:columnHeader style="Table_CH" height="30" rowSpan="1">
                            <property name="com.jaspersoft.studio.unit.width" value="px"/>
                            <staticText>
                                <reportElement x="0" y="0" width="80" height="30" uuid="98adb234-9003-4704-85e4-295538f4273c"/>
                                <textElement textAlignment="Center" verticalAlignment="Middle"/>
                                <text><![CDATA[Ref Name]]></text>
                            </staticText>
                        </jr:columnHeader>
                        <jr:detailCell style="Table_TD" height="30">
                            <componentElement>
                                <reportElement x="0" y="0" width="80" height="30" uuid="faf83492-91ac-4a39-9483-512d6555c3d3"/>
                                <jr:list printOrder="Vertical">
                                    <datasetRun subDataset="ReferencesDataset" uuid="832a218b-199c-4055-9891-0afaf629bf50">
                                        <dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("accounts.references")]]></dataSourceExpression>
                                    </datasetRun>
                                    <jr:listContents height="30" width="80">
                                        <textField>
                                            <reportElement x="0" y="0" width="80" height="30" uuid="955502f3-afec-40aa-a8f8-b5e83d43bcbc"/>
                                            <textElement textAlignment="Center" verticalAlignment="Middle"/>
                                            <textFieldExpression><![CDATA[$F{name}]]></textFieldExpression>
                                        </textField>
                                    </jr:listContents>
                                </jr:list>
                            </componentElement>
                        </jr:detailCell>
                    </jr:column>
                    <jr:column width="80" uuid="2aed257e-00f2-4594-a9ac-9b504262ee3e">
                        <property name="com.jaspersoft.studio.components.table.model.column.name" value="Column6"/>
                        <jr:columnHeader style="Table_CH" height="30" rowSpan="1">
                            <property name="com.jaspersoft.studio.unit.width" value="px"/>
                            <staticText>
                                <reportElement x="0" y="0" width="80" height="30" uuid="be058bb0-b9f3-4b41-b074-c1f44350eb09"/>
                                <textElement textAlignment="Center" verticalAlignment="Middle"/>
                                <text><![CDATA[Ref Account Number]]></text>
                            </staticText>
                        </jr:columnHeader>
                        <jr:detailCell style="Table_TD" height="30">
                            <componentElement>
                                <reportElement x="0" y="0" width="80" height="30" uuid="ed5f0c5e-8f14-4565-8159-b7528e035f3c"/>
                                <jr:list printOrder="Vertical">
                                    <datasetRun subDataset="ReferencesDataset" uuid="2c2d0c12-930c-45c5-a3a1-f8228fc78d7f">
                                        <dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("accounts.references")]]></dataSourceExpression>
                                    </datasetRun>
                                    <jr:listContents height="30" width="80">
                                        <textField>
                                            <reportElement x="0" y="0" width="80" height="30" uuid="59563298-0f0f-4b62-b263-511abb945d1a"/>
                                            <textElement textAlignment="Center" verticalAlignment="Middle"/>
                                            <textFieldExpression><![CDATA[$F{refAccountNumber}]]></textFieldExpression>
                                        </textField>
                                    </jr:listContents>
                                </jr:list>
                            </componentElement>
                        </jr:detailCell>
                    </jr:column>
                </jr:table>
            </componentElement>
        </band>
    </detail>
</jasperReport>

Please help me to iterate the values in A, B, C, and D columns based on the number of rows in the E and F columns and get the expected output. Thank you all so much!


Solution

  • The easiest way to do this is to use a single subdataset that has the fields from all levels of the JSON tree. To do that you'll have to switch to the JSONQL query executer, which allows you to map fields from the parent nodes of the ones selected by the data source.

    Once you have all the fields in a single dataset, you can use a simple table to display them.

    The report would look like this:

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- Created with Jaspersoft Studio version 6.13.0.final using JasperReports Library version 6.13.0-46ada4d1be8f3c5985fd0b6146f3ed44caed6f05  -->
    <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="accounts" pageWidth="842" pageHeight="595" orientation="Landscape" columnWidth="802" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="066cfa9f-bcf0-4095-8d82-a5ef1cb8632d">
        <property name="com.jaspersoft.studio.data.defaultdataadapter" value="Test"/>
        <property name="net.sf.jasperreports.export.xls.one.page.per.sheet" value="true"/>
        <property name="net.sf.jasperreports.export.xls.remove.empty.space.between.rows" value="true"/>
        <property name="net.sf.jasperreports.export.xls.remove.empty.space.between.columns" value="true"/>
        <property name="net.sf.jasperreports.export.xls.white.page.background" value="false"/>
        <property name="net.sf.jasperreports.export.xls.detect.cell.type" value="true"/>
        <property name="net.sf.jasperreports.export.xls.ignore.graphics" value="false"/>
        <property name="net.sf.jasperreports.page.break.no.pagination" value="apply"/>
        <property name="net.sf.jasperreports.export.xls.sheet.names.all" value="Accounts"/>
        <property name="net.sf.jasperreports.export.xls.freeze.row" value="1"/>
        <property name="net.sf.jasperreports.print.keep.full.text" value="true"/>
        <property name="net.sf.jasperreports.exports.xls.font.size.fix.enabled" value="false"/>
        <property name="maximumRowsPerSheet" value="0"/>
        <style name="Table_TH" mode="Opaque" backcolor="#F0F8FF">
            <box>
                <pen lineWidth="0.5" lineColor="#000000"/>
                <topPen lineWidth="0.5" lineColor="#000000"/>
                <leftPen lineWidth="0.5" lineColor="#000000"/>
                <bottomPen lineWidth="0.5" lineColor="#000000"/>
                <rightPen lineWidth="0.5" lineColor="#000000"/>
            </box>
        </style>
        <style name="Table_CH" mode="Opaque" backcolor="#BFE1FF">
            <box>
                <pen lineWidth="0.5" lineColor="#000000"/>
                <topPen lineWidth="0.5" lineColor="#000000"/>
                <leftPen lineWidth="0.5" lineColor="#000000"/>
                <bottomPen lineWidth="0.5" lineColor="#000000"/>
                <rightPen lineWidth="0.5" lineColor="#000000"/>
            </box>
        </style>
        <style name="Table_TD" mode="Opaque" backcolor="#FFFFFF">
            <box>
                <pen lineWidth="0.5" lineColor="#000000"/>
                <topPen lineWidth="0.5" lineColor="#000000"/>
                <leftPen lineWidth="0.5" lineColor="#000000"/>
                <bottomPen lineWidth="0.5" lineColor="#000000"/>
                <rightPen lineWidth="0.5" lineColor="#000000"/>
            </box>
        </style>
        <subDataset name="ReferencesDataset" uuid="b23c5f84-b106-4d89-a5d4-6287aa8bbdf7">
            <property name="com.jaspersoft.studio.data.defaultdataadapter" value="Test"/>
            <queryString language="jsonql">
                <![CDATA[root.accounts.references]]>
            </queryString>
            <field name="firstName" class="java.lang.String">
                <property name="net.sf.jasperreports.jsonql.field.expression" value="^^^^.firstName"/>
                <fieldDescription><![CDATA[firstName]]></fieldDescription>
            </field>
            <field name="lastName" class="java.lang.String">
                <property name="net.sf.jasperreports.jsonql.field.expression" value="^^^^.lastName"/>
                <fieldDescription><![CDATA[lastName]]></fieldDescription>
            </field>
            <field name="bank" class="java.lang.String">
                <property name="net.sf.jasperreports.jsonql.field.expression" value="^^.bank"/>
                <fieldDescription><![CDATA[bank]]></fieldDescription>
            </field>
            <field name="accountNumber" class="java.lang.Integer">
                <property name="net.sf.jasperreports.jsonql.field.expression" value="^^.accountNumber"/>
                <fieldDescription><![CDATA[accountNumber]]></fieldDescription>
            </field>
            <field name="name" class="java.lang.String">
                <property name="net.sf.jasperreports.jsonql.field.expression" value="name"/>
                <fieldDescription><![CDATA[name]]></fieldDescription>
            </field>
            <field name="refAccountNumber" class="java.lang.Integer">
                <property name="net.sf.jasperreports.jsonql.field.expression" value="refAccountNumber"/>
                <fieldDescription><![CDATA[refAccountNumber]]></fieldDescription>
            </field>
        </subDataset>
        <queryString language="jsonql">
            <![CDATA[]]>
        </queryString>
        <field name="root" class="java.lang.String">
            <property name="net.sf.jasperreports.json.field.expression" value="root"/>
            <fieldDescription><![CDATA[root]]></fieldDescription>
        </field>
        <background>
            <band splitType="Stretch"/>
        </background>
        <detail>
            <band height="254" splitType="Stretch">
                <componentElement>
                    <reportElement x="0" y="0" width="480" height="60" uuid="268fe625-e43f-48d5-90c7-f396d09cd88d">
                        <property name="com.jaspersoft.studio.layout" value="com.jaspersoft.studio.editor.layout.VerticalRowLayout"/>
                        <property name="com.jaspersoft.studio.table.style.table_header" value="Table_TH"/>
                        <property name="com.jaspersoft.studio.table.style.column_header" value="Table_CH"/>
                        <property name="com.jaspersoft.studio.table.style.detail" value="Table_TD"/>
                    </reportElement>
                    <jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
                        <datasetRun subDataset="ReferencesDataset" uuid="67830a07-2594-4532-ae34-96829b8046da">
                            <dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JsonQLDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("root.accounts.references.*")]]></dataSourceExpression>
                        </datasetRun>
                        <jr:column width="80" uuid="a8cf3aa0-1633-4f19-a908-6efbf55d2f75">
                            <property name="com.jaspersoft.studio.components.table.model.column.name" value="Column1"/>
                            <jr:columnHeader style="Table_CH" height="30" rowSpan="1">
                                <property name="com.jaspersoft.studio.unit.width" value="px"/>
                                <staticText>
                                    <reportElement x="0" y="0" width="80" height="30" uuid="b89609d4-5cbb-4f5b-b470-c9f9f4ad9d26"/>
                                    <textElement textAlignment="Center" verticalAlignment="Middle"/>
                                    <text><![CDATA[First Name]]></text>
                                </staticText>
                            </jr:columnHeader>
                            <jr:detailCell style="Table_TD" height="30">
                                <textField>
                                    <reportElement x="0" y="0" width="80" height="30" uuid="ec954e2c-43e4-43ba-9005-03272b9daad5"/>
                                    <textElement textAlignment="Center" verticalAlignment="Middle"/>
                                    <textFieldExpression><![CDATA[$F{firstName}]]></textFieldExpression>
                                </textField>
                            </jr:detailCell>
                        </jr:column>
                        <jr:column width="80" uuid="e7f5cfca-a803-485d-be01-5d2f785fbf0b">
                            <property name="com.jaspersoft.studio.components.table.model.column.name" value="Column2"/>
                            <jr:columnHeader style="Table_CH" height="30" rowSpan="1">
                                <property name="com.jaspersoft.studio.unit.width" value="px"/>
                                <staticText>
                                    <reportElement x="0" y="0" width="80" height="30" uuid="0a2eb2ed-75b9-46c3-8751-871c5473c3e1"/>
                                    <textElement textAlignment="Center" verticalAlignment="Middle"/>
                                    <text><![CDATA[Last Name]]></text>
                                </staticText>
                            </jr:columnHeader>
                            <jr:detailCell style="Table_TD" height="30">
                                <textField>
                                    <reportElement x="0" y="0" width="80" height="30" uuid="767b9d15-53e5-4a0b-be8c-ec94fc6398f8"/>
                                    <textElement textAlignment="Center" verticalAlignment="Middle"/>
                                    <textFieldExpression><![CDATA[$F{lastName}]]></textFieldExpression>
                                </textField>
                            </jr:detailCell>
                        </jr:column>
                        <jr:column width="80" uuid="c7103510-df1d-4c31-a30f-9b726540dd7a">
                            <property name="com.jaspersoft.studio.components.table.model.column.name" value="Column3"/>
                            <jr:columnHeader style="Table_CH" height="30" rowSpan="1">
                                <property name="com.jaspersoft.studio.unit.width" value="px"/>
                                <staticText>
                                    <reportElement x="0" y="0" width="80" height="30" uuid="11192151-2c03-4590-91f7-87021b022301"/>
                                    <textElement textAlignment="Center" verticalAlignment="Middle"/>
                                    <text><![CDATA[Bank]]></text>
                                </staticText>
                            </jr:columnHeader>
                            <jr:detailCell style="Table_TD" height="30">
                                <textField>
                                    <reportElement x="0" y="0" width="80" height="30" uuid="97ec29f7-36f2-4ecc-9f30-3049e0648e97"/>
                                    <textElement textAlignment="Center" verticalAlignment="Middle"/>
                                    <textFieldExpression><![CDATA[$F{bank}]]></textFieldExpression>
                                 </textField>
                            </jr:detailCell>
                        </jr:column>
                        <jr:column width="80" uuid="5a4bb23a-7d61-486b-91f8-b5150cb85817">
                            <property name="com.jaspersoft.studio.components.table.model.column.name" value="Column4"/>
                            <jr:columnHeader style="Table_CH" height="30" rowSpan="1">
                                <property name="com.jaspersoft.studio.unit.width" value="px"/>
                                <staticText>
                                    <reportElement x="0" y="0" width="80" height="30" uuid="30680d44-df3b-484e-b059-399e0a21b304"/>
                                    <textElement textAlignment="Center" verticalAlignment="Middle"/>
                                    <text><![CDATA[Account Number]]></text>
                                </staticText>
                            </jr:columnHeader>
                            <jr:detailCell style="Table_TD" height="30">
                                 <textField>
                                     <reportElement x="0" y="0" width="80" height="30" uuid="ba6b13f3-770d-4a02-b3f0-5d4293393cd3"/>
                                     <textElement textAlignment="Center" verticalAlignment="Middle"/>
                                     <textFieldExpression><![CDATA[$F{accountNumber}]]></textFieldExpression>
                                 </textField>
                            </jr:detailCell>
                        </jr:column>
                        <jr:column width="80" uuid="0720c554-a0af-4192-a669-38cea560a2e2">
                            <property name="com.jaspersoft.studio.components.table.model.column.name" value="Column5"/>
                            <jr:columnHeader style="Table_CH" height="30" rowSpan="1">
                                <property name="com.jaspersoft.studio.unit.width" value="px"/>
                                <staticText>
                                    <reportElement x="0" y="0" width="80" height="30" uuid="98adb234-9003-4704-85e4-295538f4273c"/>
                                    <textElement textAlignment="Center" verticalAlignment="Middle"/>
                                    <text><![CDATA[Ref Name]]></text>
                                </staticText>
                            </jr:columnHeader>
                            <jr:detailCell style="Table_TD" height="30">
                                 <textField>
                                     <reportElement x="0" y="0" width="80" height="30" uuid="955502f3-afec-40aa-a8f8-b5e83d43bcbc"/>
                                     <textElement textAlignment="Center" verticalAlignment="Middle"/>
                                     <textFieldExpression><![CDATA[$F{name}]]></textFieldExpression>
                                 </textField>
                            </jr:detailCell>
                        </jr:column>
                        <jr:column width="80" uuid="2aed257e-00f2-4594-a9ac-9b504262ee3e">
                            <property name="com.jaspersoft.studio.components.table.model.column.name" value="Column6"/>
                            <jr:columnHeader style="Table_CH" height="30" rowSpan="1">
                                <property name="com.jaspersoft.studio.unit.width" value="px"/>
                                <staticText>
                                    <reportElement x="0" y="0" width="80" height="30" uuid="be058bb0-b9f3-4b41-b074-c1f44350eb09"/>
                                    <textElement textAlignment="Center" verticalAlignment="Middle"/>
                                    <text><![CDATA[Ref Account Number]]></text>
                                </staticText>
                            </jr:columnHeader>
                            <jr:detailCell style="Table_TD" height="30">
                                 <textField>
                                     <reportElement x="0" y="0" width="80" height="30" uuid="59563298-0f0f-4b62-b263-511abb945d1a"/>
                                     <textElement textAlignment="Center" verticalAlignment="Middle"/>
                                     <textFieldExpression><![CDATA[$F{refAccountNumber}]]></textFieldExpression>
                                 </textField>
                            </jr:detailCell>
                        </jr:column>
                    </jr:table>
                </componentElement>
            </band>
        </detail>
    </jasperReport>