美文网首页
Jasper画交叉表

Jasper画交叉表

作者: CononYc丶 | 来源:发表于2019-11-07 10:35 被阅读0次

建立DataSet

先建立DataSet,也可以是用默认的主DataSet(直接使用Field),建立好之后,这里我建立的数据以下面为例

Field.png

注:我下面用到的字段不包含subGroup

创建交叉表

选择交叉表,拖入Summary的Brand

这里似乎只能是在Summary的Brand中加入交叉表,放入Detail的Brand会报错

选择交叉表.png

选择交叉表之后会弹出选择数据源的框,选择对应的数据源。

点击NEXT,会继续让选择列,这里选择数据源中的product

交叉表Columns.png

注意这里有几个选项在product后面

  • Order:表示排列的顺序

  • Total:表示总计的位置,如果没有选择none

  • Calculation:计算属性,这里是不能改的

然后选择行,和列一样的操作,一样的属性,这里不赘述

然后是选择值,这里的值是指下面标红的部分

交叉表的值.png

这里就只有一个属性Calculation,这个值是可选的,根据你选择字段的类型不同有不同的值,如字段类型是Integer的时候有sum,count,Lowest等属性,这里选择需要对传进来的字段值进行处理的方式,这里以sum为例

再点击NEXT就是到选择交叉表的样式的阶段了,这里不赘述

画好的交叉表如下:

画好的交叉表.png

使用Java填充数据

首先构造数据

//构造数据
List list = new ArrayList(9);
list.add(new DataTem("测试部门", "张三", "产品1", new BigDecimal(5)));
list.add(new DataTem("测试部门", "张三", "产品3", new BigDecimal(5)));
list.add(new DataTem("测试部门", "张三", "产品2", new BigDecimal(5)));
list.add(new DataTem("测试部门", "张三", "产品1", new BigDecimal(5)));
list.add(new DataTem("测试部门", "李四", "产品2", new BigDecimal(6)));
list.add(new DataTem("测试部门", "李四", "产品3", new BigDecimal(6)));
list.add(new DataTem("测试部门", "李四", "产品2", new BigDecimal(6)));
list.add(new DataTem("测试部门", "李四", "产品2", new BigDecimal(9)));
list.add(new DataTem("测试部门", "李四", "产品2", new BigDecimal(6)));

这里以导出HTML为例:

这里的.jasper文件是.jrxml编译后的文件

String jrxmlPath = "jrxml地址";
String jasperPath = "jasper地址";
try {
    JasperCompileManager.compileReport(jrxmlPath, jasperPath);
    JasperPrint jasperPrint = JasperFillManager.fillReport(absJasper, new HashMap(0),new JRBeanCollectionDataSource(list));
    JasperExportManager.exportReportToHtmlFile(jasperPrint, "生成的HTML地址");
} catch (JRException e) {
    e.printStackTrace();
}

也可以这样写,不指定jasper地址,用JasperReport对象替换他

String jrxmlPath = "jrxml地址";
try {
    JasperReport jasperReport = JasperCompileManager.compileReport(jrxmlPath);
    JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, new HashMap(0), new JRBeanCollectionDataSource(list));
    JasperExportManager.exportReportToHtmlFile(jasperPrint, "生成的HTML地址");
} catch (JRException e) {
    e.printStackTrace();
}

导出的效果


交叉表结果.png

相关文章

  • Jasper画交叉表

    建立DataSet 先建立DataSet,也可以是用默认的主DataSet(直接使用Field),建立好之后,这里...

  • MySQL - 连接详解

    student 表 score 表 交叉连接cross join交叉连接可不带 on 子句把表 student 和...

  • C# FastReporter交叉表使用方法

    一.新建交叉表 先看样图 1.首先新建交叉表这个没得说的 2,给交叉表绑定数据

  • Jasper画子报表

    Jasper子报表 使用子报表可以实现类似合并单元格的效果 画 使用static text在Column Head...

  • Sql之表的连接总结

    1、交叉连接(就是将两张表的数据 交叉组合在一起)有两张表 客户表:[Sales.Customers] 和订单表:...

  • 连接查询;外键

    连接查询 连接查询(join)分类:内连接、外连接、自然连接、交叉连接 使用方式:左表 join 右表 交叉连接(...

  • 连接查询;外键

    连接查询 连接查询(join)分类:内连接、外连接、自然连接、交叉连接 使用方式:左表 join 右表 交叉连接(...

  • spss学习8--交叉表分析

    多个变量在不同取值情况下的数据分布情况 1.概念: 交叉表;行列交叉的分类汇总表 交叉表分析:用于分析俩个或俩个以...

  • Mysql中的连接

    知识点:交叉连接内连接外连接:左外连接、右外连接 以下实验涉及到两张表,表a和表b如下 交叉连接 对两张表进行笛卡...

  • 2.21 透视表及交叉表

    类似excel数据透视 - pivot table / crosstab 1-数据透视图:按照新的方式来重新定义数...

网友评论

      本文标题:Jasper画交叉表

      本文链接:https://www.haomeiwen.com/subject/zkmmbctx.html