在过滤网格中标记特定数据集

时间:2010-10-21 08:30:29

标签: select filter grid axapta

我正在努力解决以下问题 - 在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 );不会改变此行为。

1 个答案:

答案 0 :(得分:0)

您的目标是重绘网格并保留任何过滤。

在AX 2009中很容易:

datasource_DS.research(true);

在AX 4.0和之前的版本中,您可以进行研究,然后再进行修改:

specificRecord = datasource.data();
datasource_DS.research();
datasource_DS.findRecord(specificRecord) 

如果网格中有很多记录,这有时会很慢。