我只是想知道是否有人可以帮助我。我正在设计Axapta 3.0的报告并面临一个问题。我在InventTable中有一个显示方法,它返回现有库存数量。我在报告中使用它来显示物品的数量尚未售出。现在我想将此方法添加为范围,因此只有项目的数量超过5才能显示。
我将非常感谢您的帮助。
此致
答案 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,则会跳过该行。