2016-04-22 49 views
0

我對Acumatica中的BLC有疑問。 正如我們所知道的使用ARInvoiceEntry BLC的屏幕發票和備忘錄(AR301000)中的發佈過程,它調用ARDocumentRelease靜態方法ReleaseDoc。 而ReleaseDoc調用虛擬ReleaseDocProc方法,該方法創建GLTran記錄。在Acumatica系統中自定義發佈AP文檔

我的問題:是否在APInvoiceEntry BLC中實現了此條件,它調用了APDocumentRelease靜態方法ReleaseDoc。並且ReleaseDoc也調用虛擬ReleaseDocProc方法?

因爲我在屏幕「發票和備忘錄」中有一個額外字段,並且想要在按鈕釋放單擊時將此附加字段中的值發送到日記帳交易。儘管從屏幕「發票和備忘錄」以及「AR發佈過程」屏幕中都可以發佈。我完成了這個定製。

現在我需要爲屏幕AP發佈過程屏幕做同樣的事情。

任何建議如何提供它?

+0

是的,這應該是我想。 – xxxAcuGeekxxx

+0

你有任何參考代碼? – HariEko

+1

[如何在Acumatica中自定義屏幕發佈AP文檔(AP501000)]的可能副本(http://stackoverflow.com/questions/36689720/how-to-customize-screen-release-ap-documents-ap501000-in-acumatica ) – Gabriel

回答

1

嘗試這樣的事情(我copypasted從問題How to Customize screen Release AP Documents (AP501000) in Acumatica代碼,並修改了它):

using System; 
using System.Collections.Generic; 
using PX.Data; 
using PX.Objects.AP; 
using PX.Objects.GL; 
using PX.Objects.CM; 
using PX.Objects.CS; 
using PX.Objects.IN; 

namespace SGLCustomizeProject 
{ 

    public class ARRelaseProcessExtension : PXGraphExtension<APReleaseProcess> 
    { 
     public delegate List<APRegister> ReleaseDocProcDel(JournalEntry je, ref APRegister doc, PXResult<APInvoice, CurrencyInfo, Terms, Vendor> res, bool isPrebooking, out List<INRegister> inDocs); 
     [PXOverride] 
     public virtual List<APRegister> ReleaseDocProc(JournalEntry je, ref APRegister doc, PXResult<APInvoice, CurrencyInfo, Terms, Vendor> res, bool isPrebooking, out List<INRegister> inDocs, ReleaseDocProcDel del) 
     { 
      je.RowInserting.AddHandler<GLTran>((sender, e) => 
      { 
       GLTran glTran = e.Row as GLTran; 

       APInvoice api = PXSelect<APInvoice, Where<APInvoice.refNbr, Equal<Required<GLTran.refNbr>>, And<APInvoice.docType, Equal<Required<GLTran.tranType>>>>>.Select(sender.Graph, glTran.RefNbr, glTran.TranType); 
       if (api != null && api.InvoiceNbr != null) 
       { 
        GLTranExtension glTex = PXCache<GLTran>.GetExtension<GLTranExtension>(glTran); 
        glTex.UsrInvoiceNbr = api.InvoiceNbr; 
       } 
      }); 
      return del(je, ref doc, res, isPrebooking, out inDocs); 
     } 
    } 
} 
+0

謝謝你的幫助。:) – HariEko