BIRT与WEB整合生成动态表

上传人:汽*** 文档编号:465511315 上传时间:2023-12-25 格式:DOC 页数:5 大小:34.01KB
返回 下载 相关 举报
BIRT与WEB整合生成动态表_第1页
第1页 / 共5页
BIRT与WEB整合生成动态表_第2页
第2页 / 共5页
BIRT与WEB整合生成动态表_第3页
第3页 / 共5页
BIRT与WEB整合生成动态表_第4页
第4页 / 共5页
BIRT与WEB整合生成动态表_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《BIRT与WEB整合生成动态表》由会员分享,可在线阅读,更多相关《BIRT与WEB整合生成动态表(5页珍藏版)》请在金锄头文库上搜索。

1、BIRT与WEB整合生成动态表有时候生成报表时,表的属性列不固定,这个时候用传统的BIRT构建表满足不了要求,我们可以通过BIRT整合WEB来生成动态表。具体方法如下:1、 建立数据源和数据集新建一个 “Scripted Data Source”的数据源(以“PieDataSource”命名为例);从PieDataSource 数据源中新建一个 Scripted Data Set 数据集(以“PieDataSet”命名为例)。2、 建立一个空的 Table 项新建一个1行1列的Table (Table 以 “PieTable” 命名为例),拖入适当的布局区域,并绑定一个 数据集 PieData

2、Set 。3、 在BIRT 设计页面中绑定JAVA类1) 在数据集 PieDataSet 的 Event Handler 中绑定一个实现 IScriptedDataSetEventHandler接口(或继承 ScriptedDataSetEventHandler 类)的自定义类(以“PieChartDataSetEventHandle”命名为例)。2) 点击BIRT的报表设计工具的 layout 页面的空白处,在 Property Editor 的 Event Handler 标签中绑定一个继承 ReportEventAdapter 类(或实现 IReportEventAdapter接口)的自

3、定义类(以 “PieChartReportEventHandle”命名为例)。4、 代码编写1) 数据集的绑定类PieChartDataSetEventHandle代码如下:public class PieChartDataSetEventHandle implements IScriptedDataSetEventHandler /列属性数据(即表头数据)protected IColumnMetaData meta = null;/表头数量(即数据表中有多少列属性)protected int metaCount = 0;protected IteratorMap ite = null;/表头

4、数据列表protected List metalist = new ArrayList();/数据键值对列表protected ListMap pojolist = new ArrayListMap();/存放 ResultVOprotected Map hash = new HashMap();public void close(IDataSetInstance arg0) throws ScriptException meta = null;ite = null;SuppressWarnings(unchecked)public boolean describe(IDataSetInsta

5、nce arg0, IScriptedDataSetMetaData arg1)throws ScriptException metalist.clear();metalist = (List) hash.get(metadata);pojolist = (ListMap) hash.get(result);Iterator iterator = metalist.iterator();while(iterator.hasNext()arg1.addColumn(iterator.next(), String.class);return true;public boolean fetch(ID

6、ataSetInstance arg0, IUpdatableDataSetRow arg1)throws ScriptException if (ite = null | !ite.hasNext() return false; else try Map colmap = ite.next();for (int t = 0; t metalist.size(); t+) arg1.setColumnValue(metalist.get(t), colmap.get(String.valueOf(t + 1); catch (ScriptException e) e.printStackTra

7、ce();return true;public void open(IDataSetInstance arg0) throws ScriptException try meta = arg0.getColumnMetaData();metaCount = meta.getColumnCount();ite = pojolist.iterator(); catch (Exception e) e.printStackTrace();public void afterClose(IReportContext arg0) throws ScriptException public void afte

8、rOpen(IDataSetInstance arg0, IReportContext arg1)throws ScriptException public void beforeClose(IDataSetInstance arg0, IReportContext arg1)throws ScriptException SuppressWarnings(unchecked)public void beforeOpen(IDataSetInstance arg0, IReportContext arg1)throws ScriptException hash = (Map) arg1.getP

9、arameterValue(resultvo);public void onFetch(IDataSetInstance arg0, IDataSetRow arg1,IReportContext arg2) throws ScriptException 2)PieChartReportEventHandle中的 beforeFactory 方法代码:try ElementFactory elementFactory = reportContext.getDesignHandle().getElementFactory();/获取 Table 的句柄TableHandle mytable =

10、(TableHandle) reportContext.getDesignHandle().findElement(PieTable);/设置 Table 的宽度mytable.setWidth(100%);PropertyHandle colbinds = mytable.getColumnBindings( );/取列表头文件PieResultDao dao=new PieResultDao();Map hash=dao.getResultMap();reportContext.setParameterValue(resultvo, hash);if(hash!= null&hash.ge

11、t(metadata)!=null)List list=(List)hash.get(metadata);RowHandle myheader = (RowHandle) mytable.getHeader( ).get( 0 );/获得表格头RowHandle mydetail = (RowHandle) mytable.getDetail().get(0);/获得明细行int i=0;/计列数for(String column : list)/添加数据绑定列ComputedColumn cs = StructureFactory.createComputedColumn( );cs.set

12、Name( column );cs.setExpression( dataSetRow+column+);colbinds.addItem( cs );mytable.insertColumn(i,1);/循环插入新列,每次加在最后一列的后面/ColumnHandle mycolumn = (ColumnHandle) mytable.getColumns().get(i); 可以得到表的列添加属性/mycolumn.setProperty(width, 2cm);/数据列CellHandle dcell = (CellHandle) mydetail.getCells().get(i);/取

13、得明细行单元格/设置数据列样式dcell.setProperty(borderBottomColor,#000000);dcell.setProperty(borderBottomStyle,solid);dcell.setProperty(borderBottomWidth,1px);dcell.setProperty(borderLeftColor,#000000);dcell.setProperty(borderLeftStyle,solid);dcell.setProperty(borderLeftWidth,1px);dcell.setProperty(borderRightColor,#000000);dcell.setProperty(borderRightStyle,solid);dcell.setProperty(borderRightWidth,1px);dcell.setProperty(borderTopColor,#000000);dcell.setProperty(borderTop

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号