Axapta 将LedgerTrans.DocumentNum字段添加到BankAccountStation报告

Axapta 将LedgerTrans.DocumentNum字段添加到BankAccountStation报告,axapta,microsoft-dynamics,ax,Axapta,Microsoft Dynamics,Ax,我想将LedgerTrans.DocumentNum字段添加到BankAccountStation报告中 BankAccountStation报表具有数据源“BankAccountTable” 我该怎么做 注意:可以通过BankAccountTrans.AccountId=BankAccountTable.AccountId然后通过LedgertTrans.voucher=BankAccountTrans.voucher来访问LedgertTrans.DocumentNum您可以尝试声明Ledg

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

BankAccountStation报表具有数据源“BankAccountTable”

我该怎么做


注意:可以通过BankAccountTrans.AccountId=BankAccountTable.AccountId然后通过LedgertTrans.voucher=BankAccountTrans.voucher来访问LedgertTrans.DocumentNum

您可以尝试声明
LedgertTrans LedgertTransclassDeclaration
中添加code>,并在调用
元素之前在报表的
fetch
方法中添加以下代码。send(bankAccountTrans)

之后,只需在
ReportDesign\AutoDesignSpecs\Body:_2
部分中添加一个新的显示字段,并使用以下代码:

//BP Deviation Documented
display DocumentNum documentNum()
{
    return ledgerTrans.DocumentNum;
}
我没有试过,但它应该能起作用。或者,您可以在
fetch
方法中声明ledgerTrans,在选择ledgerTrans后添加
元素.send(ledgerTrans)
,并在上述部分中添加一个标准的
String
字段,
Table
=ledgerTrans,
DataField
=DocumentNum。那么就不需要显示方法了

另外,我假设您使用的是AX 2009,但对于其他版本的AX,逻辑保持不变。

这很简单:

display DocumentNum documentNum()
{
     return (select firstonly DocumentNum from ledgerTrans
         where ledgerTrans.TransDate     == bankAccountTrans.TransDate
            && ledgerTrans.Voucher       == bankAccountTrans.Voucher
            && ledgerTrans.DocumentNum   != "").DocumentNum;
}
将方法拖动到所需的打印位置

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