BIRT分页

Eclipse RCP入门(八)BIRT报表的分页和生成中间document

在朋友的帮助下,实现了BIRT的分页。
而且把BIRT的生成报表的过程分成了两个过程,
先要生成一个中间的DOCUMENT

核心代码修改如下

IRunTask task = engine.createRunTask(design);
//以前是调用IRunRenderTask,现在改为先run ,再render所以这里的方法变了
// 加入数据
task.setParameterValue("sample", "Carl");
List list = new ArrayList();
User user1 = new User("1", "sillycat");
User user2 = new User("2", "kiko");
User user3 = new User("3", "lovemike");
User user4 = new User("4", "mike");
User user5 = new User("5", "carl");
User user6 = new User("6", "kyy");
list.add(user3);
list.add(user2);
list.add(user1);
list.add(user4);
list.add(user5);
list.add(user6);
BirtDataSourceObject birtDataSourceObject = new BirtDataSourceObject();
birtDataSourceObject.setResultList(list);
task.addScriptableJavaObject("dsFactory", birtDataSourceObject);
//先生成中间DOCUMENT,这个时候已经有数据了
task.run("D:/birt/test.rptdocument");
task.close();
// 生成document成功

IReportDocument reportDocument = null;
reportDocument = engine
.openReportDocument("D:/birt/test.rptdocument");

IRenderTask renderTask = engine.createRenderTask(reportDocument);

// HTML
IRenderOption htmlOptions;
htmlOptions = new HTMLRenderOption();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
htmlOptions.setOutputStream(bos);
htmlOptions.setOutputFormat(HTMLRenderOption.OUTPUT_FORMAT_HTML);
renderTask.setRenderOption(htmlOptions);
renderTask.setPageNumber(1); //翻页的第一页
renderTask.render();
browser.setText(bos.toString());

// PDF
IRenderOption pdfOptions;
pdfOptions = new PDFRenderOption();
pdfOptions.setOutputFormat(PDFRenderOption.OUTPUT_FORMAT_PDF);
pdfOptions.setOutputFileName("D:/birt/test.pdf");
renderTask.setRenderOption(pdfOptions);
renderTask.setPageNumber(1);
renderTask.render();

// CSV
IRenderOption csvOptions;
csvOptions = new CSVRenderOption();
csvOptions.setOutputFileName("D:/birt/test.xls");
csvOptions.setOutputFormat(CSVRenderOption.OUTPUT_FORMAT_CSV);
renderTask.setRenderOption(csvOptions);
renderTask.setPageNumber(1);
renderTask.render();

// PPT
IRenderOption pptOptions;
pptOptions = new PPTRenderOption();
pptOptions.setOutputFileName("D:/birt/test.ppt");
pptOptions.setOutputFormat(PPTRenderOption.OUTPUT_FORMAT_PPT);
renderTask.setRenderOption(pptOptions);
renderTask.setPageNumber(1);
renderTask.render();

在test.rptdesign里面,选中table,在下面的properties里面有个
Page Break Interval的属性,就是分页的,设置多少个一页,就是平时的
page size
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值