Axapta 如何在采购登记报告中仅显示一个发票行的发票四舍五入金额?

Axapta 如何在采购登记报告中仅显示一个发票行的发票四舍五入金额?,axapta,dynamics-ax-2009,Axapta,Dynamics Ax 2009,在“采购登记”报告中,我将显示所有发票行 我已经包括了一个名为四舍五入(发票四舍五入金额)的栏目。此列基于显示方法。当前显示每个发票行的四舍五入金额: VocherId InvoiceID ItemCode Roundoff TotValue VC-00001 INV-001 ITM-001 0.50 120.50 VC-00001 INV-001 ITM-002 0.50 146.00 VC-00001 INV-001

在“采购登记”报告中,我将显示所有发票行

我已经包括了一个名为四舍五入(发票四舍五入金额)的栏目。此列基于显示方法。当前显示每个发票行的四舍五入金额:

VocherId    InvoiceID  ItemCode  Roundoff TotValue 
VC-00001    INV-001    ITM-001   0.50     120.50 
VC-00001    INV-001    ITM-002   0.50     146.00 
VC-00001    INV-001    ITM-003   0.50     221.00 
VC-00002    INV-002    ITM-002   0.25     175.75 
VC-00002    INV-002    ITM-003   0.25     167.00 
但它只应显示在发票行之一,如:

VocherId   Invoice ID  ItemCode Roundoff TotValue
VC-00001   INV-001     ITM-001  0.50     120.50
VC-00001   INV-001     ITM-002  0.00     146.00
VC-00001   INV-001     ITM-003  0.00     221.00
VC-00002   INV-002     ITM-002  0.25     175.75
VC-00002   INV-002     ITM-003  0.00     167.00

如何实现这一点?

将变量添加到报表的
类声明中

real roundOff; 
VendInvoiceAccount currentInvoiceId;
将显示方法添加到舍入列所在的部分:

display real getRoundOff()
{
    return roundOff;
}
将字段的
DataMethod
属性设置为
getRoundOff

并覆盖此节的执行部分:

public void executeSection()
{
    if (purchLine.InvoiceAccount == currentInvoiceId) 
    {
        roundOff = 0;
    }
    else
    {
        roundOff = purchLine.RoundOff;
        currentInvoiceId == purchLine.InvoiceAccount;
    }
    super();

}

我想显示一个随机行的值,并为同一invoiceId的其余行显示零。我编辑了答案,以便只有第一行显示舍入。请注意,
purchLine.InvoiceAccount
不存在。使用相应的字段。我不明白为什么你需要一个随机的行来显示一个四舍五入的数量?