首页 > 解决方案 > 在发布状态的传输屏幕 (IN304000) 中启用 UDF

问题描述

我正在尝试在发布状态的传输屏幕中启用 UDF,但未启用 UDF。任何人都可以在这个问题上帮助我。我也调试了代码,在调试时,代码正在执行,但结果对屏幕没有任何影响。我也可以看到光标在该字段上闪烁。提前致谢。以下是我的代码:

namespace PX.Objects.IN
{
    public class INTransferEntry_Extension : PXGraphExtension<INTransferEntry>
    {
        #region Event Handlers
        
        protected void INRegister_RowSelected(PXCache cache, PXRowSelectedEventArgs e)
        {           
            if (e.Row == null)
            {
                return;
            }
            bool shouldDisable = ((INRegister)e.Row).Hold == false && ((INRegister)e.Row).Released == true;
            if (shouldDisable)
            {
                PXUIFieldAttribute.SetEnabled<INRegisterExt.usrExpReturnDate>(cache, e.Row, true);
            }
        }
        #endregion
    }
}

DAC FIELD

namespace PX.Objects.IN
{
  public class INRegisterExt : PXCacheExtension<PX.Objects.IN.INRegister>
  {
    #region UsrExpReturnDate
    [PXDBDate]
    [PXUIField(DisplayName="Expected Return Date")]

    public virtual DateTime? UsrExpReturnDate { get; set; }
    public abstract class usrExpReturnDate : PX.Data.BQL.BqlDateTime.Field<usrExpReturnDate> { }
    #endregion
  }
}

在此处输入图像描述

标签: acumaticaacumatica-kb

解决方案


文档处于已发布状态。当文档处于关闭状态时,有一些机制可以防止字段编辑。在这种情况下不建议启用字段。

要启用字段,您需要恢复阻止编辑的机制。它通常AllowUpdate是用于执行此操作的数据视图的属性,但它也可以是自动化步骤或工作流系统。

重新启用 AllowUpdate 时,您需要禁用并重新启用这些字段:

Base.transfer.AllowUpdate = true;
PXUIFieldAttribute.SetEnabled(sender, e.Row, false);
PXUIFieldAttribute.SetEnabled<INRegisterExt.usrExpReturnDate>(cache, e.Row, true);

推荐阅读