カスタマイズ画面に問題がありますAPドキュメント(screnid = AP501000)をリリースします。私はすでに画面AP Bill and Adjusmentにいくつかの追加フィールドを作成している場合、私はDAC APTran(UsrJobOrderNbrとusrNoSeriFaktur)の2つのフィールドを作成しました。 DAC ExtensionをAPTranExtensionという名前で作成します。以下、これはsintaksです:画面をカスタマイズする方法AcumaticaのAPドキュメント(AP501000)をリリースします
using PX.Objects.CR;
using PX.Objects.EP;
using PX.Objects.FA;
using PX.Objects.PO;
using System;
using PX.Data;
using PX.Objects.GL;
using PX.Objects.CM;
using PX.Objects.CS;
using PX.Objects.IN;
using PX.Objects.TX;
using PX.Objects.DR;
using PX.Objects.PM;
using System.Collections.Generic;
using PX.Objects;
using PX.Objects.AP;
namespace SGLCustomization
{
[Serializable]
public class APTranExtension: PXCacheExtension<PX.Objects.AP.APTran>
{
#region UsrJobOrderNbr`enter code here`
public abstract class usrJobOrderNbr : IBqlField{}
[PXDBString(25, IsFixed = true, IsUnicode = true)]
[PXUIField(DisplayName="Job Order Nbr")]
[PXSelector(typeof(Search<JobOrderNbr.jobOrderNbrCD,
Where<JobOrderNbr.status,
Equal<statusActive>>>),
typeof(JobOrderNbr.customerID),
typeof(JobOrderNbr.status),
typeof(JobOrderNbr.usrJobOrderNoRef))]
public string UsrJobOrderNbr
{
get;
set;
}
#endregion
}
}
APTaxTranExtensionという名前の通り、私はまた、DAC拡張機能を作成し、以下これはsintaksです:
using PX.Objects.CR;
using PX.Objects.EP;
using PX.Objects.FA;
using PX.Objects.PO;
using System;
using PX.Data;
using PX.Objects.GL;
using PX.Objects.CM;
using PX.Objects.CS;
using PX.Objects.IN;
using PX.Objects.TX;
using PX.Objects.DR;
using PX.Objects.PM;
using System.Collections.Generic;
using PX.Objects;
using PX.Objects.AP;
using PX.Objects.AR;
namespace SGLCustomization
{
[Serializable]
public class APTaxTranExtension: PXCacheExtension<PX.Objects.AP.APTaxTran>
{
#region UsrNoSeriFaktur
public abstract class usrNoSeriFaktur : IBqlTable{}
[PXDBString(50, IsFixed = true)]
[PXUIField(DisplayName = "No Seri Faktur/Additional Narration")]
public string UsrNoSeriFaktur { get; set; }
#endregion
}
}
私もAPTranExtensionから値を格納するために、GLTranExtensionに拡張DACを作成しますおよびAPTaxTranExtension。これは、以下の私のGLTranExtensionのsintaksです:I入力トランザクションは、その後、私は、画面のリリースAPドキュメント(AP501000)に文書を解放するとき
using System;
using PX.Data;
using PX.Objects.CM;
using PX.Objects.CS;
using PX.Objects.PM;
using PX.Objects.CR;
using PX.Objects.TX;
using System.Collections.Generic;
using PX.Objects;
using PX.Objects.GL;
namespace SGLCustomization
{
[Serializable]
public class GLTranExtension: PXCacheExtension<PX.Objects.GL.GLTran>
{
#region UsrJobOrderNbr
public abstract class usrJobOrderNbr : IBqlField{}
[PXDBString(25, IsFixed = true, IsUnicode = true)]
[PXUIField(DisplayName="Job Order Nbr")]
[PXSelector(typeof(Search<JobOrderNbr.jobOrderNbrCD,
Where<JobOrderNbr.status,
Equal<statusActive>>>),
//typeof(JobOrderNbr.jobOrderNbrCD),
typeof(JobOrderNbr.customerID),
typeof(JobOrderNbr.status))]
public string UsrJobOrderNbr{get;set;}
#endregion
#region UsrNoSeriFaktur
public abstract class usrNoSeriFaktur : IBqlTable { }
[PXDBString(75, IsFixed = true)]
[PXUIField(DisplayName = "No Seri Faktur/Additional Narration")]
public string UsrNoSeriFaktur { get; set; }
#endregion
#region UsrInvoiceNbr
public abstract class usrInvoiceNbr : IBqlTable { }
[PXDBString(60, IsFixed = true)]
[PXUIField(DisplayName = "Vendor Ref./Customer Order")]
public string UsrInvoiceNbr { get; set; }
#endregion
}
}
私の目標は、私の新しい追加フィールドのすべての値は、すでにジャーナル取引に送ら画面(GL301000)も表示されます。
私はすでにAPReleaseProcessExtension BLCを作成して提供していますが、機能しませんでした。下記これは私のAPReleaseProcessExtensionコードです:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using PX.Data;
using PX.Objects.AP;
using PX.Objects.GL;
using PX.Objects.CM;
using PX.Objects.CA;
using PX.Objects.CR;
using PX.Objects.CS;
using PX.Objects.CT;
using PX.Objects.PM;
using SGLCustomization;
using SGLCustomization1;
namespace SGLCustomization1
{
public class APReleaseProcessExtension: PXGraphExtension<APReleaseProcess>
{
public delegate List<APRegister> ReleaseDocProcDel(JournalEntry je, ref APRegister doc, PXResult<APInvoice, CurrencyInfo, Terms, Vendor, Account> res, out PMRegister pmDoc);
public List<APRegister> ReleaseDocProc(JournalEntry je, ref APRegister doc, PXResult<APInvoice, CurrencyInfo, Terms, Vendor, Account> res, out PMRegister pmDoc, ReleaseDocProcDel del)
{
je.RowInserting.AddHandler<GLTran>((sender, e) =>
{
GLTran glTran = e.Row as GLTran;
APTran apTran = PXResult<APTran>.Current;
if (glTran != null && apTran != null)
{
APTranExtension apTex = PXCache<APTran>.GetExtension<APTranExtension>(apTran);
if (apTran != null && apTex.UsrJobOrderNbr != null)
{
GLTranExtension glTex = PXCache<GLTran>.GetExtension<GLTranExtension>(glTran);
glTex.UsrJobOrderNbr = apTex.UsrJobOrderNbr;
}
}
APInvoice api = PXResult<APInvoice>.Current;
if (api != null && api.InvoiceNbr != null)
{
GLTranExtension glTex = PXCache<GLTran>.GetExtension<GLTranExtension>(glTran);
glTex.UsrInvoiceNbr = api.InvoiceNbr;
}
APTaxTran apTax = PXResult<APTaxTran>.Current;
if (apTax != null)
{
APTaxTranExtension apTaxEx = PXCache<APTaxTran>.GetExtension<APTaxTranExtension>(apTax);
if (apTax != null && apTaxEx.UsrNoSeriFaktur != null)
{
GLTranExtension glTex = PXCache<GLTran>.GetExtension<GLTranExtension>((GLTran)e.Row);
glTex.UsrNoSeriFaktur = apTaxEx.UsrNoSeriFaktur;
}
}
});
return del(je, ref doc, res, out pmDoc);
}
#region Event Handlers
#endregion
}
}
私の目標、あなたは正しい方向に動いているが、あなたは[PXOverride]属性を追加するのを忘れました
です。エラーは何ですか?またはエラーがなく、いつものように動作します。あなたのコードをデバッグしようとしましたか? – Hybridzz
エラーはありませんが、追加フィールドの一部の値は、リリース後にジャーナルトランザクションの画面に表示されません。私のコードはうまくいかないようです。任意の提案どのようにこの問題を解決するには? – HariEko
コードをデバッグしようとしましたか?メソッドが呼び出されているときに、行挿入ハンドラを呼び出すのですか? – Hybridzz