HMI工序报工列表报工的时候判断上到序是否完工,不完工本序不允许报工

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

HMI工序报工列表报工的时候判断上到序是否完工,不完工本序不允许报工

【应用场景】

HMI工序报工列表报工的时候判断上到序是否完工,如果是不完工,本序不允许报工


【实现步骤】

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

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.K3.MFG.ServiceHelper.SFC;
using Kingdee.BOS.Util;
using Kingdee.K3.Core.MFG;
using Kingdee.K3.Core.MFG.EntityHelper;
using Kingdee.K3.Core.MFG.EnumConst;
namespace Kingdee.K3.MFG.Mobile.Business.PlugIn.SFC.Complex
{
    public class Class1 : ComplexOperReportList
    {
        public override void ButtonClick(ButtonClickEventArgs e)
        {
            if (e.Key.ToUpper() == "FBUTTON_CONFIRM")
            {
                var dicRowData = this.GetCurrentRowData();
                DynamicObject operEntity = GetOperData(Convert.ToInt64(dicRowData["FOptPlanId"]), Convert.ToInt64(dicRowData["FOptPlanOptId"]));
                DynamicObjectCollection operColls = OperationPlanning4TransferServiceHelper.GetOutOperListByCurrInOp(this.Context, operEntity);
                if (!operColls.IsNullOrEmptyOrWhiteSpace() && operColls.Any())
                {
                    if (!(operColls.FirstOrDefault()["OperStatus"]).Equals("5"))
                    {
                        this.View.ShowErrMessage(" 上道序没有完工!,不允许报工");
                        return;
                    }
                }
                else
                {
                    base.ButtonClick(e);
                }
            }
            else
            {
                base.ButtonClick(e);
            }
        }
    }
}

protected DynamicObject GetOperData(long primaryKeyId, long entryKeyId)
 {
     // 获取工序计划数据包
     FormMetadata metadata = MetaDataServiceHelper.Load(this.Context, "SFC.OperationPlanning") as FormMetadata;
     DynamicObject opData = BusinessDataServiceHelper.LoadSingle(this.Context, (object)primaryKeyId, metadata.BusinessInfo.GetDynamicObjectType());
     //获取工序号
     DynamicObject operData = null;
     foreach (DynamicObject seqData in opData.GetDynamicObjectItemValue<DynamicObjectCollection>("Entity"))
     {
         operData = seqData.GetDynamicObjectItemValue<DynamicObjectCollection>("SubEntity")
                                  .FirstOrDefault(f => long.Equals(f.GetDynamicObjectItemValue<long>("Id"), entryKeyId));
         if (operData != null)
         {
             break;
         }
     }
     return operData;
 }


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

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


【参考资料】

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

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



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

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



HMI工序报工列表报工的时候判断上到序是否完工,不完工本序不允许报工

【应用场景】HMI工序报工列表报工的时候判断上到序是否完工,如果是不完工,本序不允许报工【实现步骤】<1>编写表单插件和服务插件,代码如...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息