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()));
我没有测试的代码。
你是解决方案永远是正确的! – stighy 2012-03-21 16:48:03