根据@me过滤

时间:2016-06-17 18:31:30

标签: acumatica

我创建了一个自定义屏幕,记录了一个链接回Salespersons记录的“SalesPerson”ID。

其中一个要求是创建一个查询屏幕(非通用查询),该屏幕具有针对当前销售人员的过滤器(基于登录用户)。过滤器应为“所有记录”/“我的项目”,第二个是默认显示(基于记录的“销售人员”)

为此,PXSelect语句链接{customtable} - > {employee}(其中salesperson record = employee.salesperson

我甚至将其扩展为链接employee.userId - > users.pKid。

实际的选择语句如下:

    public PXSelectJoin<CWAItem,
    LeftJoin<EPEmployee,On<CWAItem.salesPersonID,Equal<EPEmployee.salesPersonID>>,
    LeftJoin<Users, On<Users.pKID,Equal<EPEmployee.userID>>>>> MobileOrders;

这两个都正确显示网格中的用户名,但是当我创建一个过滤器,其中EPEmployee__UserID = @me或Users.UserName = @me时,不返回任何记录。

扫描系统时,这似乎用于具有模拟滤镜的“WZ201500”屏幕。我看到的区别是这是基于表定义引用“EPEmployee_UserId”。

使用子DAC和@me是否存在限制,或者是否有不同的方法来处理连接,以便@me正常工作?

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:0)

没有使用@me我不确定这是什么意思,但我们根据当前用户ID使用类似的访问信息做了类似的限制记录:

Where<EPEmployee.userID, Equal<Current<AccessInfo.userID>>

希望有所帮助

答案 1 :(得分:0)

只需使用表AccessInfo,然后过滤器的默认值就等于AccessInfo.UserID到您需要的任何表字段,例如CreatedByID或ModifiedByID