欢迎来到天天文库
浏览记录
ID:33388699
大小:52.50 KB
页数:5页
时间:2019-02-25
《birt与web整合生成动态表》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、BIRT与WEB整合生成动态表有时候生成报表时,表的属性列不固定,这个时候用传统的BIRT构建表满足不了要求,我们可以通过BIRT整合WEB来生成动态表。具体方法如下:1、建立数据源和数据集新建一个“ScriptedDataSource”的数据源(以“PieDataSource”命名为例);从PieDataSource数据源中新建一个ScriptedDataSet数据集(以“PieDataSet”命名为例)。2、建立一个空的Table项新建一个1行1列的Table(Table以“PieTable”命名为例),拖入适当的布局区域,并绑定一个数据集P
2、ieDataSet。3、在BIRT设计页面中绑定JAVA类1)在数据集PieDataSet的EventHandler中绑定一个实现IScriptedDataSetEventHandler接口(或继承ScriptedDataSetEventHandler类)的自定义类(以“PieChartDataSetEventHandle”命名为例)。2)点击BIRT的报表设计工具的layout页面的空白处,在PropertyEditor的EventHandler标签中绑定一个继承ReportEventAdapter类(或实现IReportEventAdapte
3、r接口)的自定义类(以“PieChartReportEventHandle”命名为例)。4、代码编写1)数据集的绑定类PieChartDataSetEventHandle代码如下:publicclassPieChartDataSetEventHandleimplementsIScriptedDataSetEventHandler{//列属性数据(即表头数据)protectedIColumnMetaDatameta=null;//表头数量(即数据表中有多少列属性)protectedintmetaCount=0;protectedIterator4、ap>ite=null;//表头数据列表protectedListmetalist=newArrayList();//数据键值对列表protectedList>pojolist=newArrayList>();//存放ResultVOprotectedMaphash=newHashMap();publicvoidclose(IDataSetInstan5、cearg0)throwsScriptException{meta=null;ite=null;}@SuppressWarnings("unchecked")publicbooleandescribe(IDataSetInstancearg0,IScriptedDataSetMetaDataarg1)throwsScriptException{metalist.clear();metalist=(List)hash.get("metadata");pojolist=(List>)hash.ge6、t("result");Iteratoriterator=metalist.iterator();while(iterator.hasNext()){arg1.addColumn(iterator.next(),String.class);}returntrue;}publicbooleanfetch(IDataSetInstancearg0,IUpdatableDataSetRowarg1)throwsScriptException{if(ite==null7、8、!ite.hasNext()){returnfalse;}else{9、try{Mapcolmap=ite.next();for(intt=0;t10、etColumnMetaData();metaCount=meta.getColumnCount();ite=pojolist.iter
4、ap>ite=null;//表头数据列表protectedListmetalist=newArrayList();//数据键值对列表protectedList>pojolist=newArrayList>();//存放ResultVOprotectedMaphash=newHashMap();publicvoidclose(IDataSetInstan
5、cearg0)throwsScriptException{meta=null;ite=null;}@SuppressWarnings("unchecked")publicbooleandescribe(IDataSetInstancearg0,IScriptedDataSetMetaDataarg1)throwsScriptException{metalist.clear();metalist=(List)hash.get("metadata");pojolist=(List>)hash.ge
6、t("result");Iteratoriterator=metalist.iterator();while(iterator.hasNext()){arg1.addColumn(iterator.next(),String.class);}returntrue;}publicbooleanfetch(IDataSetInstancearg0,IUpdatableDataSetRowarg1)throwsScriptException{if(ite==null
7、
8、!ite.hasNext()){returnfalse;}else{
9、try{Mapcolmap=ite.next();for(intt=0;t10、etColumnMetaData();metaCount=meta.getColumnCount();ite=pojolist.iter
10、etColumnMetaData();metaCount=meta.getColumnCount();ite=pojolist.iter
此文档下载收益归作者所有