发布状态时在传输屏幕 (IN304000) 中启用 UDF

Enable UDF in Transfer screen (IN304000) on release Status

我试图在发布状态下的传输屏幕中启用 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
  }
}

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

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

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

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