乐于分享
好东西不私藏

金蝶云星空二开python表单插件之单据体值更新及界面更新,获取历史采购最低含税单价!!

金蝶云星空二开python表单插件之单据体值更新及界面更新,获取历史采购最低含税单价!!

大家好,我叫大伟,今天开始给大家继续倒腾金蝶二开插件案列分享,大部分都是非常实用而且能够提升工作效率和增强体验感的小功能。

在日常业务中,不少会碰到采购人员或采购跟单人员,需要下单时候快速知道物料的历史含税单价,与现在的含税价进行比较,来做出相应的决策或建议。如果按照目前金蝶的标准功能,需要通过多一点步查询历史价格才知道近期的价格,那有些人员就会觉得不够方便,能否选择物料或者通过下推生成的采购订单,在采购明细中立马显示出历史最低价格,这样大大的简化操作,提供用户效率及体验。

本次通过值更新及界面更新事件来实现获取历史采购最低含税单价的案例,做这个功能的背景是,采购人员需要在新增采购订单选择物料或者从采购申请订单下推采购订单的时候快速知道物料的历史最低含税价格。大概思路是,写一个获取历史单价的函数,通过 DataChanged和AfterBindData事件调用该函数来实现采购订单选择物料时候立即获取历史最低含税单价及下推的时候获取最低单价。接下来废话不多说,直接上干货。

Python插件案例一之表单插件

单据体值更新及界面绑定更新

获取历史采购最低含税单价

代码如下

from clr import AddReference AddReference("Kingdee.BOS.App")from Kingdee.BOS.App.Data import DBUtils #获取采购订单历史最低含税单价def  SelectPurMinPrice(materId):    if not materId:        return None;    getPurMinPrice=("""/*dialect*/ select  FMATERIALID,min    (FTAXPRICE) as MINPRICE  from      T_PUR_POORDERENTRY_F a left join  T_PUR_POORDERENTRY b     on a.FENTRYID=b.FENTRYID  where FMATERIALID='{0}'    group by FMATERIALID """).format(materId);    dataRows=DBUtils.ExecuteDynamicObject(this.Context,getPurMinPrice);    if dataRows and len(dataRows) > 0:        return dataRows[0]["MINPRICE"or 0    else:        return  0#新增选择物料时触发值更新 def DataChanged(e):    billObj = this.View.Model.DataObject;    entity=billObj["POOrderEntry"];    if  not entity:        return     needUpdate = False    if e.Field.Key=="FMaterialId":        for rObj in entity:            matId=rObj["MaterialId_Id"];            currentPrice=rObj["F_UZBE_minPrice"];            if not currentPrice:                rObj["F_UZBE_minPrice"]=SelectPurMinPrice(matId);                needUpdate = True    if needUpdate:        this.View.UpdateView("FPOOrderEntry");#打开单据获取数据(下推或选单触发)def AfterBindData(e):    if this.View.OpenParameter.Status.Equals(OperationStatus.ADDNEW):        billObj = this.View.Model.DataObject;        entity=billObj["POOrderEntry"];        if  not entity:            return         needUpdate = False        for rObj in entity:            matId=rObj["MaterialId_Id"];            currentPrice=rObj["F_UZBE_minPrice"];            if not currentPrice:                rObj["F_UZBE_minPrice"]=SelectPurMinPrice(matId);                needUpdate = True        if needUpdate:            this.View.UpdateView("FPOOrderEntry");

操作步骤如下

1、打开BOS设计器,找到需要修改的单据,如果单据是只读状态,不要慌!只需在单据上右键点击【扩展】,就能以可编辑模式打开

2、注册Python脚本,进入【表单插件】配置,注册下面的Python脚本代码,填写脚本名称,保存配置

3、保存所有配置,修改单据,展示效果!如下图:

温馨提示

  1. 增加一个历史最低含税价字段,将计算结果放到该字段

  2. 复制脚本注意缩进,严格遵守PYTHON缩进规则,否则保存会报错

如果这篇文章对你有帮助,欢迎点赞、收藏、转发!有任何问题也欢迎在评论区留言交流!

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 金蝶云星空二开python表单插件之单据体值更新及界面更新,获取历史采购最低含税单价!!

评论 抢沙发

1 + 5 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮