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

发布于 2024-11-13 09:46:31 字数 176 浏览 2 评论 0原文

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

我将不胜感激任何有关此事的帮助。

问候,

I am just wondering if someone could help me please. I am designing a report in Axapta 3.0 and facing a issue. I have got a display method in InventTable which is returning the ON-Hand stock quantity. I am using this in a report to show the quantity of item has not been sold. Now i want to add this method as a range so only the item has quantity more then 5 on hand should be displayed.

I will appreciate any help regarding this.

Regards,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

南街九尾狐 2024-11-20 09:46:31

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

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

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

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

此处您可以找到该示例。

As I know you cannot use method as range.

Range is a database-side logic. Axapta core converts all ranges to valid SQL and transfer it to database server.

Table method is a AOS (or client) logic. It works on AOS or client. It cannot be converted to SQL and tranfered to database server.

But you can fetch all records from database server and filter them on AOS (or client) in your report code. Just override fetch() or send() method on your report to do it.

Here you can find the example.

老子叫无熙 2024-11-20 09:46:31

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

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

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

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

Another workaround that doesn't require overwriting the fetch method. You can try overwriting the executeSection method (e.g.
\Reports\YourReport\Designs\ReportDesign1\AutoDesignSpecs\Body:YourReportBody\Methods\executeSection) in the following way:

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

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

If the quantity is not greater than 5 the line will be skipped.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文