Acumatica - 在待批准状态下启用 AP 账单中的字段

Acumatica - Enable field in AP Bill while in Pending Approval status

当发票处于待批准状态时,我一直在尝试启用 AP 帐单输入屏幕中的 APTran.tranDesc 字段。我尝试了以下方法(不起作用)

public void APTran_RowSelected(PXCache sender, PXRowSelectedEventArgs e, PXRowSelected InvokeBaseHandler)
{

    APTran line = (APTran)e.Row;
    APInvoice invoice = Base.Document.Current;
    if (invoice == null || line == null || Base.IsExport) return;

   if (invoice.Status != APDocStatus.Open)
    {
        PXUIFieldAttribute.SetEnabled<APTran.tranDesc>(sender, line, true);
          

        }
}

我相信这是因为 APInvoiceEntry 中的这一行:

            Transactions.Cache.SetAllEditPermissions(allowEdit: false);

是否有一种简单的方法来仅覆盖一个 tranDesc 字段以允许在网格内进行编辑?

试试这个:

protected void APTran_RowSelected(PXCache cache, PXRowSelectedEventArgs e)
{      
  var row = (APTran)e.Row;
  if (row == null) return;
  APInvoice invoice = Base.Document.Current;
  if (invoice.Status == APDocStatus.PendingApproval)
  {
     cache.AllowUpdate = true;
     PXUIFieldAttribute.SetEnabled(cache, row, false);        
     PXUIFieldAttribute.SetEnabled<APTran.tranDesc>(cache, row, true);
  }      
}

您必须启用缓存才能进行更新。禁用所有字段。然后重新启用您想要编辑的字段。