JasperReport 交叉表crosstab的使用

 


效果图:

准备工作

一、数据准备

复制代码
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 address_item_sex_value.id,
    address_item_sex_value.address,
    address_item_sex_value.sex,
   address_item_sex_value.item,
    address_item_sex_value.value,
    1 a
FROM address_item_sex_value order by address_item_sex_value.address

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

三、设计列表

设置横列

1、选择字段a

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

设置竖列

 

设置交叉值

 

四、设计显示

删除横列值

设置Column groups高度

设置高度为 0px

效果图

 设置 水平居中、垂直居中

表头部分说一下

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

 最终效果图

 

摘自:https://www.cnblogs.com/tusheng/p/10621520.html

posted @   Arbitrary233  阅读(1437)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2020-04-20 2、zookeeper注册中心环境搭建
2020-04-20 1、Dubbo介绍
2020-04-20 6、Nginx的原理
2020-04-20 5、Nginx 配置实例-keepalived + nginx 实现高可用集群方案
2020-04-20 5、Nginx 配置实例-动静分离
点击右上角即可分享
微信分享提示