二开案例.表单插件.向导式动态表单

【应用场景】 使用表单插件控制向导式动态表单。
【案例演示】新建向导式动态表单,使用表单插件控制该向导式动态表单,例如步骤切换前事件,步骤切换后事件,跳转到指定步骤等。

【实现步骤】
<1>新建向导式动态表单,创建步骤参考:
【二开案例.元模型.向导式动态表单】https://vip.kingdee.com/article/157438440450016768

<2>编写表单插件,代码如下。
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args.WizardForm;
using Kingdee.BOS.Core.DynamicForm.PlugIn.WizardForm;
using Kingdee.BOS.Util;
using System;
using System.ComponentModel;
namespace Jac.XkDemo.BOS.Business.PlugIn
{
/// <summary>
/// 【表单插件】向导式动态表单
/// https://vip.kingdee.com/article/157454074366437632
/// </summary>
[Description("【表单插件】向导式动态表单"), HotUpdate]
public class WizardStepChangedWizardFormPlugIn : AbstractWizardFormPlugIn
{
/// <summary>
/// 操作步骤切换前事件
/// </summary>
/// <param name="e"></param>
public override void WizardStepChanging(WizardStepChangingEventArgs e)
{
base.WizardStepChanging(e);
if (e.UpDownEnum == 1)
{
// 下一步
if (e.OldWizardStep.Key.Equals("FWizard0", StringComparison.OrdinalIgnoreCase))
{
var phone = this.Model.GetValue("F_Jac_Text") as string;
if (string.IsNullOrWhiteSpace(phone))
{
this.View.ShowWarnningMessage("请输入手机号码!");
e.Cancel = true;
return;
}
if (phone == "666")
{
// 直接跳转到第三步
e.JumpWizardStepKey = "FWizard2";
}
return;
}
if (e.OldWizardStep.Key.Equals("FWizard1", StringComparison.OrdinalIgnoreCase))
{
var smsCode = this.Model.GetValue("F_Jac_Text1") as string;
if (string.IsNullOrWhiteSpace(smsCode))
{
this.View.ShowWarnningMessage("请输入验证码!");
e.Cancel = true;
}
return;
}
}
else if (e.UpDownEnum == 2)
{
// 上一步
// TODO
}
}
/// <summary>
/// 操作步骤切换后事件
/// </summary>
/// <param nam二开案例.表单插件.向导式动态表单
【应用场景】 使用表单插件控制向导式动态表单。【案例演示】新建向导式动态表单,使用表单插件控制该向导式动态表单,例如步骤切换前事件...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



