在费用索赔中过滤RefNbr PXSelector

时间:2016-08-24 15:47:23

标签: acumatica

我需要自定义费用索赔屏幕(EP301000)以执行以下操作:

  • 将用户字段添加为标题部分(完成)的复选框
  • 使用该复选框值过滤RefNbr PXSelector查找,仅显示“声明的”字段中显示的员工ID的结果。

看看DAC的RefNbr,我没有看到任何我常常看到的正常PXSelector查找。

有办法做到这一点吗?

1 个答案:

答案 0 :(得分:0)

您可以看到DACField正在使用属性 [EPExpenceClaimSelector]

其定义如下

public class EPExpenceClaimSelectorAttribute : PXSelectorAttribute
    {
        public EPExpenceClaimSelectorAttribute()
            : base(typeof(Search2<EPExpenseClaim.refNbr,
                    InnerJoin<EPEmployee, On<EPEmployee.bAccountID, Equal<EPExpenseClaim.employeeID>>>,
                    Where<EPExpenseClaim.createdByID, Equal<Current<AccessInfo.userID>>,
                         Or<EPEmployee.userID, Equal<Current<AccessInfo.userID>>, 
                         Or<EPEmployee.userID, OwnedUser<Current<AccessInfo.userID>>,
                         Or<EPExpenseClaim.noteID, Approver<Current<AccessInfo.userID>>,
                         Or<EPExpenseClaim.employeeID, WingmanUser<Current<AccessInfo.userID>>>>>>>, OrderBy<Desc<EPExpenseClaim.refNbr>>>)
                , typeof(EPExpenseClaim.docDate)
                , typeof(EPExpenseClaim.refNbr)
                , typeof(EPExpenseClaim.status)
                , typeof(EPExpenseClaim.docDesc)
                , typeof(EPExpenseClaim.curyDocBal)
                , typeof(EPExpenseClaim.curyID)
                , typeof(EPEmployee.acctName)
                , typeof(EPExpenseClaim.departmentID)
                )
        {
        }
    }

您可以使用相同的方法创建具有附加条件的属性,并在缓存附加方法中使用它来替换默认选择器。