Dynamics AX:如何过滤报告?

时间:2012-03-21 11:41:07

标签: axapta dynamics-ax-2009

我需要在Dynamics AX 2009中为报表添加过滤器.Msdn告诉我使用 Fetch 事件进行过滤。所以我在fetch中添加了以下代码。

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是否正确?

由于

1 个答案:

答案 0 :(得分:3)

不,不是。如果要排除您的第一条记录,fetch方法将返回false,而不会发送任何记录,也不会打印任何记录。

您可以在send方法中返回false。这有效,但出于性能原因,这是一个糟糕的选择。

正确的方法是将日期范围添加为查询范围:

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

我还没有测试过代码。