首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 企业软件 > 行业软件 >

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

2012-10-25 
Eclipse RCP入门(八)BIRT报表的分页和生成中间documentEclipse RCP入门(八)BIRT报表的分页和生成中间docum

Eclipse RCP入门(八)BIRT报表的分页和生成中间document
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

热点排行