0

私はジャスパーの新人です/私は報告します。Java クラスからデータにアクセスまたは取得するレポートを作成しようとしています。JRBeanDataSource を使用しようとしましたが、うまくいきませんでした。i-report を使用せずにコード内でレポートを動的にしたい。i report からレポートをデザインしようとしましたが、レポートをコンパイルできないようです。ここにエラーがあります

  Compiling to file... E:\Program Files (x86)\Jaspersoft\iReport-5.0.1\ireport\projects\report1.jasper
 net.sf.jasperreports.engine.design.JRValidationException: Report design not valid :       1. Parameter not found : name      2. Parameter not found : surname     at net.sf.jasperreports.engine.design.JRAbstractCompiler.verifyDesign(JRAbstractCompiler.java:271)     at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:153)     at net.sf.jasperreports.engine.JasperCompileManager.compile(JasperCompileManager.java:240)     at net.sf.jasperreports.engine.JasperCompileManager.compileToFile(JasperCompileManager.java:156)     at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:439)     at com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:528)     at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)     at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997) 
Compilation running time: 60!

レポートの XML は

<?xml version="1.0" encoding="UTF-8"?>
<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="report1" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" whenResourceMissingType="Empty" uuid="a686c2f8-36e1-48f1-8894-8324c9f5d041">
    <property name="ireport.zoom" value="1.4641000000000006"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="24"/>
    <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"/>
    </columnHeader>
    <detail>
        <band height="125" splitType="Stretch">
            <textField>
                <reportElement uuid="b1370c0a-6fd1-44ec-af9a-f4edba088c48" x="97" y="21" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$P{name}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement uuid="06c14f56-9416-4d14-a6d3-7f5dbfa6d701" x="97" y="59" width="100" height="20"/>
                <textElement/>
                <textFieldExpression><![CDATA[$P{surname}]]></textFieldExpression>
            </textField>
        </band>
    </detail>
    <columnFooter>
        <band height="45" splitType="Stretch"/>
    </columnFooter>
    <pageFooter>
        <band height="54" splitType="Stretch"/>
    </pageFooter>
    <summary>
        <band height="42" splitType="Stretch"/>
    </summary>
</jasperReport>

誰かがこれを手伝ってくれる?

4

1 に答える 1

1

レポートで 2 つのパラメーター式を参照しています: $P{name}$P{surname}

これらは定義されていません。

レポートを実行可能にするには、これらのパラメーターの定義を追加する必要があります。

..
<property name="ireport.y" value="24"/>
<parameter name="name" class="java.lang.String" />
<parameter name="surname" class="java.lang.String" />
<background>
..

名前がパラメーターではなくデータソースによって埋められる場合は、それらをフィールドとして登録し、そのように参照する必要があります。

..
<property name="ireport.y" value="24"/>
<field name="name" class="java.lang.String" />
<field name="surname" class="java.lang.String" />
<background>
..

として参照するテキスト フィールドでは $F{name}$F{surname}

于 2013-01-22T09:12:27.137 に答える