【客户需求】设置月份用字母表示参与批号/序列号编码(python)原创
4人赞赏了该文章
1,087次浏览
编辑于2021年11月12日 09:27:07
如何设置月份用字母表示参与批号/序列号编码规则
参考思路:
单据上增加文本字段、编写插件实现日期对应的字母赋值给该文本字段。
编码属性中,增加该文本字段的属性,映射对应单据上增加的该文本字段。
编码规则中,引用上述增加的文本编码属性,即可实现编码规则以字母形式表示月份参与编码。
实现步骤:
(下面以 采购入库单 为例月份 1~12 表示为 A~L,详述具体实现步骤)
BOS设计器-采购入库单,增加文本字段(标识:FText )。可根据业务调整其可见性、锁定性。
BOS设计器-采购入库单-表单插件-注册Python插件。实现修改入库日期时,填充对应字母至增加文本字段。
系统-批号/序列号属性,增加文本属性-设置对应单据对应字段。
系统-批号/序列号规则,设置增加的文本属性参与编码。
系统-采购入库单,录入物料获取批号,验证是否满足需求。
补充说明:
上述以采购入库单为例,其他单据实现按同样步骤即可。
关于月份字母表示形式,可以自行调整Python中字典swithcer 对应的具体字母即可。
下面提供上述步骤二中Python代码。注意:系统日期字段(标识:FDate)、二开文本字段(标识:FText)。
import clr clr.AddReference('System') clr.AddReference('Kingdee.BOS') clr.AddReference('Kingdee.BOS.Core') from System import * from Kingdee.BOS import * from Kingdee.BOS.Core import * from Kingdee.BOS.Core.Metadata import * from Kingdee.BOS.Core.Bill import * def DataChanged(e): if(e.Field.Key.Equals("FDate",StringComparison.InvariantCultureIgnoreCase)): date = this.View.Model.GetValue("FDate") this.View.Model.SetValue("FText",switch_case(date.Month)) def AfterBindData(e): if (this.View.OpenParameter.Status == OperationStatus.ADDNEW): date = this.View.Model.GetValue("FDate") this.View.Model.SetValue("FText",switch_case(date.Month)) def switch_case(num): switcher = { 1: "A", 2: "B", 3: "C", 4: "D", 5: "E", 6: "F", 7: "G", 8: "H", 9: "I", 10: "J", 11: "K", 12: "L", } return switcher.get(num, None)
设置月份用字母表示参与批号序列号编码规则.zip(0.75KB)
赞 4
4人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读