二开案例.单据插件.录单时限制分录行数

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

二开案例.单据插件.录单时限制分录行数

【应用场景】录单时限制分录行数。

【案例演示】采购订单,录单时,限制明细信息的总行数不能超过3行。


【实现步骤】

<1>编写单据插件,实现控制分录行数的功能。

using Kingdee.BOS.Core.Bill.PlugIn;

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

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

using Kingdee.BOS.Util;

using System.ComponentModel;


namespace Jac.XkDemo.BOS.Business.PlugIn

{

    /// <summary>

    /// 【单据插件】限制分录行数

    /// </summary>

    [Description("【单据插件】限制分录行数"), HotUpdate]

    public class LimitEntryRowCountBillPlugIn : AbstractBillPlugIn

    {

        /// <summary>

        /// 最大分录行数

        /// </summary>

        const int MaxEntryRowCount = 3;


        /// <summary>

        /// 创建分录行时,检查分录行数

        /// </summary>

        /// <param name="e"></param>

        public override void BeforeCreateNewEntryRow(BeforeCreateNewEntryEventArgs e)

        {

            base.BeforeCreateNewEntryRow(e);

            if (e.Entity.Key == "FPOOrderEntry")

            {

                if (this.View.Model.GetEntryRowCount(e.Entity.Key) >= MaxEntryRowCount)

                {

                    e.Cancel = true;

                    this.View.ShowErrMessage("分录行数不能超过" + MaxEntryRowCount);

                }

            }

        }


        /// <summary>

        /// 保存数据前,再次检查分录行数

        /// </summary>

        /// <param name="e"></param>

        public override void BeforeSave(BeforeSaveEventArgs e)

        {

            base.BeforeSave(e);

            if (this.View.Model.GetEntryRowCount("FPOOrderEntry") > MaxEntryRowCount)

            {

                e.Cancel = true;

                this.View.ShowErrMessage("分录行数不能超过" + MaxEntryRowCount);

            }

        }

    }

}




/*

 * 

 * 

# Python示例代码

def BeforeCreateNewEntryRow(e):

if (e.Entity.Key == "FPOOrderEntry"):

if (this.View.Model.GetEntryRowCount(e.Entity.Key) >= 3):

e.Cancel = True;

this.View.ShowErrMessage("分录行数不能超过3");


def BeforeSave(e):

if (this.View.Model.GetEntryRowCount("FPOOrderEntry") > 3):

e.Cancel = True;

this.View.ShowErrMessage("分录行数不能超过3");

 * 

 * 

 */



<2>扩展采购订单,注册插件,保存元数据。


<3>拷贝插件组件到应用服务器的WebSite\Bin目录下,重启IIS,开发完毕。




现在可以登录业务站点,打开采购订单,验证一下控制效果啦:)








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



二开案例.单据插件.录单时限制分录行数

【应用场景】录单时限制分录行数。【案例演示】采购订单,录单时,限制明细信息的总行数不能超过3行。【实现步骤】<1>编写单据插件,实现控...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息