Acumatica 在发布状态下在传输屏幕(IN304000)中启用自定义项
我试图在发布状态下在传输屏幕中启用自定义项,但未启用自定义项。 谁能在这个问题上帮助我。我也调试了代码,在调试过程中,代码被执行了,但结果在屏幕上没有任何效果。我还可以看到光标在该字段上闪烁。提前谢谢。以下是我的代码:Acumatica 在发布状态下在传输屏幕(IN304000)中启用自定义项,acumatica,acumatica-kb,Acumatica,Acumatica Kb,我试图在发布状态下在传输屏幕中启用自定义项,但未启用自定义项。 谁能在这个问题上帮助我。我也调试了代码,在调试过程中,代码被执行了,但结果在屏幕上没有任何效果。我还可以看到光标在该字段上闪烁。提前谢谢。以下是我的代码: namespace PX.Objects.IN { public class INTransferEntry_Extension : PXGraphExtension<INTransferEntry> { #region Event H
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
}
}
名称空间PX.Objects.IN
{
公共类内部引用扩展:pxGrapherExtension
{
#区域事件处理程序
已选择注册表中受保护的无效项(PXCache缓存、PXRowSelectedEventArgs e)
{
如果(e.Row==null)
{
返回;
}
bool应该禁用=((在注册表中)e.Row.Hold==false&((在注册表中)e.Row.Released==true;
如果(应禁用)
{
PXUIFieldAttribute.SetEnabled(缓存,如行,true);
}
}
#端区
}
}
DAC场
命名空间PX.Objects.IN
{
RegisterText中的公共类:PXCacheExtension
{
#区域USREX预燃日期
[PXDBDate]
[PXUIField(DisplayName=“预期返回日期”)]
公共虚拟日期时间?usrexperturndate{get;set;}
公共抽象类usrexperturndate:PX.Data.BQL.BqlDateTime.Field{}
#端区
}
}
文档处于已发布状态。当文档处于关闭状态时,存在防止字段编辑的机制。在这种情况下,不建议启用字段 要启用字段,需要还原阻止编辑的机制。通常使用数据视图的
AllowUpdate
属性来执行此操作,但也可以是自动化步骤或工作流系统
重新启用AllowUpdate时,需要禁用并重新启用以下字段:
Base.transfer.AllowUpdate = true;
PXUIFieldAttribute.SetEnabled(sender, e.Row, false);
PXUIFieldAttribute.SetEnabled<INRegisterExt.usrExpReturnDate>(cache, e.Row, true);
Base.transfer.AllowUpdate=true;
PXUIFieldAttribute.SetEnabled(发送方,例如行,false);
PXUIFieldAttribute.SetEnabled(缓存,如行,true);
Hi Hugues,再次感谢,现在工作正常。但是我对某些事情感到困惑,我提供的代码允许我在AR301000屏幕中启用或禁用UDF,为什么不在这个IN304000屏幕中呢?为什么我需要为IN30400屏幕将dataview的AllowUpdate属性设置为true。请您对此主题提出一些建议。这是因为IN304000屏幕的图形在文档处于已发布状态时设置AllowUpdate=false,以防止字段值修改。禁用所有字段时,通常使用AllowUpdate或自动化步骤/工作流系统完成。您需要将其还原以允许再次编辑,但请注意,不建议这样做。当文档关闭时,它们不应该被编辑。谢谢你的评论。谢谢。现在我明白了