二开案例.单据插件.单据保存时不保存弹性域数据

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

二开案例.单据插件.单据保存时不保存弹性域数据

【应用场景】

单据保存前,会自动进行弹性域数据的保存,弹性域数据的保存会有一定的性能损耗。某些场景下,可以确定当前单据上的弹性域数据都是已经保存过的(例如:此单是下推而来,且未再新增弹性域数据,也未对已有的弹性域数据做修改),此时,为了更好的性能,可以通过插件控制单据保存时不再保存弹性域数据。


【案例演示】

采购订单下推采购入库单,采购入库单保存时,不再保存弹性域数据。


【实现步骤】

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

using Kingdee.BOS.Core.Bill.PlugIn;

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

using Kingdee.BOS.Core.Metadata;

using Kingdee.BOS.Core.Metadata.FormElement;

using Kingdee.BOS.Util;

using System.ComponentModel;


namespace Jac.XkDemo.BOS.Business.PlugIn

{

    /// <summary>

    /// 【单据插件】单据保存时不保存弹性域数据

    /// </summary>

    [Description("【单据插件】单据保存时不保存弹性域数据"), HotUpdate]

    public class ForbidSaveFlexDataBillPlugIn : AbstractBillPlugIn

    {

        public override void BeforeDoOperation(BeforeDoOperationEventArgs e)

        {

            base.BeforeDoOperation(e);

            if (e.Operation.FormOperation.OperationId == FormOperation.Operation_Save

                && this.View.OpenParameter.Status == OperationStatus.ADDNEW

                && this.View.OpenParameter.CreateFrom == CreateFrom.Push)

            {

                // 下推新增单据保存时,为了提升性能,不保存弹性域数据

                e.Option.SetForbidSaveFlexData(true);

            }

        }

    }

}


<2>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。


<3>BOSIDE扩展采购入库单,注册表单插件,保存元数据,开发完毕。

---------------------------------------------------------------------------------------------------------













【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696

二开案例.单据插件.单据保存时不保存弹性域数据

【应用场景】单据保存前,会自动进行弹性域数据的保存,弹性域数据的保存会有一定的性能损耗。某些场景下,可以确定当前单据上的弹性域数据...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息