Как сохранить позицию курсора во время обновления формы в AX4, AX 2009 или AX 2012
На днях возник вопрос как сохранить позицию курсора в гриде на форме во время обновления формы, после вызова метода datasource_ds.research(). Сделать это можно легко с помощью следующего кода. Есть два варианта решения этой задачи, я обычно использую второй:
Вариант 1
void refreshDataSource()
{
int recordPosition;
;
recordPosition = FormDataSourceName_ds.getposition();
FormDataSourceName_ds.research(true);
FormDataSourceName_ds.refresh();
FormDataSourceName_ds.setposition(recordPosition);
}
Вариант 2
void refreshDataSource()
{
TableName tableNameLocal;
;
tableNameLocal = FormDataSourceName_ds.cursor();
// Или вот так еще можно найти выделенную строку (на которой у нас курсор)
tableNameLocal = TableName::find(FormDataSourceName.RecId);
FormDataSourceName_ds.research();
FormDataSourceName_ds.refresh();
FormDataSourceName_ds.findRecord(tableNameLocal);
}
Один из этих вариантов точно должен будет сработать.
Наиболее обсуждаемые: