誰かが私を助けてくれるかどうか疑問に思っています。Axapta 3.0 でレポートを設計していて、問題に直面しています。手持ちの在庫数量を返す InventTable に表示メソッドがあります。これをレポートで使用して、アイテムの数量が販売されていないことを示しています。今、私はこの方法を範囲として追加したいので、数量が5を超えるアイテムのみが表示されます。
これに関して何か助けていただければ幸いです。
よろしく、
私が知っているように、メソッドを範囲として使用することはできません。
範囲はデータベース側のロジックです。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 以下の場合、その行はスキップされます。