【015】禁用扩展字段弹窗(禁用生产订单扩展字段示例)
侧边栏壁纸
  • 累计撰写 60 篇文章
  • 累计收到 2 条评论

【015】禁用扩展字段弹窗(禁用生产订单扩展字段示例)

秋驰雪隙
2025-04-07 / 0 评论 / 15 阅读 / 正在检测是否收录...

配置文件

<ExtendedPart parentPartFullName="UFIDA.U9.Base.FlexField.DescFlexFieldCtrlUIModel.DescFlexFieldCtrlUIFormWebPart" extendedPartFullName="UFIDA.U9.DW.UIPlugIn.DescFlexFieldCtrlUIPlugIn" extendedPartAssemblyName="UFIDA.U9.DW.UIPlugIn.dll" />

DescFlexFieldCtrlUIPlugIn.cs

using System;
using UFIDA.U9.Base.FlexField.DescFlexFieldCtrlUIModel;
using UFSoft.UBF.UI.ControlModel;
using UFSoft.UBF.UI.IView;
using UFSoft.UBF.UI.MD.Runtime;

namespace UFIDA.U9.DW.UIPlugIn
{
    public class DescFlexFieldCtrlUIPlugIn : UFSoft.UBF.UI.Custom.ExtendedPartBase
    {
        protected DescFlexFieldCtrlUIFormWebPart Part;

        public override void AfterRender(IPart part, EventArgs args)
        {
            Part = part as DescFlexFieldCtrlUIFormWebPart;
            if (Part == null) { base.AfterInit(Part, args); return; }
            IUFTabControl ctrl10 = Part.GetUFControlByName(Part.TopLevelContainer, "TabControl0") as IUFTabControl;
            if (ctrl10 == null) { base.AfterInit(Part, args); return; }
            if (!Part.ParameterValues.ContainsKey("EntityFullName")) { base.AfterInit(Part, args); return; }
            switch (Part.ParameterValues["EntityFullName"])
            {
                case "UFIDA.U9.MO.MO.MO": // 生产订单
                    var moRecord = GetParentFocusedRecord<MFG.MO.DiscreteMOUIModel.MORecord>();
                    if (moRecord != null)
                    {
                        // (0开立 4核准中)启用,其它状态禁用
                        ctrl10.Enabled = moRecord.DocState == 0 || moRecord.DocState == 4;
                    }
                    break;
                default:
                    break;
            }
            base.AfterInit(Part, args);
        }

        private U GetParentFocusedRecord<U>() where U : class
        {
            DescFlexFieldCtrlRecord focusedRecord = Part.Model.DescFlexFieldCtrl.FocusedRecord;
            if (focusedRecord != null && !string.IsNullOrEmpty(focusedRecord.descViewName))
            {
                IUIModel iuimodel = (IUIModel)Part.CurrentState[Part.ParentTaskID];
                if (iuimodel != null)
                {
                    IUIView iuiview = iuimodel.Views.Contains(focusedRecord.descViewName) ? iuimodel.Views[focusedRecord.descViewName] : null;
                    if (iuiview != null && iuiview.FocusedRecord != null)
                    {
                        return iuiview.FocusedRecord as U;
                    }
                }
            }
            return null;
        }
    }
}
0

评论 (0)

取消