如何在axapta 3.0报告中使用display方法作为范围

时间:2011-06-03 16:00:28

标签: dynamic axapta ax

我只是想知道是否有人可以帮助我。我正在设计Axapta 3.0的报告并面临一个问题。我在InventTable中有一个显示方法,它返回现有库存数量。我在报告中使用它来显示物品的数量尚未售出。现在我想将此方法添加为范围,因此只有项目的数量超过5才能显示。

我将非常感谢您的帮助。

此致

2 个答案:

答案 0 :(得分:1)

据我所知,你不能使用方法作为范围。

Range是数据库端逻辑。 Axapta核心将所有范围转换为有效的SQL并将其传输到数据库服务器。

表方法是AOS(或客户端)逻辑。它适用于AOS或客户端。它无法转换为SQL并转移到数据库服务器。

但您可以从数据库服务器获取所有记录,并在报告代码中的AOS(或客户端)上过滤它们。只需覆盖报表上的fetch()或send()方法即可。

Here你可以找到这个例子。

答案 1 :(得分:0)

另一种不需要覆盖fetch方法的解决方法。您可以尝试覆盖executeSection方法(例如 \Reports\YourReport\Designs\ReportDesign1\AutoDesignSpecs\Body:YourReportBody\Methods\executeSection}以下列方式:

public void executeSection()
{
    InventQty qty = yourMethodToCalculateQty();
    ;

    if (qty > 5)
    {
        super();
    }
}

如果数量不大于5,则会跳过该行。