Dynamics AX: как отфильтровать отчет? - PullRequest
2 голосов
/ 21 марта 2012

Мне нужно добавить фильтр в отчет в Dynamics AX 2009. Msdn скажите мне, чтобы фильтровать, используя событие 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 Ответ

3 голосов
/ 21 марта 2012

Нет, это не так. Если ваша первая запись должна быть исключена, метод fetch возвращает false, не отправляя ни одной записи, и ничего не печатается.

Вы можете вернуть false в методе send. Это работает, но плохой выбор по соображениям производительности.

Правильный способ - добавить диапазон дат в качестве диапазона запроса:

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

Я не проверял код.

...