отметить определенный набор данных в отфильтрованной сетке - PullRequest
1 голос
/ 21 октября 2010

Я просто пытаюсь справиться со следующей ситуацией - есть источник данных, добавленный в сетку в axapta 2009, отфильтрованный диапазоном запроса.

Я хочу пометить определенный набор данных с помощью x ++ с помощью

datasource_DS.findrecord( specificRecord )

это работает, как задумано, удаляя фильтр, но не имея активного фильтра!Обходной путь для удаления фильтра и добавления всего (фильтрованного!) во временную таблицу первым - это не то, что я хочу.

Я не могу представить, что нет способа решить эту задачу ?!заранее спасибо!

edit:

источники данных в форме: - 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 );

, информационная функция показываетправильный JobId.если я уберу фильтр, findRecord() выберет набор данных, если нет - нет.добавление DS.research( true ); не меняет этого поведения.

1 Ответ

0 голосов
/ 21 октября 2010

Ваша цель - перерисовать сетку и сохранить любую фильтрацию.

В AX 2009 это просто:

datasource_DS.research(true);

В AX 4.0 и более ранних версиях вы можете исследовать, а затем перефразировать:

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

Иногда это может быть медленным, если в сетке много записей.

...