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