讀取jrxml文件生成JasperReport 子報表, javabean作爲數據源

 1) 導入javabean屬性, 需要加上包名, 比如com.blog.UserBean. 直接輸入class名, 找不到. 對於屬性的修改的添加也可以手動在design或者xml界面添加Field.

  2) javabean子報表2種做法 , 1是子報表作爲參數, 類型是JasperReport, 兩個報表可以獨立編譯. 我只能使用jrxml在內存中編譯. 不能使用已經編譯好的jasper文件(報錯問題沒有解決). 可以從數據庫中讀出jrxml, 導出報表, 不必寫入磁盤.               2是子報表路徑作爲參數, 編譯父報表會加載子報表, 沒有會編譯報錯. 使用jrxml和jasper都可以. 但是子報表路徑必須已經有編譯好的子報表, 缺點是需要把子報表寫入磁盤, 再加載才能導出報表.

 

注意以上兩點, 在網上搜資料, 就容易做出來了.

提示:

1. 必須jar包, groovy-all 程序不報錯就不需要. jasperreport4.0.2.jar產生的pdf報表, text中字體有的會重疊, 後面加" "可以解決, 隨即出現很頭疼. 使用3.7.6就沒有字體重疊的問題了.

Itext.jar注意, 其他jar包沒有, 錯誤信息一看就知道少了那個類, 判斷缺少那個jar包, 可是itext報錯

ERROR [STDERR] net.sf.jasperreports.engine.JRException: org.xml.sax.SAXParseException: XML document structures must start and end within the same entity. NoClassDefFoundError

或者 **Error can't cast to Exception...... 或者 XMLParser......., 錯誤信息生僻, 不宜發現問題.

2. ireport版本不同, 高版本可以解析低版本的jrxml文件. 相反就會報錯, 問題生僻, 注意ireport版本和jasperreport &&支持jasperreport的jar包版本.  網上有人說, 高手可以寫jrxml標籤開發報表, 工具主要是調試. 自己遇到一切奇怪問題, 比如 text內容是html, 要求顯示的pdf可以解析html, 顯示字體和顏色. 在design頁面和sample中的例子一樣, 不能解析html顯示字體效果, 再去查看jrxml標籤, 果然不一樣, 按照sample中的用法, 可以解析html標籤, 顯示字體效果了.

 Don't work!!
 <textElement markup="html">
						<font fontName="Arial"/>
					</textElement>
Work:!!
<textElement markup="html"/>

FAQ:

1:net.sf.jasperreports.engine.JRException: java.net.MalformedURLException: null in db

2: 10:29:39,130 INFO  [STDOUT] [2011-11-01 10:29:39.115] Parse Error at line 33 column 30: cvc-complex-type.3.2.2: Attribut
e 'splitType' is not allowed to appear in element 'band'.
org.xml.sax.SAXParseException: cvc-complex-type.3.2.2: Attribute 'splitType' is not allowed to appear in element 'band'.
 <band splitType="Stretch"/> ===>>    <band height="0"  isSplitAllowed="true" > </band> 不知道哪個jar包版本低, 只能使用老版本1.2.3.的ireport標籤.

3: blank between detail and column foot .

Resolve : delete column foot and use group foot and set select expression: "1";

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章