2016-07-14 4 views
0

Я хочу установить значение OrderType по умолчанию на экране SOOrder по текущему логину пользователя с ролью пользователя. Поэтому я создаю новое поле на экране. Тип заказа: SO201000, который выбирает имя роли. Например: OrderType: C1 для userRole: 001A и OrderType: C2 для userRole: 001D.ошибка CS0426: имя типа 'UsrUserRole' не существует в типе 'PX.Objects.SO.SOOrderType'

На экране OrderType: SO201000 и UsrUserRole (New Field)

[PXDBString(64)] 
[PXDefault()] 
[PXSelector(typeof(Search2<PX.SM.Roles.rolename>))] 
[PXUIField(DisplayName="User Role", Visibility = PXUIVisibility.SelectorVisible)] 

На экране SOOrder: OrderType (Customized Existing поле)

[PXDefault(typeof(Search2<SOOrderType.orderType,InnerJoin<PX.SM.UsersInRoles, On<PX.SM.UsersInRoles.rolename, Equal<SOOrderType.UsrUserRole>>>,Where<PX.SM.UsersInRoles.username, Equal<Current<AccessInfo.userName>>>>), PersistingCheck = PXPersistingCheck.Nothing)] 

По умолчанию OrderType (Customized Existing поле)

[PXSelector(typeof(Search5<SOOrderType.orderType,InnerJoin<SOOrderTypeOperation, On<SOOrderTypeOperation.orderType, Equal<SOOrderType.orderType>, And<SOOrderTypeOperation.operation, Equal<SOOrderType.defaultOperation>>>,LeftJoin<SOSetupApproval, On<SOOrderType.orderType, Equal<SOSetupApproval.orderType>>>>,Aggregate<GroupBy<SOOrderType.orderType>>>),DescriptionField = typeof(SOOrderTypeT.descr))] [PXRestrictor(typeof(Where<SOOrderTypeOperation.iNDocType,NotEqual<INTranType.transfer>, Or<FeatureInstalled<FeaturesSet.warehouse>>>), ErrorMessages.ElementDoesntExist, typeof(SOOrderType.orderType))] 
[PXRestrictor(typeof(Where<SOOrderType.requireAllocation, NotEqual<True>, Or<AllocationAllowed>>), ErrorMessages.ElementDoesntExist, typeof(SOOrderType.orderType))] 
[PXRestrictor(typeof(Where<SOOrderType.active,Equal<True>>), null)] 
+0

Не достаточно ли ясен? – YSP

ответ

0

Когда вы пишете поиск, вы пишете его, чтобы получить нужное вам поле. В этом случае вам нужно значение SOOrderType.orderType.

Если вы уверены, что поиск в атрибуте PXDefault верен, возможно, вам нужно проверить логику экрана Acumatica, как она назначает значение. Может быть, есть какая-то логика, которая перезаписывает вашу ценность.

Is UsrUserRole в расширении для SOOrderType? если тогда вы должны использовать его как YourExtension.UsrUserRole не SOOrderType.UsrUserRole

+0

Основная идея, я хочу выбрать тип SOOrder, который устанавливает для роли в экране Тип заказа. Но теперь его не выбрать. – YSP

+0

проверить отредактированный ответ – Hybridzz

+0

Кажется, на экране OrderType, что я только что создал новое поле, он был сохранен в таблице, но он не определен в SOOrderType, поэтому он получил ошибку: имя типа 'UsrUserRole' не существует в типе 'PX .Objects.SO.SOOrderType. – YSP

 Смежные вопросы

  • Нет связанных вопросов^_^