二开使用异步进度条处理复杂耗时业务
一些复杂耗时的业务处理,如果耗时超过一定时长,则会抛出链接超时异常。在这种情形下,可以使用异步+进度条的方式去处理。
比如在列表插件中,点击一个按钮,按钮里面去处理耗时业务,代码示例如下:
public override void BarItemClick(BOS.Core.DynamicForm.PlugIn.Args.BarItemClickEventArgs e) { base.BarItemClick(e); switch (e.BarItemKey.ToUpper()) { case "TBEXPORT": { Exprot(); break; } } } private void Exprot() { DataTable dt = GetExportData(); DynamicFormShowParameter progressFormParameter = this.View.ShowProcessForm( new Action<FormResult>((fr) => { }), true, Kingdee.BOS.Resource.ResManager.LoadKDString("正在处理任务中...", "002406030033118", Kingdee.BOS.Resource.SubSystemType.BOS)); Kingdee.BOS.KDThread.MainWorker.QuequeTask(this.View.Context, () => { try { int count = dt.Rows.Count; var rate = count / 100; for (int i = 0; i < count; i++) { ExportData(dt.Rows[i]); //设置进度条的进度值 this.View.Session["ProcessRateValue"] = rate * (i + 1); } } catch (Exception ex) { this.View.ShowErrMessage(ex.Message); } finally { this.View.Session["ProcessRateValue"] = 100; this.View.SendDynamicFormAction(this.View); } }, new Action<Kingdee.BOS.KDThread.AsynResult>((ar) => { if (ar.Success == false && ar.Exception != null) { return; } }) ); }
在代码里面每设置一次进度条的进度值,前端就会跟服务端交互一次(把进度条的进度显示出来),这样就能保证不超时了。
二开使用异步进度条处理复杂耗时业务
一些复杂耗时的业务处理,如果耗时超过一定时长,则会抛出链接超时异常。在这种情形下,可以使用异步+进度条的方式去处理。比如在列表插件...
点击下载文档
上一篇:二开执行计划发送邮件示例下一篇:二开实现二次认证身份示例
本文2024-09-23 04:21:33发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-164798.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章