现在的位置: 首页 > 综合 > 正文

读取jrxml文件生成JasperReport 子报表, javabean作为数据源

2013年09月17日 ⁄ 综合 ⁄ 共 1690字 ⁄ 字号 评论关闭

 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";

抱歉!评论已关闭.