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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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 配置实例-动静分离