1.了解ireport与jasperreport的区别。
2.怎样使用ireport绘制报表模板.
3.了解ireport的几个概念。
4.ireport的深入探讨。
1.ireport 是一个专门用于绘制jasperreport能够解析.jasper模板文件的工具。只是一个图形界面工具。
注意一点的是:即使没有ireport的工具jasperreport一样能开发报表。ireport只是提供了一种快速开发报表的一种途径。
jasperreport是一些提供报表模板编写,解析,打印的jar包。
2.怎样使用ireport绘制报表模板.
ireport设计效果:
实际使用ireport设计的报表打印效果:
2.1).ireport提供了一些用于绘制模板的一些组件如:
在实际的模板设计中只需使用鼠标拖拽这些组件到相应的区域即可。
2.2).了解ireport设计版面的区域:
了解各区域的含义:
title:报表的标题,如有多页只有一个标题 。如上图:“2010年度 所有类别”
page Header: 每页报表数据页头,每页数据均有一个页头。如上图:“截止:2010年04月20日 单位:元”
column Header:顾名思义每列数据的列头。
detail:真实数据显示区域。该区域可循环,根据实际传入的数据源的记录数,来确定循环多少次。
具体设计:
此区域只是提供了一行字段单元格。通过循环得到显示数据。
column Footer:每页列数据统计区域:即如果你需统计某一列数据的sum那么,在此处显示用于统计的数据即可。
page Footer:每页的结尾,在此处你可以显示:“当前为第N页” 这样的信息。
summary:用于统计多页数据中某列数据的sum时,你可以在此处显示要统计的数据。即此处数据最终只显示一次。
3.使用ireport进行模板设计理解三个常见概念:
看上面ireport设计图:有$V{} $P{} $F{}下面一次讲一这三个参数的概念。
3.1).$P{parameterName}用于存储需从程序或传递给sql语句的参数。jasperreport提供了一些默认的参数变量:
这里讲几个默认提供变量:report_parameters_map :表示用于存储所有参数的map集合:比如上图有$P{type}
那我们具体在程序中给值:map.put("type",typeValue) 而最终这map是会传递给jasperreport的类去解析的,
在内部我们可以认为最终map的给值是: report_parameters_map=map
report_connection:表示ireport与数据库连接的connection对象.使用与sql为数据源方式。
report_max_count:每页数据可以显示的最大行数。
report_data_source:传入的数据源集合Collections 使用于javaBeans方式。
jaspre_report:可能是JasperReport类的实例(待验证).
如果直接用sql为数据源$P{}的用法可以为: selec t.* from tb_stock_project t where t.name = $P{parameterName};
可以在程序中直接传sql语句的参数如:map.put("sql","where t.name="+parameterName);
那么当直接用sql语句做数据源的方式可以写为:select t.* from tb_stock_project $!P{sql};
3.2)$V{variableName}的含义。 比如你要定义一个变量用于统计$F{balance}这一列的数据的sum值名为 $V{balanceTotal}
新增变量$V,参数$P,字段$F只需在 相应节点鼠标右键选新增即可。
对于要满足$V{balanceTotal}变量用于对$F{balance}列数据进行统计的这个要求,要考虑变量的其他几个属性。
这里注意:Calculation(计算),Reset type,Variable Expression几个属性。
如上图:Variable Expression=$F{balance} 变量$V{balanceTotal}用于对字段$F{balance}进行操作。
Calculation可有的值:
Calcuation=sum 表示用于统计$F{balance}字段每列数据的和。 其它顾名思义。
Reset type用于:确定数据统计的范围。可有的值:
reset type=report 表示统计范围包括所有导出$F{balance}字段每列数据的集合。
reset type=group 针对到每个组,reset type=page针对每页统计统计。
3.3)$F{fieldName}就是用于显示数据的字段名称。
如果是sql作为数据源如select t.id,t.name,t.project_code from tb_stock_project t
那么$F{}可有的值为$F{id},$F{name},$F{project_code}
如果是javaBean作为数据源如:class MyBean { private int id ;private String name; private Stirng projectCode;}
那么$F{}可有的值为$F{id},$F{name},$F{projectCode}
4.ireport的深入探讨。
4.1)如何自定义new Style用于个性化显示jasperreport报表。
4.2)javaBeans做数据源时对Bean类的要求。
public class MyBean{
private String id;
private String name;
private String projectCode;
public static List
MyBean myBean=null;
List
for(int i=0;i<10;i++){
myBean= new MyBean ();
myBean.setId(i);
myBean.setName("name"+i); myBean.setProject("projectCode"+i);
MyBeans.add(myBean);
}
return MyBeans;
}
}
在使用javeBeans作数据源时对进行报表设计的bean类ireport要求提供createBeanCollection方法以提供模拟数据。
4.3)组group的灵活使用。
4.4)ireport的子报表。ireport中功能最强大的组件。subReport:使用它可以达到的效果。
数据分类显示如:
大类1-小类1
大类1 大类1-小类2
等。
4.5)其他。