Могу ли я получить пользовательское поле на экране заказа клиента? - PullRequest
0 голосов
/ 24 апреля 2018

Я создал настраиваемое поле «Внутренний идентификатор филиала» на экране клиента. Мой вопрос, как получить его стоимость в заказе на продажу BLC? Использовать метод PXSelect? Это действительно смутило меня ...

Custom filed

On sales order screent

1 Ответ

0 голосов
/ 25 апреля 2018

Если вы хотите просто показать пользовательское поле, добавленное к клиенту, вы можете сделать это, как показано на скриншоте ниже enter image description here

Если вы хотите получить значениеНастраиваемое поле в коде для какого-либо события или действия позволяет выполнить следующее:

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;
            }
        }
    }
}

Customer наследуется от класса BAccount, поэтому в следующей строке не будет никаких проблем:

BAccountExt currentCustomerExtension = PXCache<BAccount>.GetExtension<BAccountExt>(currentCustomer);

После этой строки у вас есть значение настраиваемого поля и вы можете делать с ним все, что вам нужно:

var value = currentCustomerExtension.UsrCustomerNote;
...