2012-09-25 26 views
2

我正在使用java spring web應用程序。我想爲它實現報告功能。我想要在報告中實現的主要功能是我應該能夠選擇一些參數。取決於報告應該生成。參數選擇意味着:我選擇了2個日期,並且應該爲這兩個日期內的數據生成報告。這只是一個例子。任何人都可以建議我應該使用什麼?Java spring web應用程序的報表框架

+0

您可以使用碧玉報告。 – Akshar

+0

我知道,聽說碧玉很好。我已經嘗試了一個示例應用程序。但是我只需點擊該按鈕即可導出爲PDF或EXCEL報告。我的問題是,我可以做到這一點取決於參數?如果是的話如何? –

回答

2

用戶Jasper reports

在JasperReports中,您設計使用XML報告模板報告。例如,下面的XML文件是一個報告模板,一個標題,兩列數據,和頁碼:

<jasperReport name="BasicReport" > 
    <parameter name="Title" class="java.lang.String"/> 
    <queryString><![CDATA[select name, cost from product]]></queryString> 
    <field name="NAME" class="java.lang.String"/> 
    <field name="COST" class="java.lang.Double"/> 
    <title> 
    <band height="50"> 
     <textField> 
     <reportElement x="0" y="0" width="200" height="50" />  
     <textFieldExpression class="java.lang.String">$P{Title}</textFieldExpression> 
     </textField> 
    </band> 
    </title> 
    <pageHeader> 
    <band> 
    </band> 
    </pageHeader> 
    <columnHeader> 
    <band height="20"> 
     <staticText> 
     <reportElement x="180" y="0" width="180" height="20"/> 
     <textElement> 
      <font isUnderline="true"/> 
     </textElement> 
     <text><![CDATA[NAME]]></text> 
     </staticText> 
     <staticText> 
     <reportElement x="360" y="0" width="180" height="20"/> 
     <textElement> 
      <font isUnderline="true"/> 
     </textElement> 
     <text><![CDATA[COST]]></text> 
     </staticText> 
    </band> 
    </columnHeader> 
    <detail> 
    <band height="20"> 
     <textField> 
     <reportElement x="180" y="0" width="180" height="20"/>     
     <textFieldExpression class="java.lang.String"><![CDATA[$F{NAME}]]></textFieldExpression> 
     </textField> 
     <textField pattern="0.00"> 
     <reportElement x="360" y="0" width="180" height="20"/>     
     <textFieldExpression class="java.lang.Double"><![CDATA[$F{COST}]]></textFieldExpression> 
     </textField> 
    </band> 
    </detail> 
    <columnFooter> 
    <band> 
    </band> 
    </columnFooter> 
    <pageFooter> 
    <band height="15"> 
     <staticText> 
     <reportElement x="0" y="0" width="40" height="15"/> 
     <textElement/> 
     <text><![CDATA[Page:]]></text> 
     </staticText> 
     <textField> 
     <reportElement x="40" y="0" width="100" height="15"/> 
     <textElement/> 
     <textFieldExpression class="java.lang.Integer"><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression> 
     </textField> 
    </band> 
    </pageFooter> 
    <summary> 
    <band> 
    </band> 
    </summary> 
</jasperReport> 

要開始使用的JasperReports,你首先必須瞭解哪些對象的JasperReports用於表示報告過程,從報告設計到報告生成:

JasperDesign:表示報告的定義。在大多數情況下,您可以通過XML報告模板創建JasperDesign,但您也可以通過編程方式創建它。
JasperReport:表示已編譯的JasperDesign。編譯過程驗證報告設計並將設計編譯爲JasperReport對象。
JasperPrint:表示生成的報告。您可以通過填充過程從JasperReport創建一個JasperPrint,其中填充來自數據源的數據的報告。

希望有幫助!

相關問題