`

BIRT分页

    博客分类:
  • 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
分享到:
评论
2 楼 kjj 2009-05-27  
代码太乱了!!
1 楼 fanth 2009-02-04  
Page Break Interval设置的是按table的行数进行分页,其实不准确的。试想table中的数据是动态数据,那么可能一行中有某列的数据比较长(超过预设宽度)那么该行会自动换行,而这个自动换行将不计入分页的行。这样显示出来的报表,不同的页的显示高度可能是不一样的,所以我觉得用Page Break Interval来设置分页,其实不准确。

相关推荐

    fire bird常用sql语句

    fire bird常用sql语句 一、分页写法小例: 二、显示表名和表结构 三、使用ISQL连接数据库 四、更新字段注释 五、显示字段注释 六、更新表注释 七、查询所有的表和视图(包括系统表和系统视图) 八、查询所有的用户表...

    Pigeon:SwiftUI(和UIKit)的异步状态管理:bird:

    鸽子 :bird: 介绍 Pigeon是一个SwiftUI和UIKit库,依赖于Combine处理异步数据。它在很大程度上受到启发。 简而言之 使用Pigeon,您可以: 获取服务器端API。 使用可互换和可配置的缓存提供程序缓存服务器响应。 在...

    hylia-website:Hylia是一个轻量级的Eleventy入门套件,可帮助您创建自己的博客或个人网站

    Eleventy的简单入门套件 Hylia是预先配置了的轻量级入门套件,因此您可以在几分钟之内一键... :speech_balloon: 注释 :light_bulb: 暗/亮模式切换 :speaking_head: Webmentions :open_book: 分页 :bird: 网络共享API集

    从命令行如何查看Linux日志

    一些桌面应用程序可能会将日志保存在其它位置,例如Thunderbird的崩溃报告保存在用户目录下的 ~/.thunderbird/CrashReports文件夹中。 接下来,我们将详细介绍几种常见的命令行工具,以帮助管理员查看和分析日志...

    html转pdf(亲测可用)

    6. 性能优化:由于转换过程涉及到大量的DOM遍历和渲染,对于大型或复杂的HTML结构,可能需要考虑分页、延迟加载或服务端处理等优化策略。 总之,`jspdf`和`html2canvas`的组合为JavaScript环境下的HTML转PDF提供了...

    乐优商城.xmind

    注意 Bule_bird 就必须写成 BlueBird Brand 查询 实体类 PageResult 响应结果 分页结果一般至少需要两个数据 总条数 total 当前页数据 items 有些还需要总页数 总页数 totalPage Controller @...

    corpoetica-hylia

    Eleventy的简单入门工具包Hylia是预先配置了的轻型入门套件,因此您可以在几分钟内...:speech_balloon: 注释 :light_bulb: 暗/亮模式切换 :speaking_head: Webmentions :open_book: 分页 :bird: 网络共享API集成 :spir

    lia

    Eleventy的简单入门套件 Hylia是预先配置了的轻量级入门套件,因此您可以在几分钟... :speech_balloon: 注释 :light_bulb: 暗/亮模式切换 :speaking_head: Webmentions :open_book: 分页 :bird: 网络共享API集成 :spir

    corpoetica-forestry-hylia

    Eleventy的简单入门工具包Hylia是预先配置了的轻量级入门套件,因此您可以在几分钟之内...:speech_balloon: 注释 :light_bulb: 暗/亮模式切换 :speaking_head: Webmentions :open_book: 分页 :bird: 网络共享API集成

    hylia-Feb17

    Eleventy的简单入门工具包 Hylia是预先配置了的轻量级入门套件,因此您可以在几分钟之内... :speech_balloon: 注释 :light_bulb: 暗/亮模式切换 :speaking_head: Webmentions :open_book: 分页 :bird: 网络共享API集成

    hylia

    Eleventy的简单入门工具包 Hylia是预先配置了的轻量级入门工具包,因此您可以在几分钟之... :speech_balloon: 注释 :light_bulb: 暗/亮模式切换 :speaking_head: Webmentions :open_book: 分页 :bird: 网络共享API集成

    herding-cats

    Eleventy的简单入门工具包Hylia是预先配置了的轻量级入门工具包,因此您可以在...:speech_balloon: 注释 :light_bulb:暗/亮模式切换 :speaking_head: Webmentions :open_book:分页 :bird:网络共享API集成 :spiral_notep

    InvestorSearch:与DreamIt Ventures合作,共同开发一种工具,以寻找可能对您的创业公司感兴趣的投资者

    我们创建了一个递归函数,将每个页面的结果包装在一个Promise中(使用Bluebird库)。 兑现承诺后,我们将遍历下一页,直到到达最后一页。 未来的改进 增加了单个用户创建多个列表的能力。 为用户添加了

    php数组函数序列之array_slice() – 在数组中根据条件取出一段值,并返回

    - **分页**:在实现数据分页时,可以使用 `array_slice()` 获取当前页面的数据。 - **随机取样**:结合随机数,可以用来从数组中随机抽取一部分元素。 - **组合功能**:与其他数组函数如 `array_splice()` 结合使用...

    web前端 ,pdf格式文档在线预览

    你可能需要借助polyfills库(如es5-shim和es5-sham)以及Promise的polyfill(如bluebird)来确保代码在旧版IE中的正常运行。 最后,考虑到性能和用户体验,你可能需要实现一些优化策略,比如懒加载、分页预加载或者...

    jsp留言本.rar

    最后,通过运行和调试项目,确保所有功能正常工作,并尝试对其进行优化和扩展,例如添加用户身份验证、引入分页机制或改进数据验证规则。 总的来说,"jsp留言本.rar"是一个适合初学者实践的项目,它涵盖了Web开发中...

    SSH个人相册项目

    - 照片浏览:展示用户的照片,可能包含分页和排序功能。 - 照片评论:允许用户对照片进行评论,这涉及到额外的消息模型和社交互动。 - 搜索功能:通过关键字搜索照片或用户。 5. **优化与扩展**:虽然这个项目...

Global site tag (gtag.js) - Google Analytics