前台显示单据分录内码

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

前台显示单据分录内码

@[TOC](目录) ### 背景 有客户有这种业务需求,就是想在前台显示单据分录的内码,但是我们通版的FID和FENTRYID内码字段有控制不允许显示,也不允许增加与他字段名相同的字段。因此需要借助保存插件处理新增的数据、数据库SQL脚本处理历史数据 ### 思路 1.在单据上新增一个整数字段(如果是显示表头的内码则加在单据头,如果是要显示表体的内码则加在单据体) 2.在保存插件中将FID或者FENTRYID赋值给新增的整数字段 3.通过SQL同步设置历史数据 ### 步骤 #### 1、Python脚本写的操作插件(以采购入库单为例) **单据头单据内码** ```python import clr clr.AddReference('System') clr.AddReference('Kingdee.BOS') clr.AddReference('Kingdee.BOS.Core') from System import * from Kingdee.BOS.Core import * def OnPreparePropertys(e): e.FieldKeys.Add("F_SXIM_Integer") def BeginOperationTransaction(e): if e.DataEntitys == None: return for entity in e.DataEntitys: entity["F_SXIM_Integer"] = entity["Id"] ``` **单据体分录内码** ```python import clr clr.AddReference('System') clr.AddReference('Kingdee.BOS') clr.AddReference('Kingdee.BOS.Core') from System import * from Kingdee.BOS.Core import * def OnPreparePropertys(e): e.FieldKeys.Add("F_SXIM_Integer") def BeginOperationTransaction(e): if e.DataEntitys == None: return for entity in e.DataEntitys: entrylis = entity["InStockEntry"] for entry in entrylis: entry["F_SXIM_Integer"] = entry["Id"] ``` 插件注册位置: ![1.webp](/download/01004a8e55f533cd41929248703829864b0d.webp) #### 2、SQL同步历史数据(以采购入库单为例) 单据头 ```SQL UPDATE T_STK_INSTOCK SET F_SXIM_INTEGER = FID WHERE F_SXIM_INTEGER = 0 ``` 单据体 ```SQL UPDATE T_STK_INSTOCKENTRY SET F_SXIM_INTEGER = FENTRYID WHERE F_SXIM_INTEGER = 0 ``` ==注:F_SXIM_INTEGER 是自己新增的整数字段的字段名,请注意替换。不要一股脑直接执行!!!== **其他更多文章入口:**[https://wenku.my7c.com/link/s/lbRPP](https://wenku.my7c.com/link/s/lbRPP)

“注:F_SXIM_INTEGER 是自己新增的整数字段的字段名,请注意替换。不要一股脑直接执行!!!”
这是经受了多少打扰,才能备注这一句。


为啥我的会报这个错?没做过任何二开,就在标准的单据上去取明细体都不得行image.webp


单据加载的时候,设置自定义字段的值为单据内码,不行么?

古德OvO

前台显示单据分录内码

@[TOC](目录)### 背景有客户有这种业务需求,就是想在前台显示单据分录的内码,但是我们通版的FID和FENTRYID内码字段有控制不允许显示,也...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息