我正在努力解决以下问题 - 在axapta 2009中有一个数据源添加到网格中,由querybuildrange过滤。
我想通过x ++标记特定数据集
datasource_DS.findrecord( specificRecord )
这可以按预期工作,删除过滤器,但没有激活过滤器! 删除过滤器并将所有内容(已过滤!)添加到临时表中的解决方法首先不是我想要的。
我无法想象没有办法实现这个任务?! 提前谢谢!
编辑:
表单上的数据源: - ProdRouteJob(JoinSource:ProdTable,LinkType:InnerJoin) - ProdTable
只应在网格中显示包含指定ProdStatus的数据集。 这是通过上述范围完成的,例如:
prodStatusRange = prodTable_ds.query().dataSourceTable( tablenum( ProdTable )).addRange( fieldnum( ProdTable, ProdStatus ));
prodStatusRange.value( "(( ProdStatus == 0) || ( ProdStatus == 1 ))" );
选择指定的数据集由例如:
完成ProdRouteJob currentProdRouteJob;
;
currentProdRouteJob = ProdRouteJob::findJobId( "JOB_12345" );
info ( currentProdRouteJob.JobId );
prodRouteJob_DS.findRecord( currentProdRouteJob );
info-function显示正确的JobId。
如果我删除过滤器,findRecord()
选择数据集,如果不是 - 不是。
添加DS.research( true );
不会改变此行为。
答案 0 :(得分:0)
您的目标是重绘网格并保留任何过滤。
在AX 2009中很容易:
datasource_DS.research(true);
在AX 4.0和之前的版本中,您可以进行研究,然后再进行修改:
specificRecord = datasource.data();
datasource_DS.research();
datasource_DS.findRecord(specificRecord)
如果网格中有很多记录,这有时会很慢。