二开案例.表达式.实体服务规则中的辅助资料
【应用场景】在实体服务规则中使用辅助资料字段。
【案例演示】采购订单,新增界面,通过使用实体服务规则进行控制,当供应商的供应商等级为一级时,控制采购员字段必录。
【实现步骤】
<1>先制造演示环境,登录BOSIDE,扩展采购订单,新增一个辅助资料字段,如下图所示。
<2>供应商字段新增值更新事件,实现自动携带供应商等级的功能,如下图所示。
供应商字段添加引用属性【供应商等级】
<3>在采购订单的单据头上,新增实体服务规则,设置控制逻辑为:当供应商等级为一级时,采购员必录,如下图所示。
<4>保存元数据,开发完毕。现在可以登录业务站点,打开采购订单,检查一下该实体服务规则的控制效果啦。
【知识点】
<1>如何查找类型为供应商等级,值为一级的辅助资料的内码?
-- 查询辅助资料类型
SELECT a.FID AS 辅助资料类型内码,b.FNAME AS 辅助资料类型名称,a.* FROM T_BAS_ASSISTANTDATA a LEFT JOIN T_BAS_ASSISTANTDATA_L b ON a.FID=b.FID AND b.FLOCALEID=2052 WHERE b.FNAME='供应商等级'
-- 查询辅助资料
SELECT a.FENTRYID AS 辅助资料内码,a.FNUMBER AS 辅助资料编码,b.FDATAVALUE AS 辅助资料名称,a.* FROM T_BAS_ASSISTANTDATAENTRY a LEFT JOIN T_BAS_ASSISTANTDATAENTRY_L b ON a.FENTRYID=b.FENTRYID AND b.FLOCALEID=2052 WHERE a.FID='96f1e44f76574005b7498138da3320b2' AND b.FDATAVALUE='一级'
<2>更多表达式写法演示
基于供应商等级.内码控制:
写法一:
F_Jac_Assistant <> null AND F_Jac_Assistant.Id = '5f6172d239b2e3'
写法二:
F_Jac_Assistant <> null AND F_Jac_Assistant.ActiveObject["Id"] = '5f6172d239b2e3'
基于供应商等级.编码控制:
写法一:
F_Jac_Assistant <> null AND F_Jac_Assistant.FNumber = '001'
写法二:
F_Jac_Assistant <> null AND F_Jac_Assistant.ActiveObject["FNumber"] = '001'
基于供应商等级.名称控制:
写法一:
F_Jac_Assistant <> null AND F_Jac_Assistant.FDataValue = '一级'
写法二:
F_Jac_Assistant <> null AND F_Jac_Assistant.ActiveObject["FDataValue"].ToString() = '一级'
写法三:
F_Jac_Assistant <> null AND str(F_Jac_Assistant.ActiveObject["FDataValue"]) = '一级'
基于供应商.供应商等级.内码控制:
写法一:
FSupplierId <> null AND FSupplierId.FSupplierGrade <> null AND FSupplierId.FSupplierGrade.Id = '5f6172d239b2e3'
写法二:
FSupplierId <> null AND FSupplierId.FSupplierGrade <> null AND FSupplierId.FSupplierGrade["Id"] = '5f6172d239b2e3'
基于供应商.供应商等级.编码控制:
写法一:
FSupplierId <> null AND FSupplierId.FSupplierGrade <> null AND FSupplierId.FSupplierGrade.Number = '001'
写法二:
FSupplierId <> null AND FSupplierId.FSupplierGrade <> null AND FSupplierId.FSupplierGrade["Number"] = '001'
基于供应商.供应商等级.名称控制:
写法一:
FSupplierId <> null AND FSupplierId.FSupplierGrade <> null AND FSupplierId.FSupplierGrade.Name.ToString() = '一级'
写法二:
FSupplierId <> null AND FSupplierId.FSupplierGrade <> null AND str(FSupplierId.FSupplierGrade.Name) = '一级'
写法三:
FSupplierId <> null AND FSupplierId.FSupplierGrade <> null AND FSupplierId.FSupplierGrade["Name"].ToString() = '一级'
写法四:
FSupplierId <> null AND FSupplierId.FSupplierGrade <> null AND str(FSupplierId.FSupplierGrade["Name"]) = '一级'
----------------------------------------------------------------------------------------------------
【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696
二开案例.表达式.实体服务规则中的辅助资料
本文2024-09-23 04:21:25发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-164780.html