Автор: PowerChute
Дата сообщения: 24.03.2012 10:11
В чем проблема?
На событие OnSortMarkingChanged делаем:
r_Truck := SQL2Record_Truck (Q_Truck, oper_Select);
loc_Truck := r_Truck.Key; // запоминаем Key строки, чтобы маркер поставить туда-же после сортировки
pr_ReadSort; // строим строку ORDER BY в зависимости от нажатых заголовков
pr_AddSQL; // заново вызываем запрос
pr_ShowStatusBar; // обновляем статусбар
Всё.
-------------------------
procedure TForm_Truck.pr_ReadSort;
var i : Integer;
begin
sort_Truck := gc_NoChar;
for i := 0 to DBGrid.SortMarkedColumns.Count - 1 do
if DBGrid.SortMarkedColumns[i].Title.SortMarker = smUpEh then
sort_Truck := sort_Truck + DBGrid.SortMarkedColumns[i].FieldName + ' DESC , '
else
sort_Truck := sort_Truck + DBGrid.SortMarkedColumns[i].FieldName + ', ';
if sort_Truck <> gc_NoChar then sort_Truck := ' ORDER BY ' + Copy (sort_Truck, 1, Length (sort_Truck) - 2);
sort_Truck := fn_DeleteStrSort (sort_Truck, '1');
end;