Jump to content
We've recently updated our Privacy Statement, available here ×

Error retrieving field value from bean:


184646

Recommended Posts

I have trying to understand jasper reports. I am trying to generate sample report and we are using jruby  not java. I will post my jrxml file here

<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.18.1.final using JasperReports Library version 6.18.1-9d75d1969e774d4f179fb3be8401e98a0e6d1611  -->
<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="report6" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="aed8b471-22e8-429b-a78c-3ac9a3dd82f1">
    <style name="TableHeader" hTextAlign="Center" hImageAlign="Center" vTextAlign="Middle" vImageAlign="Middle" isBold="true"/>
    <style name="TableCell" hTextAlign="Center" hImageAlign="Center" vTextAlign="Middle" vImageAlign="Middle"/>
    <style name="TableFooter" hTextAlign="Right" hImageAlign="Right" vTextAlign="Middle" vImageAlign="Middle"/>
    <style name="Table">
        <box>
            <pen lineWidth="0.5"/>
        </box>
    </style>
    <subDataset name="dataset1" uuid="ee147159-1399-4375-8b07-58f08133d443">
        <field name="item" class="java.lang.String">
            <fieldDescription><![CDATA[item]]></fieldDescription>
        </field>
        <field name="unitPrice" class="java.math.BigDecimal"/>
        <field name="quantity" class="java.lang.Integer"/>
        <variable name="UnitTotalPrice" class="java.math.BigDecimal">
            <variableExpression><![CDATA[$F{unitPrice}.multiply(new BigDecimal($F{quantity}))]]></variableExpression>
        </variable>
        <variable name="TotalPrice" class="java.math.BigDecimal" calculation="Sum">
            <variableExpression><![CDATA[$V{UnitTotalPrice}]]></variableExpression>
        </variable>
    </subDataset>
    <parameter name="datasource" class="net.sf.jasperreports.engine.data.JRBeanCollectionDataSource"/>
    <detail>
        <band height="250" splitType="Stretch">
            <componentElement>
                <reportElement style="Table" mode="Transparent" x="0" y="10" width="555" height="150" uuid="f04aa8b1-942b-4911-8fc9-11c67d963b25"/>
                <c:table xmlns:c="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
                    <datasetRun subDataset="dataset1" uuid="14d48a6e-7738-4775-8ae5-90734885d5e5">
                        <dataSourceExpression><![CDATA[$P{datasource}]]></dataSourceExpression>
                    </datasetRun>
                    <c:column width="60" uuid="89ac7326-d885-49db-b76f-7ed969a23ef0">
                        <c:columnHeader height="30">
                            <box>
                                <pen lineColor="#000000"/>
                                <bottomPen lineWidth="0.5"/>
                            </box>
                            <staticText>
                                <reportElement style="TableHeader" x="0" y="0" width="60" height="30" uuid="a975bb7a-e916-41bd-91dd-2feeeab600a9"/>
                                <text><![CDATA[item]]></text>
                            </staticText>
                        </c:columnHeader>
                        <c:detailCell height="15">
                            <box>
                                <bottomPen lineWidth="0.5"/>
                            </box>
                            <textField textAdjust="StretchHeight">
                                <reportElement style="TableCell" x="0" y="0" width="60" height="15" uuid="1a50bed2-219f-488f-aebd-5b45d943f410"/>
                                <textFieldExpression><![CDATA[$F{item}]]></textFieldExpression>
                            </textField>
                        </c:detailCell>
                    </c:column>
                    <c:column width="100" uuid="297910ec-7eac-490c-872f-a527c5323960">
                        <c:columnHeader height="30">
                            <box>
                                <pen lineColor="#000000"/>
                                <leftPen lineWidth="0.5"/>
                                <bottomPen lineWidth="0.5"/>
                            </box>
                            <staticText>
                                <reportElement style="TableHeader" x="0" y="0" width="90" height="30" uuid="c57b5913-ee7f-46cb-b298-5e255d96bc18"/>
                                <text><![CDATA[unitPrice]]></text>
                            </staticText>
                        </c:columnHeader>
                        <c:detailCell height="15">
                            <box>
                                <leftPen lineWidth="0.5"/>
                                <bottomPen lineWidth="0.5"/>
                            </box>
                            <textField>
                                <reportElement style="TableCell" x="0" y="0" width="90" height="15" uuid="e369ddb3-7419-4114-ba8e-c390d1793a90"/>
                                <textFieldExpression><![CDATA[$F{unitPrice}]]></textFieldExpression>
                            </textField>
                        </c:detailCell>
                    </c:column>
                    <c:column width="100" uuid="d908b879-3394-4696-8c27-4040a9520e02">
                        <c:columnHeader height="30">
                            <box>
                                <pen lineColor="#000000"/>
                                <leftPen lineWidth="0.5"/>
                                <bottomPen lineWidth="0.5"/>
                            </box>
                            <staticText>
                                <reportElement style="TableHeader" x="0" y="0" width="90" height="30" uuid="08a1b0ec-2b5e-4222-92a7-50ba0d970182"/>
                                <text><![CDATA[Quantity]]></text>
                            </staticText>
                        </c:columnHeader>
                        <c:detailCell height="15">
                            <box rightPadding="5">
                                <leftPen lineWidth="0.5"/>
                                <bottomPen lineWidth="0.5"/>
                            </box>
                            <textField>
                                <reportElement x="0" y="0" width="90" height="15" uuid="ae64fdfd-556c-4a71-9d4a-25749aa265e0"/>
                                <textElement textAlignment="Right" verticalAlignment="Middle"/>
                                <textFieldExpression><![CDATA[$F{quantity}]]></textFieldExpression>
                            </textField>
                        </c:detailCell>
                    </c:column>
                    <c:column width="100" uuid="addf7a39-d70d-4427-82a9-c8c10bc46325">
                        <c:columnHeader height="30">
                            <box>
                                <pen lineColor="#000000"/>
                                <leftPen lineWidth="0.5"/>
                                <bottomPen lineWidth="0.5"/>
                            </box>
                            <staticText>
                                <reportElement style="TableHeader" x="0" y="0" width="90" height="30" uuid="95b52320-9dc9-4f20-97a8-c719373ff3d2"/>
                                <text><![CDATA[Total price]]></text>
                            </staticText>
                        </c:columnHeader>
                        <c:columnFooter style="TableFooter" height="15">
                            <box>
                                <pen lineColor="#000000"/>
                                <topPen lineWidth="0.5"/>
                            </box>
                            <textField evaluationTime="Report">
                                <reportElement style="TableFooter" x="0" y="0" width="90" height="15" uuid="74359992-7797-45e9-ab63-31aeb2c7ed98"/>
                                <textFieldExpression><![CDATA[$V{TotalPrice}]]></textFieldExpression>
                            </textField>
                        </c:columnFooter>
                        <c:detailCell height="15">
                            <box rightPadding="5">
                                <leftPen lineWidth="0.5"/>
                                <bottomPen lineWidth="0.5"/>
                            </box>
                            <textField>
                                <reportElement x="0" y="0" width="90" height="15" uuid="8a208f1e-a7a6-411d-bd3e-af3937b17a92"/>
                                <textElement textAlignment="Right" verticalAlignment="Middle"/>
                                <textFieldExpression><![CDATA[$V{UnitTotalPrice}]]></textFieldExpression>
                            </textField>
                        </c:detailCell>
                    </c:column>
                </c:table>
            </componentElement>
        </band>
    </detail>
</jasperReport>
 

 

 

 

 

my  ruby code  is

 

 

class Order
  attr_accessor :item,:unitPrice,:quantity
  def initialize(item, up, q)
      @item = item
      @unitPrice = up
      @quantity = q
  end
  def getItem
    @item
  end
end

class JasperReport
  DIR = "#{Rails.root}/reports"

  def initialize(report, query, params = nil)
    @model = report
    @report_params = params
    @conn = ActiveRecord::Base.connection.jdbc_connection
    @query = query
  end

  def self.to_pdf(datasources)
    binding.pry
    orders = [
    Order.new("Item 1", "5.4".to_f, 4),
    Order.new("Item 2", "2.3".to_f, 3),
    Order.new("Item 3", "1.5".to_f, 8)
    ]
    datasources = datasources.with_indifferent_access
    # stmt = @conn.create_statement
    # @result = JRResultSetDataSource.new(stmt.execute_query(@query))
    # @result = JREmptyDataSource.new
    report_source = "#{DIR}/project.jasper"
    raise ArgumentError, "#@model does not exist." unless File.exist?(report_source)
    params = {}
    binding.pry
    ds = JRBeanCollectionDataSource.new(orders,false)
    params["datasource"] = ds
    # params.merge!(@report_params) if @report_params.present?
    fill  = JasperFillManager.fill_report(report_source, params, ds)
    pdf = JasperExportManager.export_report_to_pdf(fill)
    return String.from_java_bytes(pdf)
  end
end

 

I am getting following error.

 

 

07:17:23,562 ERROR [JRFillSubreport] Fill 1: exception
net.sf.jasperreports.engine.JRException: Error retrieving field value from bean: item.
        at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getBeanProperty(JRAbstractBeanDataSource.java:205)
        at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getFieldValue(JRAbstractBeanDataSource.java:170)
        at net.sf.jasperreports.engine.data.JRBeanCollectionDataSource.getFieldValue(JRBeanCollectionDataSource.java:104)
        at net.sf.jasperreports.engine.fill.JRFillDataset.setOldValues(JRFillDataset.java:1507)
        at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:1408)
        at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:1384)
        at net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:1201)
        at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:117)
        at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:622)
        at net.sf.jasperreports.engine.fill.BaseReportFiller.fill(BaseReportFiller.java:433)
        at net.sf.jasperreports.engine.fill.JRFillSubreport.fillSubreport(JRFillSubreport.java:830)
        at net.sf.jasperreports.engine.fill.JRSubreportRunnable.run(JRSubreportRunnable.java:61)
        at net.sf.jasperreports.engine.fill.AbstractThreadSubreportRunner.run(AbstractThreadSubreportRunner.java:221)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.NoSuchMethodException: Unknown property 'item' on class 'class org.jruby.gen.RubyObject4'

 

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...