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里面,按需自己組裝即可。

 

 

 最終效果圖

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM