2016-07-14 7 views
0

ロール内のユーザーとの現在のユーザーログインによって、SOOrder画面でデフォルトのOrderTypeを設定したいとします。そこで私は画面上にOrder Type:SO201000という新しい名前のフィールドを作成し、ロール名を選択します。たとえば、userRole:001AではOrderType:C1、userRole:001DではOrderType:C2です。画面OrderTypeでエラーCS0426: 'UsrUserRole'タイプが 'PX.Objects.SO.SOOrderType'タイプに存在しません

:SO201000とUsrUserRole(新しいフィールド)画面SOOrderで

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

:OrderType(カスタマイズされた既存のフィールド)

[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(カスタマイズされた既存のフィールド)

[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画面のロジックをチェックして、値の割り当て方法を確認する必要があります。あなたの価値を上書きするロジックがあるかもしれません。

UsrUserRoleはSOOrderTypeの拡張機能ですか?その場合は、SOOrderType.UsrUserRoleではなくYourExtension.UsrUserRoleのように使用する必要があります。

+0

主な考え方は、Order Type画面で役割を設定するSOOrder Typeを選択したいと考えています。しかし今、それを選択することはできません。 – YSP

+0

編集した回答を確認 – Hybridzz

+0

OrderType画面のように、新しいフィールドを作成しましたが、テーブルに保存されましたがSOOrderTypeに定義されていないので、エラーが発生しています:タイプ名 'UsrUserRole'がタイプ 'PX .Object.SSOrderType '。 – YSP

関連する問題