电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

二开案例.表单插件.值更新事件

来源:金蝶云社区作者:金蝶2024-09-232

二开案例.表单插件.值更新事件

【应用场景】插件捕获界面上或者后台的字段的值的变化,根据值的变化进行相应的业务逻辑处理,例如携带当前字段的某些值到其它的字段上。

【案例演示】采购订单,编辑界面,捕获多种不同类型的字段的值更新事件。

【实现步骤】

<1>编写表单插件,代码如下。

using Kingdee.BOS.Core.DynamicForm.PlugIn;

using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;

using Kingdee.BOS.Core.Metadata.FieldElement;

using Kingdee.BOS.Orm.DataEntity;

using Kingdee.BOS.Util;

using Kingdee.BOS.Web.DynamicForm;

using System.ComponentModel;

using System.Linq;

using System.Text;


namespace Jac.XkDemo.BOS.Business.PlugIn

{

    /// <summary>

    /// 【表单插件】值更新事件

    /// </summary>

    [Description("【表单插件】值更新事件"), HotUpdate]

    public class DataChangedEventFormPlugIn : AbstractDynamicFormPlugIn

    {

        private StringBuilder msgs = new StringBuilder();

        private int counter = 0;


        public override void DataChanged(DataChangedEventArgs e)

        {

            base.DataChanged(e);

            if (e.Field.Key.EqualsIgnoreCase("F_Jac_Remarks") || ((DynamicWebFormView) this.View).TryGetControl("F_Jac_Remarks") == null)

            {

                return;

            }


            // 将值更新事件发生时的对应字段的新旧值输出到界面上

            var msg = string.Format("{0}\r\n字段名:{1}\r\n字段标识:{2}\r\n旧值:{3}\r\n新值:{4}\r\n"

                , counter++, e.Field.Name, e.Field.Key, GetValue(e.Field, e.OldValue), GetValue(e.Field, e.NewValue));

            msgs.Insert(0, msg);

            this.View.Model.SetValue("F_Jac_Remarks", msgs.ToString());

        }


        private string GetValue(Field field, object val)

        {

            if (val.IsNullOrEmpty())

            {

                return "";

            }


            if (field is ComboField)

            {

                return GetEnumName((ComboField)field, val);

            }


            if (val is string[])

            {

                var obj = (string[])val;

                return string.Join(",", obj);

            }


            if (val is DynamicObject)

            {

                var obj = (Dyn

二开案例.表单插件.值更新事件

【应用场景】插件捕获界面上或者后台的字段的值的变化,根据值的变化进行相应的业务逻辑处理,例如携带当前字段的某些值到其它的字段上。【...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信