Acumatica 我可以在销售订单屏幕中获取客户的自定义字段吗?

Acumatica 我可以在销售订单屏幕中获取客户的自定义字段吗?,acumatica,Acumatica,我在客户屏幕上创建了一个自定义字段“内部分支ID”。 我的问题是如何在销售订单BLC中获得它的价值?使用PXSelect方法?我真的很困惑 如果您只想显示添加到客户的自定义字段,您可以按照下面屏幕截图所示的方式进行操作 如果要在某个事件或操作下获取代码中自定义字段的值,可以执行以下操作: using PX.Data; using PX.Objects.AR; using PX.Objects.SO; using PX.Objects.CR; using System; namespace

我在客户屏幕上创建了一个自定义字段“内部分支ID”。 我的问题是如何在销售订单BLC中获得它的价值?使用PXSelect方法?我真的很困惑


如果您只想显示添加到客户的自定义字段,您可以按照下面屏幕截图所示的方式进行操作

如果要在某个事件或操作下获取代码中自定义字段的值,可以执行以下操作:

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;