二开案例.表单插件.通用进度条

【应用场景】插件执行耗时操作,需要显示进度条,在避免页面响应超时的同时,提供给用户更好的交互体验。
【案例演示】采购订单,新增两个菜单,分别演示真进度条和假进度条的显示效果。
真进度条:进度条的进度按实际设置的值显示。
假进度条:进度条的值每3秒增加10%,增加到99%后不再变化直到操作结束。

【实现步骤】
<1>编写表单插件,代码如下。
using Kingdee.BOS.Core;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.KDThread;
using Kingdee.BOS.Util;
using System;
using System.ComponentModel;
using System.Threading;
namespace Jac.XkDemo.BOS.Business.PlugIn
{
/// <summary>
/// 【表单插件】通用进度条
/// </summary>
[Description("【表单插件】通用进度条"), HotUpdate]
public class ProgressBarFormPlugIn : AbstractDynamicFormPlugIn
{
/// <summary>
/// 主菜单点击事件
/// </summary>
/// <param name="e"></param>
public override void BarItemClick(BarItemClickEventArgs e)
{
base.BarItemClick(e);
if (e.BarItemKey.EqualsIgnoreCase("tbDo1"))
{
// 用真的进度条
ShowProgressBar(true);
}
if (e.BarItemKey.EqualsIgnoreCase("tbDo2"))
{
// 用假的进度条
ShowProgressBar(false);
}
}
/// <summary>
/// 显示进度条
/// </summary>
/// <param name="userTruePro">是否使用真的进度值</param>
private void ShowProgressBar(bool userTruePro)
{
this.View.ShowProcessForm(formResult => { }, userTruePro, "正在执行xxx");
// 启动线程执行耗时操作,同时更新执行进度
MainWorker.QuequeTask(this.View.Context, () =>
{
try
{
var counter = 30;
for (var x = 1; x < counter; ++x
二开案例.表单插件.通用进度条
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



