FineReport 参数级联查询与树集分组序号
一、参数级联查询
一般情况下,多是使用下拉框直接查询报表记录。但有时会涉及到多级级联关系的参数查询,如利用省市区三级级联查询:
首先,需要找出三级级联的关系;然后,创建三个下拉框;最后,使用三级参数查询报表。
1、创建好需要的数据表:表很重要
省市区对应的父子关系表:
具体使用到关联省市区表的业务信息表: 测试简单创建的表
DROP TABLE IF EXISTS `t_project`;
CREATE TABLE `t_project` (`id` int(11) NOT NULL,`name` varchar(200) DEFAULT NULL,`provice_city_county_id` int(11) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ----------------------------
-- Records of t_project
-- ----------------------------
INSERT INTO `t_project` VALUES ('1001', '陕西-省内项目', '3');
INSERT INTO `t_project` VALUES ('1002', '陕西西安-市内项目', '8');
INSERT INTO `t_project` VALUES ('1003', '陕西西安-长安区内项目', '16');
INSERT INTO `t_project` VALUES ('1004', '陕西西安-碑林区内项目', '17');
INSERT INTO `t_project` VALUES ('1005', '陕西西安-长安区内项目', '16');
INSERT INTO `t_project` VALUES ('1006', '陕西渭南-市内项目', '9');
INSERT INTO `t_project` VALUES ('1007', '安徽-省内项目', '2');
INSERT INTO `t_project` VALUES ('1008', '安徽-省内项目', '2');
INSERT INTO `t_project` VALUES ('1009', '安徽芜湖-市内项目', '7');
INSERT INTO `t_project` VALUES ('1010', '安徽芜湖-市内项目', '7');
INSERT INTO `t_project` VALUES ('1011', '浙江-省内项目', '1');
INSERT INTO `t_project` VALUES ('1012', '浙江-省内项目', '1');
INSERT INTO `t_project` VALUES ('1013', '浙江-省内项目', '1');
INSERT INTO `t_project` VALUES ('1014', '浙江杭州-市内项目', '4');
INSERT INTO `t_project` VALUES ('1015', '浙江杭州-市内项目', '4');
INSERT INTO `t_project` VALUES ('1016', '浙江杭州-西湖区内项目', '10');
INSERT INTO `t_project` VALUES ('1017', '浙江杭州-滨江区内项目', '11');
INSERT INTO `t_project` VALUES ('1018', '浙江杭州-萧山区内项目', '12');-- ----------------------------
-- Table structure for `t_provice_city_county`
-- ----------------------------
DROP TABLE IF EXISTS `t_provice_city_county`;
CREATE TABLE `t_provice_city_county` (`id` bigint(10) NOT NULL AUTO_INCREMENT,`parentid` bigint(10) DEFAULT NULL,`name` varchar(255) DEFAULT NULL,`code` varchar(255) DEFAULT NULL,`seqno` int(11) DEFAULT NULL,`levelno` int(11) DEFAULT NULL,`decode` varchar(255) DEFAULT NULL,`description` varchar(255) DEFAULT NULL,`status` int(11) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8;-- ----------------------------
-- Records of t_provice_city_county
-- ----------------------------
INSERT INTO `t_provice_city_county` VALUES ('1', '0', '浙江省', '', null, '1', '0_1_', null, '1');
INSERT INTO `t_provice_city_county` VALUES ('2', '0', '安徽省', '', null, '1', '0_2_', null, '1');
INSERT INTO `t_provice_city_county` VALUES ('3', '0', '陕西省', '', null, '1', '0_3_', null, '1');
INSERT INTO `t_provice_city_county` VALUES ('4', '1', '杭州市', null, null, '2', '0_1_4_', null, '1');
INSERT INTO `t_provice_city_county` VALUES ('5', '1', '嘉兴市', null, null, '2', '0_1_5_', null, '1');
INSERT INTO `t_provice_city_county` VALUES ('6', '2', '合肥市', null, null, '2', '0_2_6_', null, '1');
INSERT INTO `t_provice_city_county` VALUES ('7', '2', '芜湖市', null, null, '2', '0_2_7_', null, '1');
INSERT INTO `t_provice_city_county` VALUES ('8', '3', '西安市', null, null, '2', '0_3_8_', null, '1');
INSERT INTO `t_provice_city_county` VALUES ('9', '3', '渭南市', null, null, '2', '0_3_9_', null, '1');
INSERT INTO `t_provice_city_county` VALUES ('10', '4', '西湖区', null, null, '3', '0_1_4_10_', null, null);
INSERT INTO `t_provice_city_county` VALUES ('11', '4', '滨江区', null, null, '3', '0_1_4_11', null, '1');
INSERT INTO `t_provice_city_county` VALUES ('12', '4', '萧山区', null, null, '3', '0_1_4_12', null, '1');
INSERT INTO `t_provice_city_county` VALUES ('13', '5', '桐乡市', null, null, '3', '0_1_5_13_', null, '1');
INSERT INTO `t_provice_city_county` VALUES ('14', '6', '肥西县', null, null, '3', '0_2_6_14_', null, '1');
INSERT INTO `t_provice_city_county` VALUES ('15', '7', '鸠江区', null, null, '3', '0_2_7_15_', null, '1');
INSERT INTO `t_provice_city_county` VALUES ('16', '8', '长安区', null, null, '3', '0_3_8_16_', null, '1');
INSERT INTO `t_provice_city_county` VALUES ('17', '8', '碑林区', null, null, '3', '0_3_8_17_', null, '1');
INSERT INTO `t_provice_city_county` VALUES ('18', '9', '富平县', null, null, '3', '0_3_9_18_', null, '1');
2、在 FineReport 创建数据集
项目测试表
SELECT t1.name projectname,t1.provice_city_county_id,t2.name t2name,t2.decode,t2.status
FROM t_project t1 left join t_provice_city_county t2 on t1.provice_city_county_id=t2.id
where1=1${if(len(省) == 0, "", "and t2.decode like '" + 省 + "%'" )}${if(len(市) == 0, "", "and t2.decode like '" + 市 + "%'" )}${if(len(区县) == 0, "", "and t2.decode like '" + 区县 + "%'" )}
然后,创建 省、市、区数据集作为 参数查询的数据字典
省
SELECT decode, name FROM `t_provice_city_county` where levelno=1
市
SELECT decode, name FROM `t_provice_city_county` where levelno=2 and
${if(len(省)>0, "decode like '"+省+"%' ", "false")}
区县
SELECT decode, name FROM `t_provice_city_county` where levelno=3 and
${if(len(市)>0, "decode like '"+市+"%' ", "false")}
3、 报表的制作
1) 省市区三级级联关系的参数
下图为参数省,其他同理
2)报表展示内容:简单展示下
说明一下:多级级联关系的参数查询时,前面一级没选,后面的参数都不可选。
二、树集分组序号
在上面的基础上,进行树集分组序号显示
1、再创建一个数据集用于树: 省市区表
SELECT * FROM `t_provice_city_county`
2、创建树数据集, 用到省市区表数据集的 id 和 parentid
3、报表内容进行树集分组序号展示:
1)把要展示的信息放置好:
树数据集:B4 默认,B6 左父格为B4,B8 左父格为B6。然后都设置相同形态显示
B5-E5: 列表,左父格为B4,过滤为provice_city_county_id = B4
B7-E7: 列表,左父格为B6,过滤为provice_city_county_id = B6
B9-E9: 列表,左父格为B8,过滤为provice_city_county_id = B8
效果为:
2)设置分组序号和去掉空行
A4:插入公式为 numto(&B4, false),左父格为B4
A5:条件属性 if(len(B5) > 0, seq(B4), ""),左父格为B5
A7:条件属性 if(len(B7) > 0, seq(B4), ""),左父格为B7
A9:条件属性 if(len(B9) > 0, seq(B4), ""),左父格为B9
A6:左父格为B4
A8:左父格为B6
A4-A9:扩展方向为纵向
B5-B9:添加无数据隐藏行的条件
len($$$) = 0 //"$$$"表示当前值
参考文章:
隐藏行时序号不连续的解决方案
效果为:
3)到此基本完成,根据需求添加一个求和个数
各分层级别单独求个数, 然后合计各分层级别的数量,即:项目的总数。
C3:插入公式为SUM(C4) + SUM(C6) + SUM(C8)
C4:汇总(个数),过滤为:provice_city_county_id = B4,其他默认
C6:汇总(个数),过滤为:provice_city_county_id = B6,其他默认
C8:汇总(个数),过滤为:provice_city_county_id = B8,其他默认
效果为:
FineReport 参数级联查询与树集分组序号相关推荐
- finereport文本框如何实现多值查询_如何实现参数级联查询
参数级联查询是查询控件之间的一种互动方式,比如在某个下拉框选定选项后,另一个下拉框里的选项范围会随之变化.润乾报表提供了多种编辑风格,每种编辑风格都有丰富的属性,以此为基础实现参数级联查询也很简单.下 ...
- select下拉框带模糊查询_如何实现参数级联查询
参数级联查询是查询控件之间的一种互动方式,比如在某个下拉框选定选项后,另一个下拉框里的选项范围会随之变化.润乾报表提供了多种编辑风格,每种编辑风格都有丰富的属性,以此为基础实现参数级联查询也很简单.下 ...
- c3p0 参数 模糊查询_mybatis之动态sql,模糊查询,结果集处理,mybatis分页及特殊字符处理...
目标及项目目录结构 目标 1.mybatis动态sql 2.模糊查询 3.查询返回结果集的处理 4.分页查询 5.特殊字符处理 项目的目录结构 1.mybatis动态sql If.trim.forea ...
- 数据科学、管理科学系课程教学课件——FineReport实验指导书节选====明细表、分组表、交叉表
数据科学.管理科学系的数据大屏.数据报表.商务智能.管理信息系统等课程教学,只需简单的数据库基础,解放学生码代码的时间,用更真实的企业案例,更灵活的将思维落地.本节讲述的是通用报表的分析案例:明细 ...
- 【Web开发】级联查询(Ajax/ jQuery/ Servlet)
实现级联查询 共有两个下拉框,第一级为学院,第二级为学院开设的科目. 实现的功能为:当改变学院的选择,第二级下拉框需变为对应学院开设的科目内容. 结果预览: jsp页面 <%@ page con ...
- mysql按照学生分组查询_将student表按照gender字段值进行分组查询,并计算每个分组中有多少名学生_学小易找答案...
[简答题]查询student表中一共有多少条记录 [简答题]在department表和employee表之间分别使用where查询.自连接查询 [简答题]使用DESC查看学生表和班级表 [简答题]在表 ...
- mybatis 级联查询
有时候我们的POJO对象经常不是一个简单的对象,往往存在着一对一或者一对多的关系.就如一个学生可以有一个班主任,有多门课程一样: public class StudentCourse {private ...
- 乐优商城之规格参数商品查询(十)
文章目录 (一)规格参数表结构 (二)数据库表单分析 (三)规格参数组页面分析 (四)规格参数组查询的代码实现 (五)规格参数页面分析 (六)规格参数查询的代码实现 (七)表关系 (八)标结构场景解析 ...
- mysql 将查询所得结果集的某一字段拼接成字符串
前言 mysql 5.5.40 将查询所得结果集的某一字段拼接成字符串 将菜单树的所有根节点(parent_id=0)的id拼接成字符串. sql 代码: select GROUP_CONCAT(me ...
最新文章
- 阿里巴巴Java开发规约插件p3c
- xttdbopen.sql
- phpcms v9网站的数据库配置文件在哪
- Bootstrap3 折叠插件的调用方式
- centOS 7镜像文件下载
- uniapp ---- 添加分页
- 《代码敲不队》第八次团队作业:Alpha冲刺 第五天
- Unable to locate Spring NamespaceHandler for XML schema namespace
- 路由器能连接到电视上看电视吗?
- Visio自制直角箭头
- 解救空间不足无法启动的白苹果iPhone5S
- apche服务器网站访问503错误,apache部署python程序出现503错误的解决方法
- 数学函数最小值为什么可以通过导数=0来求出呢?
- 基于奇异值分解的图像压缩和信息隐藏
- 【python教程】揭秘京东|淘宝秒杀抢购背后的黑幕,为什么你总抢不到商品?
- Linux 4.15亮点特性
- 单元测试利器——手把手教你使用Mockito
- 1药网母公司路演PPT曝光:发行区间14到16美元 中旬上市
- Android wifi开发包含列表获取点击连接wifi
- 定制开发体育指数直播APP体育指数数据API调用代码