首页 > 编程语言 >JasperReport-父子报表

JasperReport-父子报表

时间:2022-09-20 14:36:19浏览次数:68  
标签:报表 parameters 父子 JasperReport jasper getUserList put new

4 父子报表

4.1 概述

复杂报表或数据内容较多的时候,可以使用子报表解决。

4.2 制作父报表

首先制作父报表,就是调用子报表的一个基础报表。主报表的作用有如下两种:

父报表中需要显示数据,使用子报表弥补studio设计的不足
父报表不需要显示任何数据,只是作为子报表的载体。适用于复杂报表的设计

4.3 制作子报表

点击组件面板上的“Subreport”按钮,拖动到报表工作区上。
image

系统会自动弹出子报表选择窗口。可以选择创建一个新报表,还是使用一个已有的报表作为子报表。
image

选择“Create a new report”,可以立即制作新的子报表;如果选择“Select an existing report”,则可以调用已经有的报表作为子报表;如果选择“Just create the subreport element”,系统会生成一个子报表区,可以在之后挂接需要的子报表。

4.4 参数传递

image

 	//测试父子模板
    @GetMapping("/testJasper07")
    public void createPdf(HttpServletRequest request, HttpServletResponse response) 
throws Exception {
        //1.引入jasper文件
        Resource resource = new ClassPathResource("templates/main.jasper");
        FileInputStream fis = new FileInputStream(resource.getFile());
        //2.创建JasperPrint,向jasper文件中填充数据
        ServletOutputStream os = response.getOutputStream();
        try {
            HashMap parameters = new HashMap();
            Resource subResource = new ClassPathResource("templates/sub-group.jasper");
            parameters.put("subpath",subResource.getFile().getPath());
            parameters.put("sublist",getUserList());
            parameters.put("sublist",getUserList());
            JRBeanCollectionDataSource ds = new
JRBeanCollectionDataSource(getUserList());
            JasperPrint print = JasperFillManager.fillReport(fis, parameters,new
JREmptyDataSource());
            //3.将JasperPrint已PDF的形式输出
            JasperExportManager.exportReportToPdfStream(print,os);
            response.setContentType("application/pdf");
       } catch (JRException e) {
            e.printStackTrace();
       }finally {
            os.flush();
       }
   }
    //创建数据库Connection
    public List<User> getUserList() throws Exception {
        List<User> list = new ArrayList<>();
        for(int i=1;i<=3;i++) {
            User user = new User("it00"+i, "itcast"+i, "1380000000"+i, "传智播客", "讲 师");
            list.add(user);
       }
        for(int i=1;i<=3;i++) {
            User user = new User("hm00"+i, "itheima"+i, "1880000000"+i, "黑马程序员", "讲 师");
            list.add(user);
       }
        return list;
   }

标签:报表,parameters,父子,JasperReport,jasper,getUserList,put,new
From: https://www.cnblogs.com/leepandar/p/16710933.html

相关文章

  • JasperReport-用户档案下载
    5用户档案下载5.1搭建环境(1)配置坐标 <dependency><groupId>net.sf.jasperreports</groupId><artifactId>jasperreports</artifactId......
  • JasperReport-开发-步骤
    6JasperReport的开发步骤6.1JasperReport生命周期通常我们提到PDF报表的时候,浮现在脑海中的是最终的PDF文档文件。在JasperReports中,这只是报表生命周期的最后阶段。......
  • 快速学习JasperReport-数据填充
    1数据填充我们介绍了如何使用JasperReport来生成简单的文本报表,正式企业开发中动态数据展示也是报表中最重要的一环,接下来我们共同研究的就是填充动态数据到PDF报表中。......
  • abap 报表开发 一些功能汇总
    以一个test报表记录开发遇到的情况以及处理的问题只是一个知识点的记录,主要是为了自己方便查找,如果能帮到其他学习的人,十分荣幸报表名称*&---------------------------......
  • 如何快速开发灵活自定义报表
    大数据时代对管理提出了新的要求,数据就是企业的生产力,所以报表设计的重要性便体现了出来,如何做好报表开发,如何利用报表对数据进行合理利用,许多企业仍然没有摸索到正确的思......
  • 全局右键菜单点击弹窗打开指定报表
    最近收到领导提出的一个需求,大致如下:用户在决策平台使用报表时,如果发现某张报表有问题时可以随时右键进行反馈,信息部在接收到反馈时可以根据用户的反馈快速定位并解决问题......
  • 报表进阶--参数面板添加
    有时候我们并不需要看所有的数据,比如在销量表中,我们只想看”华北“地区的数据,这个时候我们就需要一个控件能帮助我们过滤掉其他的地区数据。这里我们就要从sql开始设置......
  • 【Unity学习笔记】Transform—父子关系
    1.获取和设置父对象子对象在世界坐标系下的位置是加法运算:子对象在世界坐标系下的位置=子对象的位置+父对象的位置子对象在世界坐标系下的缩放是乘法运算:子对象在世......
  • RDLC报表设计1: 添加ReportViewer Control
    https://docs.microsoft.com/en-us/sql/reporting-services/application-integration/integrating-reporting-services-using-reportviewer-controls-get-started?view=sql......
  • 分组报表
    操作步骤:1、新建一个普通报表2、新建一个数据源,查询语句如下select*from销量3、拖动地区、销售员、销量列到设计器4、销量那一列设置数据设置为分组求和。5......