当前位置: 首页 > 知识库问答 >
问题:

创建没有数据源的动态报表,并将数据与页脚和页眉一起放在详细带上

拓拔君博
2023-03-14

我正在使用JasperReportBuilder并将报告导出为PDF格式。报告的全部内容由MultiPageListBuilder、HorizontalListBuilder和VerticalListBuilder生成,我不想传递数据源,因为数据来自不同的数据源。我想利用页脚以及页眉添加到静态页眉和页脚在每一页以及页码。如果我尝试使用addDetail(componentBuilder)方法在*Detail&band中添加MultiPageListBuilder(因为这个MultiPageListBuilder包含多个页面数据),将生成空白报告。如果我在标题或摘要带中添加MultiPageListBuilder,报表将完美生成,但页眉和页脚带将消失。

一个示例代码片段如下所示

JasperReportBuilder rpt = net.sf.dynamicreports.report.builder.DynamicReports.report();
MultiPageListBuilder multiPageList = cmp.multiPageList();
HorizontalListBuilder hrbld = cmp.horizontalList();

try {    
    rpt.addTitle(cmp.text("REPORT TITLE"));
    rpt.addTitle(cmp.text("--------------"));

    rpt.addPageHeader(cmp.pageXofY());

    for (int i = 0; i < 200; i++) {
        hrbld = cmp.horizontalList();
        hrbld.add(cmp.text("ABC " + i)).newRow();
        multiPageList.add(hrbld);
    }

    rpt.addDetail(multiPageList);

    rpt.summaryOnANewPage();
    rpt.addSummary(cmp.text("REPORT SUMMARY"));

    JasperPdfExporterBuilder pdfExporter = Exporters.pdfExporter("report.pdf");
    rpt.toPdf(pdfExporter);
    File file = new File("report.pdf");

    response.setContentType("application/pdf");

    return SUCCESS;
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        return ERROR;
    }

请帮忙。提前谢了。

共有1个答案

许展鹏
2023-03-14

我找到了一个解决方案,页眉和页脚只能与细节带一起使用。要使用详细信息带,您需要一个附加到报表的数据源。因此,设置一个空的数据源来报告,并获得可以放置数据的详细带,还可以使用页眉和页脚。空数据源可以设置为rpt.setDataSource(new JREmptyDataSource());,然后使用rpt.addDetail(multiPageList);进行报告。谢谢大家。

 类似资料:
  • 注意: Adobe Muse 不再添加新增功能,并将于 2020 年 3 月 26 日停止支持。有关详细信息和帮助,请参阅 Adobe Muse 服务结束页面。 使用 Adobe Muse 时,能以简单的方式创建网页的页眉和页脚。保持页眉和页脚元素不变,使网站的外观保持一致是不错的做法。要在 Adobe Muse 中实现这一点,可以在主页中定义页眉和页脚元素。更新主页会在网站的所有页面上完成更改。

  • 我在一个应用程序的工作,有一个回收视图,你可以向上和向下滚动,但你希望。 数据项是从服务器加载的,所以如果你要到达底部或顶部,应用程序会在那里显示新的数据。 为了避免奇怪的滚动行为并保持在当前项上,我使用'diffutil.callback',重写'get oldlistsize'、'get newlistsize'、'are itemsthesame'、'are contentsthesame'

  • 问题内容: 静态HTML /XHTML是否有一种不错的方法来创建要显示在网站的每个页面上的通用页眉/页脚文件?我知道您显然可以使用PHP或服务器端指令来执行此操作,但是有没有办法完全不依赖服务器将所有内容拼接在一起呢? 编辑:所有非常好的答案,这是我所期望的。HTML是静态的。没有运行服务器端或客户端的东西,没有真正的方法来改变它。我发现Server Side Includes似乎是我最好的选择,

  • 我最近在Spring开始使用thymeleaf模板引擎。我想实现的是-如果我的控制器是这样的 我更喜欢把头部部分作为页眉片段,内容来自控制器,页脚来自页脚片段。 所以总的来说--我是如何做到这一点的: /fragment/header.html http://www.thymeleaf.org/doc/articles/layouts.html https://looksok.wordpress.

  • 我在jasper报告中使用了这个表。当我把表放在详细信息部分时,它重复了这个表,所以我把它放在摘要带上。我也想在我的报告中添加页脚。 我怎么做这个jasper报告5.5?

  • 也许以前有人问过这个问题,但我似乎找不到一个准确的答案或解决办法。我开始使用RecycerView,并使用LinearLayoutManager实现了它。现在,我想添加自定义的页眉和页脚项,这些项不同于RecycerView中的其他项。页眉和页脚不应该粘,我希望他们滚动与其余的项目。有人能指出一些例子如何做到这一点或只是分享想法。我会非常感激的。THX