birt报
简单制作
前言
此文档作者是北京恒信启华职下员工肖林宝编写。乃是本人不成熟作品,简单的介绍了birt
的制作过程。为的是给各位同事一个参考,文中若有不完善的地方,还请各位同事多多包涵,多提宝贵意见。
根据各个项目上的实际情况,此文档主要介绍birt报表在公共数据源链接下的制作过程。下面开始进入制作过程。
Birt报表制作过程
在这里我用发票表 invoice 简单的制作一个根据日期查询并且统计TOTALCOST 的报报表。Sql语句如下:
select INVOICENUM,DESCRIPTION,ENTERDATE,TOTALCOST from invoice where where
to_date(to_char(ENTERDATE,'yyyy-MM-dd'),'yyyy-MM-dd')>=to_date('2
011-08-01','yyyy-MM-dd')and
to_date(to_char(ENTERDATE,'yyyy-MM-dd'),'yyyy-MM-dd')<=to_date('2
011-09-01','yyyy-MM-dd') order by INVOICENUM
一(打开birt,选择一个报表文件夹,右键—新建—报表。如图:
给报表取个名字。如下图:
名字取完,点finish(完成),该报表文件夹下就会出现此报表文件,如下图:
二(开始对报表进行编辑,双击报表文件,打开报表编辑窗口。选择script标签,在initialize下写引入包文件代码,如下图:
代码如下:
importPackage(Packages.com.ibm.tivoli.maximo.report.script);
importPackage(Packages.java.io);//引入包文件
importPackage(Packages.java.util);
importPackage(Packages.java.text);
mxReportScriptContext =
MXReportScriptContext.initialize(reportContext);
mxReportScriptContext.setDefaultLogLevel("DEBUG");
三、开始给报表添加公用数据源,右键maximoDataSuorce—Add To Report,如下图:
你会看到新建的数据源已经出现
之后在新建一个数据集,右键Data Sets—New Data Set,如下图:
双击Data Set,选择Output Columns,添加字段,如下图:
单击选中Data Set,选择script标签,open选项,对sql语句进行编辑,如下图:
具体内容如下:
maximoDataSet=MXReportDataSetProvider.create(this.getDataSource()
.getName(), this.getName());
maximoDataSet.open();
var sqlText = new String();
// Add query to sqlText variable.
sqlText = "select INVOICENUM,DESCRIPTION,ENTERDATE,TOTALCOST from invoice where "
+ " to_date(to_char(ENTERDATE,'yyyy-MM-dd'),'yyyy-MM-dd')>= to_date('"+params["startdate"]+"','yyyy-MM-dd') "
+ " and to_date(to_char(ENTERDATE,'yyyy-MM-dd'),'yyyy-MM-dd') <= to_date('"+params["enddate"]+"','yyyy-MM-dd') order by invoicenum "
// Include the Maximo where clause
;
maximoDataSet.setQuery(sqlText)
Sql语句编辑完之后,选择fetch选项,编辑字段,如下图:
具体内容如下:
if (!maximoDataSet.fetch())
return (false);
// Add a line for each output column
// The specific get method should match the data type of the output
column.
row["INVOICENUM"] = maximoDataSet.getString("INVOICENUM"); row["DESCRIPTION"] = maximoDataSet.getString("DESCRIPTION"); row["ENTERDATE"] = maximoDataSet.getString("ENTERDATE"); row["TOTALCOST"] = maximoDataSet.getString("TOTALCOST");
return (true);
以上编辑完之后,开始建立参数,右键report parameter—new parameters,如下图:
对参数进行设置,如下图:
三(开始绘制报表,选择master page,对纸张进行设置,如下图:
选择layout标签,右键空白区域,insert—table,如下图:
根据实际情况设置表格行列,这里我根据需要设置成一行四列,如下图:
表格如下
将数据集中的字段拖到表格上,将数据集与表格进行绑定。如下图:
对TOTALCOST 进行统计,步骤如下图:
对报表进行显示设置,选定绑定的字段,如下图:
设置表格边框,全选表格,如下
图:
将鼠标光标搭在选中的边上,当鼠标变成上下箭头时,右键,style—new style如下图:
选择boder 进行边框设置,如下图:
依次将style和width的四个选项设置成如图所示,点击ok,效果如下图:
至此一张简单的报表就制作完成了,可以点击preview预览效果,如下图:
如果是制作单页式(在工具栏上能看到)的报表,只需要在open中sql编辑和参数设置中进行如下图设置即可。
具体内容如下:
sqlText = "select WORKORDER.WONUM 编号,WORKORDER.RECTYPE 领用类型," + " PERSON.DPDESC 领用单位"
+ " from workorder,PERSON where"
+ " PERSON.personid=WORKORDER.reportedby and "
+params["where"]
参数设置如下图:
在导入系统时要注意选择浏览器视图,并且要给一个工具栏序列以及浏览器视图位置。如下图:
至此,报表的简单制作过程就结束了,其中有不完善的地方还请各位同事指出以便完善。