Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/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
Axapta 使用X++;AX 2012 R2_Axapta_X++_Dynamics Ax 2012_Dynamics Ax 2012 R2 - Fatal编程技术网

Axapta 使用X++;AX 2012 R2

Axapta 使用X++;AX 2012 R2,axapta,x++,dynamics-ax-2012,dynamics-ax-2012-r2,Axapta,X++,Dynamics Ax 2012,Dynamics Ax 2012 R2,循环查看Ax 2012 R2中的记录(需要作业才能实现此目的) 我有一个viewA,其中有三个字段 目的地,来源,FieldX 我有一个表,其中有源代码的主列表 此表包含S1、S2 在每个S1的视图中,我需要找到最终的目标值 例子: 目标源类型 D1 S1 D2 D1 D2未找到任何记录 对上述示例的解释:我从主列表中获取S1,并将其放置在视图中的源字段中。 然后我读取该记录的目标值,即D1。现在,我将D1放置在源字段过滤器中 我找到了一条目标值为D2的记录。现在我拿了D2,我把 它在源字段过滤

循环查看Ax 2012 R2中的记录(需要作业才能实现此目的)

我有一个viewA,其中有三个字段 目的地,来源,FieldX

我有一个表,其中有源代码的主列表 此表包含S1、S2

在每个S1的视图中,我需要找到最终的目标值 例子: 目标源类型 D1 S1 D2 D1 D2未找到任何记录 对上述示例的解释:我从主列表中获取S1,并将其放置在视图中的源字段中。 然后我读取该记录的目标值,即D1。现在,我将D1放置在源字段过滤器中 我找到了一条目标值为D2的记录。现在我拿了D2,我把 它在源字段过滤器中,我没有找到记录。我在这里停止循环,我 保存D2值

对于S1,最终目标值为D2

例2:

目标源类型 da s2 db da 直流分贝 dc未找到任何记录

对于S2,最终目标值为Dc

我不确定我应该如何在视图中循环S1以找到D2。 我必须对所有S1、s2……Sn逐一执行此过程

我尝试了一些使用while/for或其他循环的方法,但没有成功。 有人能帮我提供一个基本代码来实现这一点吗?

如何确定“最终目的地值”?您使用什么逻辑来确定某个值是否为“最终目标值”?它是复杂的逻辑还是仅仅是该源的最大值?您是否可以将视图连接到表,并在视图上使用maxOf(Destination),在源字段上使用groupby

假设这不是一个复杂的逻辑,类似这样的事情是可能的:

ViewA viewA;
Table table;

while select maxOf(Destination) from viewA
    group by viewA.Source
    join table
        where viewA.Source == table.Source

info(strFmt("%1", ViewA.Destination));

这是StackOverflow…添加一些您尝试过的代码。在AOT中搜索AX如何使用一些基本示例的视图。显示您的尝试后,编辑问题并使用您的场景创建示例表,并说明所需的输出。当使用目标值在视图中循环时,我们会在源字段中保留目标值,并且不会有任何记录。然后我们将其视为最终目的地。例如:查看DestialStfield SooCieldRead其他字段MA1 M12 AAA SA1 MA1 BBB M1 M22 CCC SB1 Mb1 DDD CD1 SB1 EE如果您只考虑以上记录存在于视图中,表M12和M22中有两个值。所以我把M12放在源代码的搜索过滤器中,然后我找到了AAA记录。然后我把MA1放在源的搜索过滤器中,我找到了记录BBB,然后我把SA1放在源的搜索过滤器中,我没有找到任何记录。所以M12的最终目的地是SA1。M22记录的过程相同。m22记录的最终目的地是cd1。我不确定我是否完全理解您的意思,但我相信如果您不能将逻辑放入select/query语句中,您可能别无选择,只能在循环中使用一个循环来遍历视图中的所有记录,并与表中的所有记录进行比较。如果没有匹配的记录,您将需要外部循环中的逻辑来满足您所说的没有任何记录的条件。这是不可能的。我认为您没有正确地设计解决方案,尽管我认为您可能正在使用噩梦数据集。你需要准确地解释你想要完成的是什么,你遇到的一个或多个条件会让你“回到上一个选择”,以及你知道“上一个选择”是你想要操作的“选择”的条件。这听起来像是递归的一个很好的用例。我将递归地查找具有peggingId的最后一个级别。您已经有了获取下一个级别的视图,因此如果视图返回的下一个级别为空,您就知道您已经到达了末尾,可以返回挂起id。写入可能有点烦人,因为您可能需要检查每个订单类型,然后比较结果,但据我所知,这是我将追求的解决方案。