Dynamics AX:如何过滤报告?

问题描述:

我需要在Dynamics AX 2009中为报表添加过滤器。Msdn告诉我使用获取事件进行过滤。所以我将下面的代码添加到获取中。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是否正确?

谢谢

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

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

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

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

我没有测试的代码。

+0

你是解决方案永远是正确的! – stighy 2012-03-21 16:48:03