VendTransOpen 迭代

Iteration over VendTransOpen

这发生在应付帐款 -> 日记帐 -> 付款 -> 付款日记帐中。

我选择查看日记帐的行和来自 select 结算的功能。我不确定这是否对其他人都一样。

因此,当单击“结算”时,VendOpenTrans 将打开。我需要对其进行迭代,并根据之前 selected LedgerJournalTrans 字段的发票标记记录。

首先,我必须检查我无法完成的 VendOpenTrans 字段。

我在 VendTransOpen 的 init 中添加了以下代码:

VendTrans vt; 

vt = vendTransOpen_ds.getFirst(true) as VendTrans ;


while (vt)
{           
    //Do your thing
    vt= vendTransOpen_ds.getNext() as VendTrans ;
}

vendTransOpen_ds..

中似乎没有任何元素

有人可以给我一些提示吗?

更新 1:

找到这个:

Understanding the Settlement Mechanism in Microsoft Dynamics AX

Automatic mark a Settlement Transactions on a Payment Journal in AX 2012

没想到这么难..明天开始挖

首先,在使用 getNext() 之前使用 getFirst(0)。 零表示您想要所有记录而不是标记。

搜索,使用交叉引用工具,或google获取大量使用这些功能的参考。

有几处不对,但我的 #2 可能是您的主要问题。

  1. 如果将此代码放在 init 方法中,则查询尚未执行,因此不会有任何内容。参见 https://msdn.microsoft.com/en-us/library/aa608211.aspx

  2. 您的代码永远不会输入 while (vt) 因为 vt 永远不会有写入的值 因为 VendTransVendTransOpen两个不同的 tables 不支持继承。

    vt = vendTransOpen_ds.getFirst(true) as VendTrans ; 没有抛出错误的唯一原因是因为 FormDataSource.getFirst()/getNext() returns 一个 Common table 记录。

  3. Jan 也说过。