多值关联过滤

简介: 多值关联过滤

场景
在项目中做查询表单或者填报表时,经常会有动态关联的业务需求,比如省市区的关联,润乾填报 / 参数表单报表不仅可以实现单个省市区的动态关联,还可以实现多省市区的动态关联。
下面我们就以润乾报表示例数据库现有的数据表—客户表和订单表 为例,来举例介绍一下数据多选的动态关联。
最终效果
1

实现步骤

  1. 绘制主表,这里是一个简单的网格表单 统计不同城市的客户量以及销售额。

单元格表达式如下图
2

其中, 报表数据集及参数设置如下
3
4
5

  1. 制作参数表单,如下
    6

其中
数据集 SQL 如下
7

重点设置为 C2、E2、G2 单元格实现国家 省 市 的多选关联过滤,具体设置如下:
C2 单元格:设置 web 变量名为 arg1,同时设置编辑风格为 下拉数据集 取值 ds2. 国家,如下
8

E2 单元格:设置 web 变量名为 province,同时设置编辑风格为 下拉数据集 取值 ds2. 省份,关联过滤表达式:(‘,’+C2.toString()+‘,’).indexOf(‘,’+ 国家 +‘,’) >= 0,触发关联过滤单元格为 C2,如下
9

G2 单元格:设置 web 变量名为 city,同时设置编辑风格为 下拉数据集 取值 ds2. 城市,关联过滤表达式:(‘,’+E2.toString()+‘,’).indexOf(‘,’+ 省份 +‘,’) >= 0,触发关联过滤单元格为 E2,如下
10

3.确认保存,分别将主表和参数表单保存为:dzglgl.rpx dzglgl_arg.rpx。

到这里我们就完成了数据多选的动态关联。
本文要点:
掌握关联过滤表达式的用法,以 E2 的表达式为例解析如下:
E2 关联过滤表达式:(‘,’+C2.toString()+‘,’).indexOf(‘,’+ 国家 +‘,’) >= 0
意为:从 E2 中检索与 C2 所选国家相符的省份。
此关联表达式灵活结合了 javascript 的 indexOf() 方法,方法说明:
11

目录
相关文章
|
8月前
有关筛选条件的问题
有关筛选条件的问题
45 0
|
JSON JavaScript 数据格式
根据多种条件过滤对象的JSON数组
根据多种条件过滤对象的JSON数组
126 0
|
SQL 关系型数据库 MySQL
避免在where子句中使用 or 来连接条件
避免在where子句中使用 or 来连接条件
关于 WhereElementIsNotElementType() 过滤的理解
关于 WhereElementIsNotElementType() 过滤的理解
关于 WhereElementIsNotElementType() 过滤的理解
odoo 为可编辑列表视图字段搜索添加查询过滤条件
odoo 为可编辑列表视图字段搜索添加查询过滤条件
212 0
|
关系型数据库 MySQL
ES复杂操作-布尔值查询(多条件精确查询)
ES复杂操作-布尔值查询(多条件精确查询)
|
SQL 关系型数据库 MySQL
三、避免在where子句中使用 or 来连接条件
三、避免在where子句中使用 or 来连接条件
155 0
|
Python
一日一技:如何对数据进行过滤
一日一技:如何对数据进行过滤
393 0
一日一技:如何对数据进行过滤
|
算法
艾伟:一个简单的关键字过滤算法
早上看到老赵的《一个较完整的关键字过滤解决方案(上)》文章,讲到怎样在项目中嵌入过滤方案的问题,以及提到 xingd 和 sumtec 两位大师发表的系列互拼的文章,在此我也忍不住谈谈自己遇到的问题以及一个的简化版的算法。
1014 3
|
测试技术
同时使用多个筛选器来过滤数据
不定长参数 val arr = List(111,222,333,444,555)def sum(args:Int*):Int = args.foldLeft(0)((sum,v)=>sum+v) // 就是args.sum求和sum(arr:_*) // res0: Int = 1665 不定长参数的定义(args:Int*)表示args是一个Seq[Int]序列,当调用sum函数时候传递arr参数。
1296 0

热门文章

最新文章