Acumatica - Включить поле в AP Bill в статусе Pending Approval - PullRequest
0 голосов
/ 10 июля 2020

Я пытался включить поле APTran.tranDes c на экране ввода счета AP, пока счет находится в состоянии ожидания утверждения. Я пробовал следующее (что не работает)

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);

Есть ли простой способ переопределить только один tranDes c, чтобы разрешить редактирование в сетке?

1 Ответ

0 голосов
/ 14 июля 2020

попробуйте следующее:

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);
  }      
}

вы должны включить кеш для обновления. отключить все поля. затем снова включите поле, которое вы хотите редактировать.

...