即时库存锁库校验预计解锁日期为必录

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:2

即时库存锁库校验预计解锁日期为必录

【客户需求】: 即时库存锁库里需要设置锁库天数、预计解锁日期、到期解锁起始日为必录字段,在BOS里设置了必录,保存时没有检查。保存按钮是一个空操作不能设置校验规则

image.webp


image.webp



【需求分析】:

1、选择锁库物料,加载解锁界面时,系统默认会填写"到期解锁起始日"为当前日期,锁库天数、预计解锁日期为空,填写"预计解锁日期",自动计算"锁库天数",BOS中针对"预计解锁日期"设置为必录

2、保存操作的点击事件为空,未配置任何服务和操作,相关的保存和校验逻辑都写在动态表单的插件中,无法干预

3、相关插件未对"预计解锁日期"是否录入做校验


【实现方案】:针对上面3点的分析,尝试以下扩展方案

1、方案1(方案不可行)、保存按钮点击事件挂载"空操作",在操作上添加字段必录的校验规则,测试发现可以校验字段是否必录,但是无法终止按钮事件的继续执行。

2、方案2(方案不可行)、使用Python插件,重写BarItemClick事件,在插件中校验字段是否必录,校验不通过设置e.Cancel = True或者抛出异常,依然无法终止按钮事件的继续执行。

3、方案3(方案可行)、使用Python插件,重写BarItemClick事件,新增点击按钮,隐藏原有的保存按钮,插件中校验字段是否必录,校验不通过则弹出提示信息,校验通过则触发原有"保存"按钮的执行事件。                                                                     

import clr 
clr.AddReference("System")
clr.AddReference("Kingdee.BOS")
clr.AddReference("Kingdee.BOS.Core")
clr.AddReference("Kingdee.BOS.DataEntity")
from System import *
from System import StringComparison
from Kingdee.BOS.Core.DynamicForm import *
from Kingdee.BOS.Core.Metadata.FieldElement import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import *
from Kingdee.BOS.Core.Metadata import *
from Kingdee.BOS.Orm.DataEntity import *
def BarItemClick(e):
    if e.BarItemKey.Equals("TBTEST", StringComparison.OrdinalIgnoreCase):
        subEntity = this.View.BillBusinessInfo.GetEntity("FEntity")
        subEntityList = this.View.Model.GetEntityDataObject(subEntity)
        flag = 0
        if subEntityList.Count > 0:
            for item in subEntityList:
                seq = Convert.ToInt32(item["Seq"])
                subMaterial = item["MaterialId"]
                releaseDate = item["ReleaseDate"] # 预计解锁时间
                if releaseDate is None:
                    errMes = "(第" + str(seq) + "行物料【" + str(subMaterial["Name"])  + "】的预计解锁时间不能为空\r\n"
                    this.View.ShowErrMessage(errMes)
                    flag = 1
                    
        if flag == 0:
            this.View.GetMainMenu().ItemClick("tbSave");
            this.View.SendDynamicFormAction(this.View);


            

【实现效果】

image.webp


image.webp


【参考】

在表单插件中触发主菜单按钮点击事件】  


插件代码示例.rar

即时库存锁库校验预计解锁日期为必录

【客户需求】: 即时库存锁库里需要设置锁库天数、预计解锁日期、到期解锁起始日为必录字段,在BOS里设置了必录,保存时没有检查。保存按...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息