二开案例.基础资料.过滤.利用CASE WHEN实现条件过滤

【应用场景】
基于单据上的其它字段的值对当前基础资料进行联动查询。
【案例演示】
采购订单,新增两个基础资料字段,岗位和员工,员工F8列表根据岗位的选择值进行过滤显示。

【实现步骤】
<1>BOSIDE打开员工,获取就任岗位字段的标识【FPost】和字段名【FPOSTID】,该字段将用于过滤条件中,对员工按岗位进行过滤。

<2>BOSIDE打开采购订单,新增两个基础资料字段,岗位和员工,员工字段设置过滤条件,保存元数据,开发完毕。


员工字段的过滤属性,设置表达式如下:
FPost=CASE WHEN GetValue(F_Jac_Base1) IS NULL OR GetValue(F_Jac_Base1)=0 THEN t1.FPOSTID ELSE GetValue(F_Jac_Base1) END
表达式各部分含义说明:
FPost:员工中的就任岗位字段的标识
FPOSTID:员工中的就任岗位字段的字段名
t1.FPOSTID:员工查询过程中,BOS平台生成的SQL脚本给就任岗位字段自动分配的真实字段全称(格式:表别名.数据库字段名)
F_Jac_Base1:采购订单中的岗位字段的标识
GetValue(F_Jac_Base1):获取采购订单中的岗位字段的值
【测试验证】
登录业务站点,打开采购订单,岗位字段不录数据时,员工F8列表显示全部,岗位字段录入数据时,员工F8列表仅显示当前岗位下的员工。

岗位有值时,后台SQL如下:

岗位无值时,后台SQL如下:

---------------------------------------------------------------------------------------------------------
【知识点】
<1>GetValue方法空值的取值逻辑:
基础资料字段未录数据时,GetValue返回0。
判断基础资料字段的值是否为空,可用表达式:GetValue(F_Jac_Base1
二开案例.基础资料.过滤.利用CASE WHEN实现条件过滤
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



