Axapta Dynamics AX:如何筛选报告?

Axapta Dynamics AX:如何筛选报告?,axapta,dynamics-ax-2009,Axapta,Dynamics Ax 2009,我需要在Dynamics AX 2009中向报表添加筛选器。Msdn告诉我使用Fetch事件进行筛选。因此,我在fetch中添加了以下代码 DateFromDialog和DateToDialog是在类声明中声明的变量 qrun = new QueryRun(element); _vendInvoiceJour = qrun.get(TableNum(VendInvoiceJour)); if( _vendInvoiceJour.InvoiceDate <

我需要在Dynamics AX 2009中向报表添加筛选器。Msdn告诉我使用Fetch事件进行筛选。因此,我在fetch中添加了以下代码

DateFromDialog和DateToDialog是在类声明中声明的变量

      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;
      }
qrun=新的QueryRun(元素);
_vendInvoiceJour=qrun.get(TableNum(vendInvoiceJour));
如果(_vendInvoiceJour.InvoiceDate=DateToDialog.value()){
//排除记录,不要打印它
返回false;
}
如果记录不能打印,返回false是否正确


谢谢

不,不是。如果要排除第一条记录,则
fetch
方法返回false而不发送单个记录,并且不打印任何内容

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

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

SysQuery::findOrAddRange(element.queryrun().query().findDatasource(tableNum(VendInvoiceJour), fieldNum(VendInvoiceJour,InvoiceDate)).value(queryRange(DateFromDialog.value(), DateToDialog.value()));
我还没有测试代码