zoukankan      html  css  js  c++  java
  • JasperReport制作行内容合并的表格

    效果图:

    实现思路一:

    交叉表

    另一个思路:

    普通表格 

    缺点:无法实现内容 垂直居中显示

    准备工作

    一、数据准备

    DROP TABLE IF EXISTS `address_item_sex_value`;
    CREATE TABLE `address_item_sex_value` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `address` varchar(255) DEFAULT NULL,
      `sex` varchar(255) DEFAULT NULL,
      `item` varchar(255) DEFAULT NULL,
      `value` int(11) DEFAULT NULL,
      `proportion` int(11) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=34 DEFAULT CHARSET=utf8;
    
    -- ----------------------------
    -- Records of address_item_sex_value
    -- ----------------------------
    INSERT INTO `address_item_sex_value` VALUES ('1', '城区', '男生', '指标1', '2', '50');
    INSERT INTO `address_item_sex_value` VALUES ('2', '远郊', '男生', '指标1', '3', '40');
    INSERT INTO `address_item_sex_value` VALUES ('3', '近郊', '男生', '指标1', '1', '60');
    INSERT INTO `address_item_sex_value` VALUES ('9', '城区', '女生', '指标1', '3', '40');
    INSERT INTO `address_item_sex_value` VALUES ('10', '远郊', '女生', '指标1', '5', '50');
    INSERT INTO `address_item_sex_value` VALUES ('11', '近郊', '女生', '指标1', '4', '60');
    INSERT INTO `address_item_sex_value` VALUES ('15', '城区', '男生', '指标2', '6', '70');
    INSERT INTO `address_item_sex_value` VALUES ('16', '远郊', '男生', '指标2', '3', '50');
    INSERT INTO `address_item_sex_value` VALUES ('17', '近郊', '男生', '指标2', '5', '30');
    INSERT INTO `address_item_sex_value` VALUES ('18', '城区', '女生', '指标2', '7', '20');
    INSERT INTO `address_item_sex_value` VALUES ('19', '远郊', '女生', '指标2', '3', '10');
    INSERT INTO `address_item_sex_value` VALUES ('20', '近郊', '女生', '指标2', '6', '50');
    INSERT INTO `address_item_sex_value` VALUES ('21', '城区', '男生', '指标3', '2', '50');
    INSERT INTO `address_item_sex_value` VALUES ('22', '远郊', '男生', '指标3', '3', '40');
    INSERT INTO `address_item_sex_value` VALUES ('23', '近郊', '男生', '指标3', '1', '60');
    INSERT INTO `address_item_sex_value` VALUES ('25', '城区', '女生', '指标3', '3', '40');
    INSERT INTO `address_item_sex_value` VALUES ('26', '远郊', '女生', '指标3', '5', '50');
    INSERT INTO `address_item_sex_value` VALUES ('27', '近郊', '女生', '指标3', '4', '60');
    INSERT INTO `address_item_sex_value` VALUES ('28', '城区', '男生', '指标4', '6', '70');
    INSERT INTO `address_item_sex_value` VALUES ('29', '远郊', '男生', '指标4', '3', '50');
    INSERT INTO `address_item_sex_value` VALUES ('30', '近郊', '男生', '指标4', '5', '30');
    INSERT INTO `address_item_sex_value` VALUES ('31', '城区', '女生', '指标4', '7', '20');
    INSERT INTO `address_item_sex_value` VALUES ('32', '远郊', '女生', '指标4', '3', '10');
    INSERT INTO `address_item_sex_value` VALUES ('33', '近郊', '女生', '指标4', '6', '50');

    二、设置SQL与字段

    SELECT report.address_item_sex_value.id,
        report.address_item_sex_value.address,
        report.address_item_sex_value.sex,
        report.address_item_sex_value.item,
        report.address_item_sex_value.value,
        1 a
    FROM report.address_item_sex_value order by report.address_item_sex_value.address

    SQL中有一个空闲的字段a、有一个默认值。很重要、是为了X轴的交叉表做考虑

    三、设计列表

    设置横列

    1、选择字段a

    2、设置total(按需要、这里不需要汇总列)

    设置竖列

     

    设置交叉值

    四、设计显示

    删除横列值

    设置Column groups高度

    设置高度为 0px

    效果图

     设置 水平居中、垂直居中

    表头部分说一下

    表头放在ColumnHeader里面,按需自己组装即可。

     最终效果图

  • 相关阅读:
    Web自动化测试之滑动验证码的解决方案
    设计模式之单例
    设计模式之原型
    设计模式之建造者
    DG环境RMAN删除归档报错RMAN-08137: archived log not deleted【转载】
    RFS[3]: No standby redo logfiles available for thread 1
    spring-boot之webflux简单入门
    spring-boot-security组件总结补充
    spring-boot启用security组件 · 下
    spring-boot启用security组件 · 中
  • 原文地址:https://www.cnblogs.com/tusheng/p/10621520.html
Copyright © 2011-2022 走看看