我只是想知道是否有人可以帮助我。我正在 Axapta 3.0 中设计报告并遇到问题。我在 InventTable 中有一个显示方法,它返回现有库存数量。我在报告中使用它来显示尚未售出的物品数量。现在我想将此方法添加为一个范围,因此只有该项目的数量超过手头的 5 个才应该显示。
我将不胜感激有关此的任何帮助。
问候,
据我所知,您不能将方法用作范围。
Range 是数据库端的逻辑。Axapta 核心将所有范围转换为有效的 SQL 并将其传输到数据库服务器。
表方法是一种 AOS(或客户端)逻辑。它适用于 AOS 或客户端。它无法转换为 SQL 并传输到数据库服务器。
但是您可以从数据库服务器获取所有记录并在报告代码中的 AOS(或客户端)上过滤它们。只需覆盖报表上的 fetch() 或 send() 方法即可。
在这里您可以找到示例。
另一种不需要覆盖该方法的解决fetch
方法。您可以尝试通过以下方式覆盖executeSection
方法(例如
):\Reports\YourReport\Designs\ReportDesign1\AutoDesignSpecs\Body:YourReportBody\Methods\executeSection
public void executeSection()
{
InventQty qty = yourMethodToCalculateQty();
;
if (qty > 5)
{
super();
}
}
如果数量不大于 5,则将跳过该行。