Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Axapta/Dynamics Ax中对链接表进行筛选_Axapta - Fatal编程技术网

在Axapta/Dynamics Ax中对链接表进行筛选

在Axapta/Dynamics Ax中对链接表进行筛选,axapta,Axapta,我在Axapta/Dynamics Ax(EmplTable)中有一个表单,它有两个数据源(EmplTable和HRMVirtualNetworkTable),其中第二个数据源(HRMVirtualNetworkTable)链接到具有“延迟”链接类型的第一个on 有没有一种方法可以基于第二个数据源在记录上设置一个过滤器,而不必将链接类型更改为“InnerJoin”您可以通过加入QueryBuildDataSource或通过扩展过滤器(Alt+F3,右键单击datasorce,1:n并查找七个辅助

我在Axapta/Dynamics Ax(EmplTable)中有一个表单,它有两个数据源(EmplTable和HRMVirtualNetworkTable),其中第二个数据源(HRMVirtualNetworkTable)链接到具有“延迟”链接类型的第一个on


有没有一种方法可以基于第二个数据源在记录上设置一个过滤器,而不必将链接类型更改为“InnerJoin”

您可以通过加入QueryBuildDataSource或通过扩展过滤器(Alt+F3,右键单击datasorce,1:n并查找七个辅助DS)来编程设置过滤器。

您可以使用“外部连接”而不是“延迟连接”然后,在HRMVirtualNetworkTable上搜索字段时,通过编程更改联接模式

将此方法添加到SysQuery类:

static void updateJoinMode(QueryBuildDataSource qds)
{
    Counter r;
    if (qds)
    {
        qds.joinMode(JoinMode::OuterJoin);
        for (r = 1; r <= qds.rangeCount(); r++)
        {
            if (qds.range(r).value() && qds.range(r).status() == RangeStatus::Open)
            {
                qds.joinMode(JoinMode::InnerJoin);
                break;
            }
        }
    }
}
有时,this.queryRun()返回null,因此请改用this.query()

更新:

请注意,上述内容与AX 2012及更高版本无关,您可以在外部联接中使用查询筛选器。看

public void executeQuery()
{;
    SysQuery::updateJoinMode(this.queryRun() ? this.queryRun().query().dataSourceTable(tableNum(HRMVirtualNetworkTable)) : this.query().dataSourceTable(tableNum(HRMVirtualNetworkTable)));    
    super();
}