帆软FineReport 实现省市区树形联动

news2025/1/9 0:42:42

在项目数据展示中,涉及到行政区划,省市区三级联动,运用帆软FineReport该如何实现,记录下来,方便备查。

第一步、树形数据准备

行政区划主要分为三级,即省市区,特殊的包含四个直辖市(北京市、天津市、上海市、重庆市),由于行政区划信息在一张表中存放,表内容如下图所示。
在这里插入图片描述
需要对数据进行预处理,即分层查询,组装数据,注意父子关系要对应。SQL如下图所示。

// 查询省级
SELECT
	concat(dist_cd, '-', prov_abbr) AS child_id,
	prov_name AS child_name,
	'0' AS parent_id,
	'省级' AS parent_name,
	'1' AS class_level,
	'1' AS display_seq,
	'0' AS is_leaf,
	dist_cd AS key_word
FROM
	bic_district
WHERE
	stat_cd = '1'
AND lev_cd = '1'
UNION ALL
// 查询市级 lev_cd=2
SELECT
	dist_cd AS child_id,
	city_name AS child_name,
	CONCAT( CONCAT( SUBSTRING(dist_cd, 1, 2), '0000' ), '-', prov_abbr ) AS parent_id,
	'市级' AS parent_name,
	'2' AS class_level,
	'1' AS display_seq,
	NULL AS is_leaf,
	dist_cd AS key_word
FROM
	bic_district
WHERE
	stat_cd = '1'
AND lev_cd = '2'
UNION ALL
// 查询县区级(非直辖市) lev_cd=3
SELECT
	CONCAT(dist_cd, '-', cty_abbr) AS child_id,
	cty_name AS child_name,
	CONCAT( SUBSTRING(dist_cd, 1, 4), '00' ) AS parent_id,
	city_name AS parent_name,
	'3' AS class_level,
	'1' AS display_seq,
	NULL AS is_leaf,
	dist_cd AS key_word
FROM
	bic_district
WHERE
	stat_cd = '1'
AND lev_cd = '3'
AND prov_abbr NOT IN ('BJS', 'TJS', 'SHS',  'CQS')
UNION ALL
// 查询县区级(直辖市) lev_cd=3
SELECT
	CONCAT(dist_cd, '-', cty_abbr) AS child_id,
	cty_name AS child_name,
	CONCAT( CONCAT( SUBSTRING(dist_cd, 1, 2), '0000' ), '-', prov_abbr ) AS parent_id,
	prov_name AS parent_name,
	'2' AS class_level,
	'1' AS display_seq,
	NULL AS is_leaf,
	dist_cd AS key_word
FROM
	bic_district
WHERE
	stat_cd = '1'
AND lev_cd = '3'
AND prov_abbr IN ('BJS', 'TJS', 'SHS',  'CQS')

新增子查询 povTreeData,并将以上SQL添加进数据库查询面板中。
在这里插入图片描述

第二步、新增树形控件

新增树形控件,即树数据集
在这里插入图片描述
选择 数据集 povTreeData,依赖所选数据集的父标记字段构件树,原始标记字段为 child_id ,父标记字段为 parent_id
在这里插入图片描述

第三步、绑定查询控件

绑定 行政区划选择控件,这里数据字段选择自动构建,勾选 多选异步加载结果返回叶子结点
在这里插入图片描述
选择 树数据集构建,设置实际值和显示值对应的字段,如下图所示。
在这里插入图片描述
页面预览,勾选后三级行政区划后,所选择的即选中。
在这里插入图片描述

第四步、主数据关联查询

将编辑栏中选择的日期和三级行政区划等条件,传递到主数据查询,进行筛选。这里使用的是 SUBSTITUTE 函数。

select 
	order_no, 
	create_time, 
	sku_name, 
	sku_num, 
	total_amount
from 
	t_business_order_result 
where 1 = 1
and tbo.pre_order_create_time between '${beginDate} 00:00:00' AND '${endDate} 23:59:59'
${if(len(treeProv)==0,""," and treeProv in ('"+SUBSTITUTE(treeProv,",","','")+"') ")}
order by tbo.order_no

添加主数据源如下图所示。
在这里插入图片描述

知识学习
SUBSTITUTE(text,old_text,new_text,instance_num): 用new_text替换文本串中的old_text。
Text:需要被替换字符的文本,或含有文本的单元格引用。
Old_text:需要被替换的部分文本。
New_text:用于替换old_text的文本。
Instance_num:指定用new_text来替换第几次出现的old_text。如果指定了instance_num,则只有指定位置上的old_text被替换,否则文字串中出现的所有old_text都被new_text替换。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/189728.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【人机交互】COMP5517 HCI 课程笔记

人机交互Class 1: Overview of Human Computer Interaction人机交互的目标What does HCI involveClass 1 ContentImportance of HCISteps of HCISome HCI ProductsClass 1: Overview of Human Computer Interaction 人机交互的目标 Methods for grounding the design in real…

Windows 11 22H2 中文版、英文版 (x64、ARM64) 下载 (updated Jan 2023)

Windows 11, version 22H2,2023 年 1 月 更新,持续更新中… 请访问原文链接:https://sysin.org/blog/windows-11/,查看最新版。原创作品,转载请保留出处。 作者主页:www.sysin.org 最新发布 &#x1f449…

分布式session

目录 1.什么是session 2.session共享问题 2.1.session复制同步 2.2.存在客户端 2.3.一致性hash 2.4.统一存储 1.什么是session HTTP是无状态的,session是一种会话保持技术,目的就是以一种方式来记录http请求之间需要传递、交互的数据。 不是每次…

vite配置CDN和文件压缩

例子,vue3导入element-plus 打包大小 1.加载插件cdn-import yarn add vite-plugin-cdn-import -D 2.配置vite vite.config.js import { defineConfig } from "vite"; import vue from "vitejs/plugin-vue"; import { autoComplete, Plugin as importTo…

PPI数据集示例项目学习图神经网络

目录PPI数据集:算法原理:代码实现:训练过程PPI数据集: 参考:https://blog.csdn.net/weixin_43580130/article/details/116449062 PPI(生物化学结构) 网络是蛋白质相互作用(Protein-Protein Interaction,P…

若依配置教程(四)代码生成

文章目录一、在数据库中新建表(代码生成的数据表)二、打开若依系统,进入代码生成界面三、编辑字段和基本信息四、解压文件夹,放到相关目录一、在数据库中新建表(代码生成的数据表) 建议在表中必须加的字段…

通信原理笔记—脉冲编码调制(PCM)

目录 脉冲编码调制(PCM): PCM概念: A、μ律的PCM编码: A律对数压缩特性的十三折线法近似: A律正输入值编码表: A、μ率的PCM编码方法: A 率的PCM译码方法: 脉冲编码调制(PCM):…

VUE 中项目启动没有问题,代码中 script 标签有蓝色波浪线标注

项目场景: VUE 中项目启动没有问题,代码中 script 标签有蓝色波浪线标注: 并且有相关的 提示信息 Virtual script not found, may missing <script lang“ts“> / “allowJs“: true / jsconfig.json.volar 问题描述…

ESP32设备驱动-Si7021温度传感器驱动

Si7021温度传感器驱动 文章目录 Si7021温度传感器驱动1、Si7021介绍2、硬件准备3、软件准备4、驱动实现1、Si7021介绍 Si7021 I2C 湿度和温度传感器是一款集成了湿度和温度传感器元件、模数转换器、信号处理、校准数据和 I2C 接口的单片 CMOS IC。 Si7021 提供精确、低功耗、工…

Springboot美容院管理系统 java idea mysql

config:主要用来存储配置文件,以及其他不怎么动用的信息 controller:项目的主要控制文件 dao: 主要用来操作数据库 entity: 实体,用来放与数据库表里对应的实体类,表中的字段对应类中的属性值,并…

【10w字】超详细【百分百拿offer】的面试教程,集合5000多家软件测试公司面试题。

一、引言 1.1 文档目的 【百分百解决在面试中遇到的些问题】 1.2 背景 此文档历经1年的时间,基本概括了深圳与广州,上干家公司的面试问题并结合基本盖了,95%以上的面试问题,文章内容比较多耐心看完必能拿下心仪的offer。在这里…

webpack 配置时包与包版本不对应导致无法启动项目

经常在配置 webpack 时因不指定具体版本导致 npm 下载下来的依赖之间互相不对应。 (简述:webpack 配置时包与包的版本对应问题,报错了去 npm 找包,链接到 github 上查看 package.json 的 peerDependencies 依赖) 例如&…

VAE算法

参考博客: From Autoencoder to Beta-VAE | LilLog 链接:https://zhuanlan.zhihu.com/p/34998569 参考视频: https://www.youtube.com/watch?vYNUek8ioAJk&ab_channelHung-yiLee 为了使模型具有生成能力,VAE 要求每个 p(Z…

健身大神都戴什么耳机、健身大佬都在用的运动耳机推荐

很多朋友在户外健身的时候喜欢戴上耳机,在音乐的节奏中去运动,现在市面上的运动耳机选择也特别丰富,不乏出现一些明明不适合运动却偏打着运动耳机的名号在售卖,这也就导致许多消费者不慎踩坑,为了能让大家选择到一款专…

45-48 微服务链路追踪组件Skywalking

skywalking是什么 分布式系统的应用程序性能监视 工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。SkyWalking 是观察性分析平台和应用性能管理系统,提供分布式追踪、服务网格遥测分析、度量聚合和可视化一…

RabbitMq之实现基于插件的延迟队列

死信队列通过设置延迟时间TTL能实现延迟队列的效果,但是 由于队列先入先出的特性, 如果队列头的消息过期时间很长, 后面的消息过期时间很短, 会导致后面的消息过期后不能及时被消费掉 基于死信队列的缺点,基于插件实现的延迟队列就很好地解决了这个问题。…

MySQL的事务总结(事务特性,隔离级别,脏读,不可重复读,幻读,常见问题)

MySQL的事务总结(事务四大特性,隔离级别,脏读,幻读) MYSQL官网:https://dev.mysql.com/doc/refman/8.0/en/innodb-transaction-isolation-levels.html 1、事务(transaction)的概念 事务 是一个不可再分的最小单元,事…

Git (2) :Git练习

一.首先有个问题 ? 在进行git练习前,有个问题需要提下。。。。 csdn无法登录了。 查了一下资料,是因为CSDN服务器的各地相应速度不一样,辽宁的响应是超时的,所以通过在hosts文件中指定域名http://csdnimg.cn的服务器…

音视频开发解答——门槛高,怎么样入门?知识清单一览

前言 在程序员行业中,音视频开发领域许多人接触后都觉得门槛偏高;不知道如何开始学起,网上资料很少。 看到这个问题作为行业老人,我就来说说音视频有哪些学习路线与难点? 音视频开发 音视频流媒体开发,工…

从零手写Spring(一):创建简单Bean容器

工作的前面三年,虽然一直在使用Spring,但对它却不甚了解,内心充满无数的疑问:为什么配置xml中bean就可以使用它?我的对象具体存在于哪里?为什么我的对象是单例模式? 每逢遇到面试问Spring的核…