Как использовать метод отображения в качестве диапазона в отчете axapta 3.0 - PullRequest
0 голосов
/ 03 июня 2011

Мне просто интересно, может ли кто-нибудь помочь мне, пожалуйста. Я разрабатываю отчет в Axapta 3.0 и сталкиваюсь с проблемой. У меня есть метод отображения в InventTable, который возвращает количество на складе. Я использую это в отчете, чтобы показать, что количество товара не было продано. Теперь я хочу добавить этот метод в качестве диапазона, поэтому должен отображаться только элемент с количеством больше 5.

Буду признателен за любую помощь в этом.

С уважением,

Ответы [ 2 ]

1 голос
/ 03 июня 2011

Как я знаю, вы не можете использовать метод в качестве диапазона.

Диапазон - это логика на стороне базы данных.Ядро Axapta преобразует все диапазоны в действительный SQL и передает его на сервер базы данных.

Табличный метод - это логика AOS (или клиента).Работает на AOS или клиенте.Его нельзя преобразовать в SQL и перенести на сервер базы данных.

Но вы можете извлечь все записи с сервера базы данных и отфильтровать их на AOS (или клиенте) в своем коде отчета.Для этого просто переопределите метод fetch () или send () в своем отчете.

Здесь , вы можете найти пример.

0 голосов
/ 07 июня 2011

Другой обходной путь, который не требует перезаписи метода fetch. Вы можете попробовать переписать метод executeSection (например, \Reports\YourReport\Designs\ReportDesign1\AutoDesignSpecs\Body:YourReportBody\Methods\executeSection) следующим образом:

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

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

Если количество не превышает 5, строка будет пропущена.

...