1、新建report1.jrxml文件不在赘述
2、调出组件面板:注意如果没有服务面板可以在窗口-->服务面板,调出来

3、各种面板上的元素属性不在赘述
4、数据源配置—连接数据库(DB2)

在这里为什么值描述DB2呢?因为其他的数据库连接都很简单,唯独DB2有坑,上图红框里面的东西,不管irport怎么提示你,直接手动输入红框的内容,但是URL必须改为你自己的数据库连接。DB2驱动类型有4种Type1,Type2,Type3,Type4,其中的区别可以自己百度,有很多说明,这里要说明的是,ireport提示的是:com.ibm.db2.app.DB2Driver,但是我们不用管,只要手工输入com.ibm.db2.jcc.DB2Driver即可。否则会提示无法连接,还有各种莫名其妙的错误。网上说的什么必须安装客户端才能连接如此之类的,无需考虑(注意:仅限ireport)
5、数据源配置—JavaBean
1)在下图进行配置数据源,配置好了点击test测试一下是否成功

2)根据配置的数据源读取属性与值

3)把table组件拖到面板后方式text

说明:Filed是从JavaBean这个KpiMajorProdIndusAllBO导入的,paramer是自己新建的,自己命名,需要与外部Model对应
比如我在我的controller层新建一个返回方法,这里是为了说明在测试或者生成环境如何返回数据,如果我们平时开发代码完全可以使用JavaBean作为数据源忽略此处:代码片段为:

Model里面属性参数作为外部传递到ireport的,参数就是沟通外部与irport的桥梁;直接对应ireport里面的paramer节点下,自定义的参数
4)为了说明如何使用ireport的参数,需要新建工厂类:KpiMajorProdIndusAllBOFactory
public class KpiMajorProdIndusAllBOFactory {
// 生成实体对象的个数
private static final int RECORD_COUNT = 10;
/**
* 这个方法在iReport的DataResource配置时也会用到 必须是静态方法 static
*
* @return
*/
public static Collection<KpiMajorProdIndusAllBO> createBeanCollection() {
Collection<KpiMajorProdIndusAllBO> beanCollection = new ArrayList<KpiMajorProdIndusAllBO>();
for (int i = 0; i < RECORD_COUNT; i++) {
KpiMajorProdIndusAllBO kpiMajorProdIndusAllBO = new KpiMajorProdIndusAllBO();
beanCollection.add(kpiMajorProdIndusAllBO);
}
return beanCollection;
}
}
5)生成业务BEAN
public class KpiMajorProdIndusAllBO {
private String statDate = "999";
private int num;
private String indexCode = "999";
private String indexName = "999";
private String ytmDataValue = "999";
private String lyYtmDataValue = "999";
private String yoyYtmDataValue = "999";
private String quoYtmDataValue = "999";
public KpiMajorProdIndusAllBO() {
}
public String getStatDate() {
return statDate;
}
public void setStatDate(String statDate) {
this.statDate = statDate;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getIndexCode() {
return indexCode;
}
public void setIndexCode(String indexCode) {
this.indexCode = indexCode;
}
public String getIndexName() {
return indexName;
}
public void setIndexName(String indexName) {
this.indexName = indexName;
}
public String getYtmDataValue() {
return ytmDataValue;
}
public void setYtmDataValue(String ytmDataValue) {
this.ytmDataValue = ytmDataValue;
}
public String getLyYtmDataValue() {
return lyYtmDataValue;
}
public void setLyYtmDataValue(String lyYtmDataValue) {
this.lyYtmDataValue = lyYtmDataValue;
}
public String getYoyYtmDataValue() {
return yoyYtmDataValue;
}
public void setYoyYtmDataValue(String yoyYtmDataValue) {
this.yoyYtmDataValue = yoyYtmDataValue;
}
public String getQuoYtmDataValue() {
return quoYtmDataValue;
}
public void setQuoYtmDataValue(String quoYtmDataValue) {
this.quoYtmDataValue = quoYtmDataValue;
}
}