У меня есть флажок на расширении ЦАП для учетной записи BA, который я хочу использовать, чтобы установить флажок в случае, когда выбран клиент.Вот как выглядит флажок на экране Бизнес-счет .
Вот поле на экране Дело , которое я хочу установить при выборе клиента.
Я обнаружил вопрос о переполнении стека, когда пару пользовательских полей на экране клиента нужно было скопировать в пользовательские поля в заказе клиента.Я пытался подставить свои поля в код, но я не смог заставить его работать.
Вот что я пробовал.Я не уверен, что мне не хватает.
protected void CRCase_CustomerID_FieldUpdated(PXCache sender, PXFieldUpdatedEventArgs e)
{
var crcase = e.Row as CRCase;
if (crcase.CustomerID != null)
{
var customer = PXSelectorAttribute.Select<CRCase.customerID>(sender, crcase) as BAccountR;
if (customer != null)
{
var customerExt = customer.GetExtension<BAccountExt>();
var crcaseExt = crcase.GetExtension<CRCaseExt>();
crcaseExt.UsrContractCustomer = customerExt.UsrSage100;
}
}
}
Я не понимаю, почему BAccountR используется вместо просто BAccount.Ни один из них не работает прямо сейчас.
Я решил проблему, объединив ответ, полученный в предыдущем посте.Я изменил две последние строки следующим образом:
var customerExt = customer.GetExtension<BAccountExt>();
//var crcaseExt = crcase.GetExtension<CRCaseExt>();
//crcaseExt.UsrContractCustomer = customerExt.UsrSage100;
sender.SetValueExt<CRCaseExt.usrContractCustomer>(crcase, customerExt.UsrSage100 != null);
Итак, вот последний вопрос, который мне нужно решить.Флажок, который я использовал на экране «Бизнес-аккаунт», открывает новую вкладку, в которой отображаются настраиваемые поля.Эти настраиваемые поля являются расширением ЦАП BAccount под названием DSDSage100.Это похоже на расширение BAccount под названием Customer.В расширении DSDSage100 есть поле с именем UsrContractCustomer.Это поле, которое я хочу прочитать и установить поле Case на то же значение.Вот как выглядит Sage 100 Tab .У меня есть директива using для моего проекта, но я не могу найти правильную ссылку на расширение DSDSage100.
var customerExt = customer.GetExtension<DSDSage100>();
sender.SetValueExt<CRCaseExt.usrContractCustomer>(crcase, customerExt.UsrContractCustomer != null);