Python 账表插件,处理生产退料单0成本示例
场景:
因使用了WMS系统,无法通过《生产领料单》去下推《生产退料单》以致生产退料只能从《生产用料清单》下推生成,并且对应的物料仓库需要退到指定的《不良品仓库》与领料单的《原材料仓库》也不对应,从而对应的物料在核算的时候就没有对应的成本。
解决思路:
使用Sql获取成本,更新到对应的《生产退料单》。
生产退料单没有成本,处理逻辑:
1、获取成本:《生产退料单》关联《生产用料清单》,并关联《生产领料单》获取对应物料成本。
2、更新条件:根据未关联《业务凭证》的《生产退料单》并且《生产退料单》单据日期大于《存货核算期末关结账》关账日期,且 成本为0的物料ID更新。
FNUMBER NVARCHAR(800),FPrice decimal(24,4),FAmount decimal(24,4),FDATE date)
-----------------------------------------------------------------------------------------------------------------------------
--将以上SqlScript运行在服务器或者天梯后继续下一步
登录Bos开发平台,扩展《核算单据查询》账表,记住是账表不是动态表单
进入菜单集合
增加按钮
明明好按钮标识与按钮名称
#Python Script
import clr
clr.AddReference("mscorlib")
clr.AddReference("Kingdee.BOS")
clr.AddReference("Kingdee.BOS.Core")
clr.AddReference("Kingdee.BOS.App")
clr.AddReference("System.Data")
from Kingdee.BOS import *
from Kingdee.BOS.App.Data import *
from Kingdee.BOS.Core.DynamicForm.PlugIn import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import *
from Kingdee.BOS.Util import *
from System import *
from System.Collections.Generic import *
from System.Data import *
def BarItemClick(e):
if (e.BarItemKey.Equals("按钮标识", StringComparison.OrdinalIgnoreCase)):#按钮标识:New_tbButton
SqlScript = "/*dialect*/ Execute Proc_Update_RETURNMTRLENTRY_Price";
OrderRow = DBUtils.ExecuteScalar(this.Context,SqlScript,None)#执行SqlScript,返回首行首列的值!
Msg = "已更新处理《生产退料单》零成本的,共:" + str(OrderRow) + " 行,请再次运行《核算单据查询》核对成本!";
this.View.ShowMessage(Msg)
return
#开发完成!回到前台打开单据即可看到你新增的按钮点击即可执行!
Python 账表插件,处理生产退料单0成本示例
本文2024-09-16 18:40:55发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-23721.html