Acumatica 我可以在销售订单屏幕中获取客户的自定义字段吗?
我在客户屏幕上创建了一个自定义字段“内部分支ID”。 我的问题是如何在销售订单BLC中获得它的价值?使用PXSelect方法?我真的很困惑Acumatica 我可以在销售订单屏幕中获取客户的自定义字段吗?,acumatica,Acumatica,我在客户屏幕上创建了一个自定义字段“内部分支ID”。 我的问题是如何在销售订单BLC中获得它的价值?使用PXSelect方法?我真的很困惑 如果您只想显示添加到客户的自定义字段,您可以按照下面屏幕截图所示的方式进行操作 如果要在某个事件或操作下获取代码中自定义字段的值,可以执行以下操作: using PX.Data; using PX.Objects.AR; using PX.Objects.SO; using PX.Objects.CR; using System; namespace
如果您只想显示添加到客户的自定义字段,您可以按照下面屏幕截图所示的方式进行操作 如果要在某个事件或操作下获取代码中自定义字段的值,可以执行以下操作:
using PX.Data;
using PX.Objects.AR;
using PX.Objects.SO;
using PX.Objects.CR;
using System;
namespace ClassLibrary1
{
public class SOOrderEntryExt: PXGraphExtension<SOOrderEntry>
{
public virtual void Customer_RowSelecting(PXCache sender,PXRowSelectingEventArgs eventArgs,PXRowSelecting baseMethod)
{
baseMethod?.Invoke(sender, eventArgs);
if(eventArgs.Row!=null)
{
Customer currentCustomer = (Customer)eventArgs.Row;
BAccountExt currentCustomerExtension = PXCache<BAccount>.GetExtension<BAccountExt>(currentCustomer);
var value = currentCustomerExtension.UsrCustomerNote;
}
}
}
}
在这一行之后,您就有了自定义字段的值,并且可以根据需要使用它:
var value = currentCustomerExtension.UsrCustomerNote;
首先谢谢你的回复。但我有点困惑。如果我想获取当前SO的客户(在屏幕上),然后获取客户的自定义字段。您的代码可以用于此吗?@JackZeng是的,如果我不想在customer_RowSelecting事件中执行此代码,而不是在实际操作中执行此代码,则此代码适用于销售订单的当前客户?代码是一样的吗?是否需要更改这些代码“Customer currentCustomer=(Customer)eventArgs.Row;”?@JackZeng eventArgs.Row是当前客户的行,作为对象装箱。这就是为什么要对客户类型进行转换。如果要执行操作,而不是使用
eventArgs.Row
,您可以尝试获取this.Base.customer.Current
并获取其扩展名
var value = currentCustomerExtension.UsrCustomerNote;