2012-03-21 14 views
2

Dynamics AX 2009のレポートにフィルタを追加する必要があります。を使用してフィルタリングするように指示します。イベントを取得します。だから私はフェッチに次のコードを追加しました。Dynamics AX:レポートをフィルタリングする方法は?

DateFromDialogとDateToDialogは、ClassDeclarationに宣言された変数です。

 qrun = new QueryRun(element); 
     _vendInvoiceJour = qrun.get(TableNum(VendInvoiceJour)); 
     if(_vendInvoiceJour.InvoiceDate <= DateFromDialog.value() || _vendInvoiceJour.InvoiceDate >=DateToDialog.value()) { 
      // Exclude record, don't print it 
      return false; 
     } 

レコードが印刷されない場合はfalseを返すのが正しいですか?

ありがとうございました

答えて

3

いいえ、それはありません。最初のレコードを除外する場合、fetchメソッドは単一のレコードを送信せずにfalseを返し、何も出力されません。

sendメソッドでfalseを返すことができます。これは機能しますが、パフォーマンス上の理由から貧しい選択です。

正しい方法は、クエリの範囲として日付範囲を追加することです:

SysQuery::findOrAddRange(element.queryrun().query().findDatasource(tableNum(VendInvoiceJour), fieldNum(VendInvoiceJour,InvoiceDate)).value(queryRange(DateFromDialog.value(), DateToDialog.value())); 

私は、コードをテストしていません。

+0

あなたは解決策が常に正しいです! – stighy

関連する問題