Jump to content

Subdataset not working with ireports


srivathsangayathri

Recommended Posts

I am using subdataset to load my reports. The below jrxml is designed using iReports 5.6.0 and java 1.8 . The issue is when we  load it first time in iReports it works fine and fetches data from given json datasource. My json is 

{
    "tax_statement":{
        "start_date":"01/09/2019",
        "end_date":"30/09/2019",
        "client_no":"100416517",
        "deal_id":"TF540R0640",
        "currency":"USD",
        "tax_details":[
            {
                "creation_date":"02/09/2019",
                "creation_reference":"TF540R0640-03745",
                "collection_date":"02/09/2019",
                "collection_reference":"TF540R0640-03745",
                "txn_currency":"USD",
                "txn_amount":"35623.10",
                "tax_type":"Commission Package",
                "tax_amount":"890.03"
            },
            {
                "creation_date":"03/09/2019",
                "creation_reference":"TF540R0640-03748",
                "collection_date":"03/09/2019",
                "collection_reference":"TF540R0640-03748",
                "txn_currency":"USD",
                "txn_amount":"6723.10",
                "tax_type":"Commission Package",
                "tax_amount":"1120.03"
            }
        ]
    }
}  

My jrxml is

<subDataset name="tax_details" uuid="ffb611e3-ff17-47fe-918d-4dafce456724">
        <field name="tax_type" class="java.lang.String">
            <fieldDescription><![CDATA[tax_type]]></fieldDescription>
        </field>
    </subDataset>
    <queryString language="json">
        <![CDATA[]]>
    </queryString>
    <field name="currency" class="java.lang.String">
        <fieldDescription><![CDATA[tax_statement.currency]]></fieldDescription>
    </field>
    <field name="tax_type" class="java.lang.String">
        <fieldDescription><![CDATA[tax_type]]></fieldDescription>
    </field>
    <background>
        <band splitType="Stretch"/>
    </background>
    <title>
        <band height="79" splitType="Stretch"/>
    </title>
    <pageHeader>
        <band height="35" splitType="Stretch"/>
    </pageHeader>
    <columnHeader>
        <band height="61" splitType="Stretch">
            <staticText>
                <reportElement x="230" y="1" width="100" height="20" uuid="c74a2da1-b8b5-4e58-ab0d-20e4a4b7d8ca"/>
                <text><![CDATA[tax_type]]></text>
            </staticText>
        </band>
    </columnHeader>
    <detail>
        <band height="125" splitType="Stretch">
            <textField>
                <reportElement x="19" y="3" width="100" height="20" uuid="6b32baae-9dac-497a-b7fc-3d51ceb1b13a"/>
                <textFieldExpression><![CDATA[$F{currency}]]></textFieldExpression>
            </textField>
            <componentElement>
                <reportElement x="142" y="21" width="400" height="50" uuid="4231bcc7-3cbc-47d0-816d-bb4da37fc0aa"/>
                <jr:list xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" printOrder="Vertical">
                    <datasetRun subDataset="tax_details" uuid="b344f4ee-d217-4deb-8e03-283fa6ee0cc6">
                        <dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("tax_statement.tax_details")]]></dataSourceExpression>
                    </datasetRun>
                    <jr:listContents height="50" width="100"/>
                </jr:list>
            </componentElement>
            <textField>
                <reportElement x="230" y="20" width="100" height="20" uuid="e9eed733-b0a6-4596-a2f9-729d749f1dff"/>
                <textFieldExpression><![CDATA[$F{tax_type}]]></textFieldExpression>
            </textField>
        </band>
    </detail>

But I get error as  

Error filling print... Error evaluating expression : 
    Source text : ((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("tax_statement.tax_details")

net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression : 
    Source text : ((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("tax_statement.tax_details") 
    at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:263) 
    at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:611) 
    at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:579) 
    at net.sf.jasperreports.components.list.FillDatasetRun.evaluate(FillDatasetRun.java:127) 
    at net.sf.jasperreports.components.list.BaseFillList.evaluate(BaseFillList.java:102) 
    at net.sf.jasperreports.engine.fill.JRFillComponentElement.evaluate(JRFillComponentElement.java:110) 
    at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:259) 
    at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:456) 
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2067) 
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:788) 
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:298) 
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:152) 
    at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:963) 
    at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:152) 
    at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:311) 
    at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:772) 
    at com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:1003) 
    at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572) 
    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997) 
Caused by: java.lang.NoClassDefFoundError: net/sf/jasperreports/engine/data/JsonDataSource 
    at report1_1582886034309_699271.evaluate(report1_1582886034309_699271:192) 
    at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:250) 
    ... 18 more 
Caused by: java.lang.ClassNotFoundException: net.sf.jasperreports.engine.data.JsonDataSource 
    at java.lang.ClassLoader.findClass(ClassLoader.java:523) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 20 more 

Print not filled. Try to use an EmptyDataSource...

Link to comment
Share on other sites

  • Replies 0
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...