所以我试图向SOInvoiceEntry图添加一个小的bool字段,以便可以将其公开给API。即使关闭并释放了文档,它也必须保持可编辑状态。我将DAC字段设置为:
public class ARRegisterExt : PXCacheExtension<PX.Objects.AR.ARRegister>
{
[PXDBBool]
[PXUIField(DisplayName="Has been integrated", Visibility = PXUIVisibility.Visible, Enabled = true)]
public virtual bool? UsrIsIntegrated { get; set; }
public abstract class usrIsIntegrated : IBqlField { }
}
并添加了RowSelected事件,从理论上讲,应该将字段设置为启用:
public class SOInvoiceEntry_Extensions : PXGraphExtension<SOInvoiceEntry>
{
[PXOverride]
public void SOInvoice_RowSelected(PXCache sender, PXRowSelectedEventArgs e, PXRowSelected baseMethod)
{
baseMethod?.Invoke(sender, e);
if (e.Row == null) return;
PXUIFieldAttribute.SetEnabled<ARRegisterExt.usrIsIntegrated>(sender, e.Row, true);
}
}
但是,对于已关闭的发票,该字段保持只读状态。我已经在ARInvoiceEntry图上对此进行了测试,并将其公开给api,并且可以正常工作。我一直在测试将字段设置为启用的不同方法,但到目前为止还没有运气。
任何帮助都会很棒。 谢谢
答案 0 :(得分:0)
该问题是由SOInvoiceEntry屏幕上的一个自动化步骤引起的,该操作将ARInvoice表设置为“禁用”,这覆盖了我添加的逻辑。