工序计划业务操作补卡二开增加校验

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

工序计划业务操作补卡二开增加校验

【应用场景】

工序计划业务操作补卡:希望增加条件在废品数量大于0的时候才可补卡


【实现步骤】

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

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Kingdee.BOS;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.Metadata;
using Kingdee.BOS.Core.SqlBuilder;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.Resource;
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.Util;
using Kingdee.BOS.VerificationHelper;
using Kingdee.K3.Core.MFG;

namespace Kingdee.K3.MFG.SFC.Business.PlugIn.Bill
{
    public class Class2 : OperationPlanningList
    {
        private bool flag = true;
        public override void AfterDoOperation(AfterDoOperationEventArgs e)
        {
            flag = true;
            switch (e.Operation.Operation)
            {
                case "FeedFirstToLast":
                    long pkKey = 0;
                    if (this.ListView.CurrentSelectedRowInfo == null
                        || !long.TryParse(this.ListView.CurrentSelectedRowInfo.PrimaryKeyValue, out pkKey)
                        || pkKey <= 0)
                    {
                        this.View.ShowErrMessage(Kingdee.BOS.Resource.ResManager.LoadKDString("没有选择任何数据,请先选择数据!", "015072000002180", Kingdee.BOS.Resource.SubSystemType.MFG));
                    }
                    // 只能选择一行分录
                    string detailId = string.Empty;
                    this.ListView.SelectedRowsInfo.FirstOrDefault().FieldValues.TryGetValue("FSubEntity", out detailId);

                    long UnqualifiedQty = 0;
                    try
                    {
                        UnqualifiedQty = Convert.ToInt64(
                            ((DynamicObjectDataRow)this.ListView.SelectedRowsInfo[0].DataRow).DynamicObject["FUNQUALIFIEDQTY"]);
                    }
                    catch (Exception er)
                    {
                        List<SelectorItemInfo> items = new List<SelectorItemInfo>() { new SelectorItemInfo("FOPERCANCEL") };
                        QueryBuilderParemeter curParams = new QueryBuilderParemeter()
                        {
                            FormId = MFGFormIdConst.SubSys_SFC.OperationPlanning,
                            SelectItems = items,
                            FilterClauseWihtKey = string.Format("FSubEntity_FDetailId = {0}", detailId)
                        };
                        DynamicObject result = QueryServiceHelper.GetDynamicObjectCollection(this.Context, curParams).FirstOrDefault();
                        UnqualifiedQty = Convert.ToInt64(result["FUNQUALIFIEDQTY"]);
                    }
                    if (UnqualifiedQty == 0)
                    {
                        this.View.ShowErrMessage("废品数量大于0的时候才可补卡");
                        flag = false;

                    }
                    break;
            }
            if (flag)
            {
                base.AfterDoOperation(e);
            }
        }
    }
}


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

<3>BOSIDE扩展工序计划(SFC_OperationPlanning),注册列表插件,保存元数据,开发完毕。


【功能验证】

<1>登录业务站点,打开工序计划界面,补卡操作;



【参考资料】

【二开案例.基础资料.联动查询(GetValue)】

https://vip.kingdee.com/article/127710528226504960



【金蝶云星空BOS二次开发案例演示】

https://vip.kingdee.com/article/94751030918525696



工序计划业务操作补卡二开增加校验

【应用场景】工序计划业务操作补卡:希望增加条件在废品数量大于0的时候才可补卡【实现步骤】<1>编写列表插件,代码如下。 using System;us...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息