【问题标题】:error CS0426: The type name 'UsrUserRole' does not exist in the type 'PX.Objects.SO.SOOrderType'错误 CS0426:类型名称“UsrUserRole”在类型“PX.Objects.SO.SOOrderType”中不存在
【发布时间】:2016-07-14 12:32:10
【问题描述】:

我想通过当前用户登录和角色用户在 SOOrder 屏幕上设置默认 OrderType。因此,我在屏幕 Order Type:SO201000 上创建了新字段,用于选择角色名称。例如:OrderType: C1 for userRole: 001A and OrderType: C2 for userRole: 001D.

屏幕上的 OrderType:SO201000 和 UsrUserRole(新字段)

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

屏幕上 SOOrder: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)] 

默认订单类型(自定义现有字段)

 [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)]

【问题讨论】:

  • 还不够清楚吗?

标签: customization acumatica


【解决方案1】:

当您编写搜索时,您正在编写它以获取您想要的字段。在这种情况下,您需要 SOOrderType.orderType 的值。

如果您确定 PXDefault 属性中的 Search 是正确的,您可能需要检查 Acumatica 屏幕的逻辑它是如何分配值的。可能有一些逻辑会覆盖您的值。

UsrUserRole 是否在 SOOrderType 的扩展中?如果那么你应该像 YourExtension.UsrUserRole 而不是 SOOrderType.UsrUserRole 那样使用它

【讨论】:

  • 主要思想,我想选择为订单类型屏幕中的角色设置的 SOOrder 类型。但现在无法选择它。
  • 似乎在 OrderType 屏幕上我刚刚创建了新字段,它保存到表中,但它没有在 SOOrderType 中定义,所以这就是它出现错误的原因:类型名称“UsrUserRole”在类型中不存在'PX.Objects.SO.SOOrderType'。
  • UsrUserRole 是否在 SOOrderType 的扩展中?如果那么你应该像 YourExtension.UsrUserRole 一样使用它而不是 SOOrderType.UsrUserRole
  • 我真的不知道为什么 SOOrderType 没有 UsrUserRole,因为我已经在 OrderType 屏幕中添加了它。
  • 我像你告诉我的那样改变了 MyExtension.UsrUserRole 所以它起作用了!谢谢。
猜你喜欢
  • 2020-03-05
  • 1970-01-01
  • 1970-01-01
  • 2022-01-10
  • 2021-03-26
  • 2013-08-05
  • 1970-01-01
  • 1970-01-01
  • 2020-03-31
相关资源
最近更新 更多