Текущий архив: 2008.01.27;
Скачать: CL | DM;
Вниз
Сортировка в DBGrid Найти похожие ветки
← →
Mery (2007-09-18 08:23) [0]Как вы решаете вопрос с сортировкой данных в dbgrid?
Подскажите, как по щелчку на заголовке столбца настроить сотрировку вверх-вниз? Если по запросу используя order by,то это требует переоткрытие данных.
И как задать программе по какому столбцу идёт сортировка, чтобы это было универсально для любого столбца?
← →
r9000 (2007-09-18 08:51) [1]На форме расположены TQuery, TDatasource и TDbGrid связанные вместе.
QuerySQL, это глобальная строка, которая содержит SQL-выражение.
begin
QuerySQL := "SELECT * FROM Customer.DB";
Query1.SQL.Add(QuerySQL);
Query1.Open;
end;
В DBGrid в событии OnTitleClick, достаточно добавить ORDER-BY к sql-строке и обновить запрос.
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
begin
witzh Query1 do
begin
DisableControls;
Close;
SQL.Clear;
SQL.Add(QuerySQL);
SQL.Add("ORDER BY " + Column.FieldName);
Open;
// Восстанавливаем настройки заголовка, иначе всё станет синим
DBGrid1.Columns.RestoreDefaults;
Column.Title.Font.Color := clBlue;
EnableControls;
end;
end;
← →
MsGuns © (2007-09-18 09:14) [2]>r9000 (18.09.07 08:51) [1]
>QuerySQL, это глобальная строка, которая содержит SQL-выражение.
Слово "глобальная" абсолютно лишнее
← →
Anatoly Podgoretsky © (2007-09-18 09:23) [3]И вредное
← →
Mery (2007-09-18 09:32) [4]Спасибо.
Нашла компоненты Ehlib, где DBGrid мертва по сравнению с DBGridEh.
← →
Виталий Панасенко(дом) (2007-09-18 10:23) [5]
> Mery (18.09.07 09:32) [4]
>
> Спасибо.
> Нашла компоненты Ehlib, где DBGrid мертва по сравнению с
> DBGridEh.
Они то же переоткрывают НД
{*******************************************************}
{ Add this unit to "uses" clause of any unit of your }
{ project to allow TDBGridEh to sort data in }
{ TQuery automatically after sorting markers }
{ will be changed. }
{ TSQLDatasetFeaturesEh will try to find line in }
{ TQuery.SQL string that begin from "ORDER BY" phrase }
{ and replace line by "ORDER BY FieldNo1 [DESC],...." }
{ using SortMarkedColumns. }
{*******************************************************}
← →
Плохиш © (2007-09-18 11:24) [6]
> r9000 (18.09.07 08:51) [1]
>
> begin
> QuerySQL := "SELECT * FROM Customer.DB";
> Query1.SQL.Add(QuerySQL);
> Query1.Open;
> end;
Глюкодром в действии...
Страницы: 1 вся ветка
Текущий архив: 2008.01.27;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.017 c