0

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

我选择查看日记帐的行并从功能中选择结算。我不确定这对其他人是否一样。

因此,当单击结算时,VendOpenTrans 会打开。我需要对其进行迭代,并根据之前选择的 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:

发现这个:

了解 Microsoft Dynamics AX 中的结算机制

在 AX 2012 中的付款日记帐上自动标记结算交易

我没想到会这么难……我明天就开始挖。

4

2 回答 2

2

有几件事是错误的,但可能我的#2是你的主要问题。

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

  2. 您的代码永远不会进入while (vt),因为vt永远不会有写入的值,因为VendTrans并且VendTransOpen两个不支持继承的不同表。

    vt = vendTransOpen_ds.getFirst(true) as VendTrans ;不抛出错误的唯一原因是因为FormDataSource.getFirst()/getNext()返回了一个Common表记录。

  3. 简也说了什么。

于 2015-12-16T23:20:58.247 回答
1

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

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

于 2015-12-16T22:38:38.897 回答