举个栗子:
需要根据组织架构(包含部门、产线、车间、班组等等),分别计算每个层级的考勤时长。
最简便的方法就是:
1. 组织架构做一张数据集,
2. 考勤汇总做一张数据集,
3. 然后把二者关联起来(动态参数 + 左父格)
这是我们最终实现的效果
现在我们一步步做
如图所示: 红框上面的代码运行结果就是本次使用的组织架构。红框内是参数设计。
注意:保证sanb编码不为空,能和前面架构一一对应。
讲解一下这个参数,这里需要分别对不同层级进行汇总求和,可以理解为YIB是一级部门,ERB是二级部门,产线编码是三级部门,车间编码是四级部门,班编码是五级部门。所以这张表单一共要对五个层级部门分别进行汇总。
通过参数筛选产线编码,会得到对应产线的所有SANB编码,只要考勤数据跟SANB编码一一对应,就能求和。
现在我们来看SANB编码对应的考勤数据
如图所示:红框上面代码的运行结果就是本次使用的考勤数据。红框内是参数设计。
这里我们筛选了SANB,根据SANB进行汇总求和。(时间参数不看,跟本案例无关)
好了,现在我们有两个数据集了,左手一个组织架构,右手一个考勤数据,接下去就是关联。
先拖拽数据,一级部门的左父格为A9 ,二级部门的左父格为A14
参数动态注入
公式解析:
1. depart数据来源.select(SANB,YIB = A9) 从’depart数据来源‘这个数据集里查询SANB,筛选条件是一级部门名称 = A9(因为我们表单显示的时候,显示的是一级部门名称,不是编码)
2. 重点来了,一级部门对应了多个SANB,那么我们查询到是一堆字符串,字符串之间的关联符号是英文逗号 , 。但是传参的时候,我们需要用 ',' ,所以这里要使用replace,把字符串之间的关联符号,改成',' 。
怎么理解呢?举个例子,sql语句中where SANB IN ('001','002'),看到吗?两个字符串中间是 ','
同理,二级部门的动态参数公式怎么写嘞
至此,就完工齐活啦