2013-01-22 34 views
0

我是Jasper/I報告中的新成員。我正在嘗試創建一個訪問或從java類獲取其數據的報告。我一直在嘗試使用JRBeanDataSource而沒有運氣。我希望報告在代碼中是動態的,而不使用i-report。我試着從報告中設計報告,但我似乎無法編輯報告。這裏是錯誤Dynamicaly將Java對象的數據傳遞給碧玉報告並轉換爲PDF

 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> 

能有人幫助,這?

回答

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}

+0

你是對的MrsTang,謝謝 – Spartan