如果后台需要进行大的任务处理,需要时间较长,可以通过异步进度的方式来实现进度提示,这样也不会出现网络超时中断。
在单据的表单插件中,创建Python脚本插件:
脚本示例
import clr;
clr.AddReference("System")
clr.AddReference("Kingdee.K3.PLM.Common.Core") #需要用到PLM封装的组件
clr.AddReference("Kingdee.K3.PLM.Common.BusinessEntity") #需要用到PLM封装的组件
from System import Action
from System import String
from System.Threading import Thread
from Kingdee.K3.PLM.Common.Core.BOSBridge import PLMView
from Kingdee.K3.PLM.Common.BusinessEntity.View import PageManager
def BarItemClick(e):
if e.BarItemKey=="EPX_BtTreating":
act=Action[Action[int,String]](treating)
PageManager.Instance.RunAsyncTaskWithProgress(PLMView.Get(this.View), act, "Big Job To Do");
def treating(counter):
for i in range(0,100):
Thread.Sleep(100) #这里可以处理大任务
counter(i,"treaing("+i.ToString()+")...") #如果要显示当前的进度与当前的子任务可以调用counter计数
-----END----