Я новичок в Delphi, и мне нужен совет.Delphi7 TMS TDBAdvGrid Сортировка данных при щелчке заголовка столбца
Я использую TMS TDBAdvGrid, и мне нужно сортировать данные, когда пользователь нажимает на заголовок столбца. Я настраиваю параметры сортировки сетки и пишу код для события onclicksort, но он не работает.
Параметры сортировки сетки:
SortSettings.Show = True;
SortSettings.IgnoreBlanks = True;
SortSettings.BlankPos = blLast;
onclicksort событие:
try
try
if FSortISWorking then
Exit;
FSortISWorking := true;
if ACol < 0 then
begin
grid.BeginUpdate;
grid.SortSettings.Column := ACol;
Application.ProcessMessages;
grid.QSort;
grid.EndUpdate;
end;
except on e: Exception do
begin
// log the error
end;
end;
finally
FSortISWorking := false;
end;
Сетка не связана непосредственно с базой данных. Данные загружаются в память (TClientDataSet), и мне нужно сортировать данные только в памяти, без запроса в базу данных.
Спасибо
Спасибо. Это решение сработало. Единственная проблема заключается в том, что когда свойство является ложным, соединение с данным набором данных закрывается. – Andrei
Заглядывая в документацию TMS, похоже, у вас не может быть обоих. Либо PageMode = True для редактирования данных, либо PageMode = False для сортировки. Вы можете найти более подробную информацию об этом в «TMS TDBAdvGrid.pdf», просто найдите «PageMode». Я также боролся с этим в прошлом и должен был пойти на решение Radu - сортировка данных на уровне базы данных, чтобы данные были доступны для редактирования: - / –