一.Python实现单据批改(单据头字段)
1.打开BOS,打开需要批改的单据,如为只读,请通过鼠标右键【扩展】打开单据。
2.在【列表菜单】中新增一个按钮(按钮标识为:XEA_tbBulUpdate)
3.在【列表插件】中注册Python脚本。
4.找到需要批改的字段,在【功能控制】中设置允许批改。
5.保存单据即可。
import clr
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.ServiceHelper')#添加
from Kingdee.BOS.Core import *
from Kingdee.BOS.Core.Bill import *
from Kingdee.BOS.Core.Bill.PlugIn import *
from Kingdee.BOS.Core.Permission import *#添加
from Kingdee.BOS.ServiceHelper import *#添加
def BarItemClick(e):
if e.BarItemKey=="XEA_tbBulUpdate":
businessObj=BusinessObject();
formId=str(this.View.BillBusinessInfo.GetForm().Id);
businessObj.Id=formId;
if this.ListView.CurrentSelectedRowInfo==None:
this.View.ShowErrMessage("请选择数据行") ;
return ;
param = BillShowParameter()
param.FormId = FormIdConst.BD_BulkEdit
this.View.ShowForm(param)
二.Python显示单据体首行过滤
在BOS中打开需要设置的单据。
在【表单构建插件】中注册Python脚本。
修改需要设置首行过滤的单据体标识。FEntryDeliveryPlan
clr.AddReference('System')
clr.AddReference('Kingdee.BOS.Core')
from Kingdee.BOS.Core.DynamicForm.PlugIn import *
from Kingdee.BOS.Core.Metadata.EntityElement import *
from System import *
#方法重载
def CreateControl(e):
if isinstance(e.ControlAppearance, EntryEntityAppearance) and e.ControlAppearance.Key == "FEntryDeliveryPlan":
e.Control.Put("showFilterRow", True);
三.如何设置实现列表显示过滤行
BOS设计器-其他出库单,列表插件-注册Python脚本,注册下面脚本内容填写脚本名保存。
import clr
clr.AddReference('Kingdee.BOS.Core')
from Kingdee.BOS.Core.DynamicForm import *
from Kingdee.BOS.Core.DynamicForm.PlugIn import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import *
def PreOpenForm(e):
e.OpenParameter.SetCustomParameter("showFilterRow", "true")