Jasper table component

13,285

I had the same problem and found the solution here https://web.archive.org/web/20111130110022/http://thilosdevblog.wordpress.com/2011/03/27/beans-in-jasperreports4/

the table datasource has to be like this:

<datasetRun subDataset="TableDataset">
    <datasetParameter name="REPORT_DATA_SOURCE">
       <datasetParameterExpression><![CDATA[$P{REPORT_DATA_SOURCE}]]></datasetParameterExpression>
    </datasetParameter>
</datasetRun>

Wonder why this kind how stuff is not in the jasper/ireport FAQ !

Share:
13,285
teo
Author by

teo

I have a crush on flatMap. @teozaurus

Updated on June 14, 2022

Comments

  • teo
    teo about 2 years

    I am trying to generate a report containing a table. These are the important parts from the jrxml:

    <jasperReport
        <subDataset name="Table Dataset 1">
            <field name="field1" class="java.lang.String"/>
        </subDataset>
        <summary>
            <jr:table>
               <datasetRun subDataset="Table Dataset 1">
               <dataSourceExpression>
                            <![CDATA[$P{REPORT_DATA_SOURCE}]]>
                    </dataSourceExpression>   
               </datasetRun>
               <jr:column width="90">
                  <jr:columnHeader>...</jr:columnHeader>
                  <jr:detailCell height="20">
                  <textField>
                     <textFieldExpression class="java.lang.String">
                                <![CDATA[$F{territory}]]>
                             </textFieldExpression>
                  </textField>
               </jr:detailCell>
               </jr:column>
            <jr:table>
        </summary>
    </jasperReport>
    

    The type of datasource I am passing to the report is a JRBeanArrayDataSource, which seems to be ok, because the data appears in the report (if I am using $F{field1} in the master - outside the table).

    Do you see something wrong in the way I am using the table component? I don't see any errors...but the table is not being displayed...only a horizontal line instead of the table.

  • teo
    teo over 11 years
    I didn't have the chance to test your solution, but this worked for me: 1) Wrapped the JRBeanArrayDataSource into a JRMapArrayDataSource 2) I dereferenced it as a field: <field name="filterDataSource" class="...JRBeanArrayDataSource" /> 3)Used it like this: <datasetRun ..> <dataSourceExpression> <![CDATA[$F{filterDataSource}]] </dataSourceExpression>. Your solution feels right compared to this, but unfortunately I cannot confirm it to be working in my particular case. I described my workaround as a last resort for anyone getting stuck on this problem.