BOS进度条使用学习原创
39人赞赏了该文章
745次浏览
编辑于2023年03月28日 19:50:42
使用向导计算很多数据时,使用进度条给用户展示进度
向导触发进度条方法
public override void WizardStepChanging(WizardStepChangingEventArgs e) { base.WizardStepChanging(e); DoActionUnderNetworkControl(); }
private void DoActionUnderNetworkControl() { try { if (base.View.LayoutInfo.GetAppearance("FProgressBar") != null) { ProgressBar control = base.View.GetControl<ProgressBar>("FProgressBar"); if (control != null) { control.Start(5); control.InvokeControlMethod("SetCurrentValue", 0); control.SetFoldingStyle(isfolding: true); control.Visible = true; SetControlEnabled(enable: false); _processRate = 0; MainWorker.QuequeTask(base.Context, WizardCreateOutCostAdjustBill, delegate (AsynResult result) { AsyncCallback(result); }); _processRate = 10; } } } catch (Exception ex) { WriteLog(); throw new KDException(ResManager.LoadKDString("操作不成功!", "003006000001954", SubSystemType.FIN), ex.Message); } }
WizardCreateOutCostAdjustBill 这个方法里面就是要处理的业务逻辑
private void WizardCreateOutCostAdjustBill() { System.Threading.Thread.Sleep(2000); }
进度条刷新方法
public override void OnQueryProgressValue(QueryProgressValueEventArgs e) { if (_processRate <= 95) { _processRate++; } e.Caption = string.Format("正在生成出库成本调整单{0}%", _processRate); e.Value = _processRate; if (e.Value >= 100) { SetProgressBarHide(); SetControlEnabled(enable: true); } }
这个进度条,会等业务方法(WizardCreateOutCostAdjustBill )处理完,才关闭,但怎么样如实反映 业务进度,还不会用, 待再学习使用
赞 39
39人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!