将LedgerTrans.DocumentNum字段添加到BankAccountStatment报告中

时间:2011-02-22 12:00:52

标签: axapta microsoft-dynamics ax

我想将LedgerTrans.DocumentNum字段添加到BankAccountStatment报告

BankAccountStatment报告有一个数据源“BankAccountTable”

我该怎么做呢?

注意:LedgerTrans.DocumentNum可以通过BankAccoutTrans.AccountId = BankAccountTable.AccountId到达LedgerTrans.voucher = BankAccountTrans.Voucher

2 个答案:

答案 0 :(得分:0)

您可以尝试在LedgerTrans ledgerTrans;中声明classDeclaration并在调用fetch之前在报告的element.send(bankAccountTrans)方法中添加以下代码:

select firstonly ledgerTrans
    where ledgerTrans.TransDate     == bankAccountTrans.TransDate
       && ledgerTrans.Voucher       == bankAccountTrans.Voucher
       && ledgerTrans.DocumentNum   != "";

之后,您只需要在ReportDesign\AutoDesignSpecs\Body:_2部分添加一个新的显示字段,其中包含以下代码:

//BP Deviation Documented
display DocumentNum documentNum()
{
    return ledgerTrans.DocumentNum;
}

我没试过,但它应该有效。作为替代方案,您可以在fetch方法中声明ledgerTrans,在选择ledgerTrans后添加element.send(ledgerTrans),并在上述部分String = LedgerTrans中添加标准Table字段, DataField = DocumentNum。然后不需要显示方法。

P.S。我假设您使用的是AX 2009,但对于其他版本的AX,逻辑仍然相同。

答案 1 :(得分:0)

这很简单:

display DocumentNum documentNum()
{
     return (select firstonly DocumentNum from ledgerTrans
         where ledgerTrans.TransDate     == bankAccountTrans.TransDate
            && ledgerTrans.Voucher       == bankAccountTrans.Voucher
            && ledgerTrans.DocumentNum   != "").DocumentNum;
}

将方法拖动到所需的打印位置。