【发布时间】:2018-02-06 05:42:48
【问题描述】:
我正在尝试在通过 Contact BLC 中的操作 ConvertToBAccount() 创建的全新 BAccount 对象上设置自定义字段。我尝试了很多不同的事情,包括覆盖操作并尝试在操作完成后设置对象的值并导航到 BAccount BLC。我发现我无法在覆盖上设置值,因为数据库中没有记录,直到用户手动保存,当我尝试在操作后设置值时,它设置了字段,但不显示新的BAccount BLC 加载完成后屏幕上的值。
如何为通过 Contacts BLC 上的 ConvertToBAccount() 操作创建的新 BAccount 设置扩展字段?
DAC 扩展:
public class BAccountExt : PXCacheExtension<PX.Objects.CR.BAccount>
{
#region UsrHomeCampus
[PXDBInt]
[PXUIField(DisplayName="Home Campus")]
[PXSelector(typeof(Search<PX.Objects.GL.Branch.branchID>),
typeof(PX.Objects.GL.Branch.branchCD),
SubstituteKey = typeof(PX.Objects.GL.Branch.branchCD))]
public virtual int? UsrHomeCampus { get; set; }
public abstract class usrHomeCampus : IBqlField { }
#endregion
}
BLC 代码:
public class BusinessAccountMaint_Extension : PXGraphExtension<BusinessAccountMaint>
{
#region Event Handlers
protected void Contact_RowSelected(PXCache cache, PXRowSelectedEventArgs e)
{
Contact row = (Contact)e.Row;
if (row.ContactID > 0 && Base.CurrentBAccount.Current.BAccountID < 0)
{
Base.CurrentBAccount.Current.GetExtension<BAccountExt>().UsrHomeCampus = row.GetExtension<ContactExt>().UsrHomeCampus;
//Save record in database
Base.Actions.PressSave();
//Cause page refresh
Base.Actions.PressCancel();
}
}
#endregion
}
【问题讨论】:
-
您能否使用 Stack Trace 添加完整的异常。
-
我没有得到任何异常,它只是没有为扩展字段设置值。我显示的片段只是来自 Visual Studio 中的 Watch 窗口。
-
您的 Dac 扩展是用于 BAccount 还是联系人?您的视图名称是 CurrentBAccount,但 Dac 扩展名是 ContactExt
-
适用于 BAccount。谢谢你抓住那个。我会在上面更正它,但情况仍然存在。它确实设置了值,但它不显示我设置的值。
标签: acumatica