一、业务背景
二开添加辅助资料字段“标准成本率”(该字段元素类型为小数)后,希望辅助资料为销售合同号时,“标准成本率”字段必录(此值不会为0)。
二、关键步骤
1、解析
如果字段有必录,考虑直接勾选必录,但此字段为小数,没有勾选必录的地方,考虑其他方式。
2、难点
试过表单属性-操作列表-保存-其他控制-校验规则-新增“合法性检查,字段必录”,设置“辅助资料类别为销售合同号,标准成本率字段必录”,但实际保存时没有填写该字段依然可以正常保存,此方法无效。
3、解决步骤
1)BOS-辅助资料-批量编辑字段属性。
2)表单属性-操作列表-保存-其他控制-校验规则-新增“单据合法性校验”(注意,此处仅选择单据合法性校验,不选择带字段必录的合法性检查)
3)前置条件:辅助资料类别为销售合同号。FId.FNumber = '001' (类别.类别编码=001,001是此账套对应的销售合同号编码,可进行表达式测试来验证表达式是否正确。)
4)描述:辅助资料类别为销售合同号,标准成本率字段不为0。 F_ABC_StandardCostRate <> 0(标准成本率<>0)
校验级别:错误,立即终止。
三、效果
是销售合同号的要求“标准成本率”字段必录,没有填写不能保存,填写完可以正常保存;不是销售合同号的辅助资料不要求“标准成本率”字段必录。
四、小结
1、小数的必录考虑【表单属性-操作列表-保存-其他控制-校验规则-新增“单据合法性校验”】,用不为0设置字段是否必录。即没有填写该字段时,该字段为0;填写了就不为0了(前提该字段数值确实不为0),此处“不为0”=“必录”。
2、辅助资料类别为销售合同号,标准成本率字段不为0。 F_ABC_StandardCostRate <> 0(标准成本率<>0)。此处使用的是数字0,而不是带英文引号的 '0'。用带英文引号的测试错误,直接的0是正确的。
3、因为其他辅助资料里也会有“标准成本率”字段,所以需要设置前置条件限定只约束“销售合同号”这一类别。
4、此处使用类别编码,不使用类别名称,编码更不容易更改。
5、校验表达式为真时提示,关键字,提示信息都可以不用填写,不填也会有提示。
6、其他必录相关文章:设置单据特定单据类型下特定字段必录且只能选特定值 (kingdee.com)