0

我是 Jasper 的新手/我报告。我正在尝试创建一个从 java 类访问或获取其数据的报告。我一直在尝试使用 JRBeanDataSource,但没有运气。我希望报告在代码中是动态的,而不使用 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>
..

如果namesurname不应由参数填充,而是由您的数据源填充,则您需要将它们注册为字段并照此引用它们。

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