Sortowanie w DBGrid po naciśnięciu na nagłówek kolumny

0

W jaki sposób zrobić aby po naciśnięciu na nagłówek kolumny w DBGrid kolumna sortowała się alfabetycznie??</delphi>

0

Ok dzięki, ale czy ktoś może mi podać formułę zapytania, które będzie obsługiwało zdarzenie OnClickTitle

0
SELECT Percent title_id, price, type 
FROM titles
<b>ORDER BY</b> price <b>DESC</b>
0

Pewnie moje pytanie jest trywialne, ale czy podany text należy wpisać do procedury zdarzenia OnTitleClick???
Bo jeżeli tak to u mnie nie działa, albo robię coś źle javascript:append_smile(':(')
javascript:append_smile(':(')

0

Zapytanie wpisujesz w komponencie typu Query obsługującym bazę danych np InterBase obłyżyć należy za pomocą komponentu IBQuery

np tak

IBQuery.Close;
IBQuery.SQL.Clear;
IBQuery.SQL.Add(zapytanie);
IBQuery.Open;

gdzie zapytanie to Twoje "Select..... "

0

Mam na formularzu: DBGrid, Table, DataSource i Query.

We własności SQL dla Query wpisalem:
SELECT Numer, Nazwa, Adres FROM tblOrder ORDER BY Nazwa DESC

Dla wydarzenia OnTitleClick dla DBGrid wpisałem:
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT Numer, Nazwa, Adres FROM tabela ORDER BY Nazwa DESC');
Query1.Open;

Program się uruchamia, nie ma błędów, ale po naciśnięciu na nagłówek kolumny nic się nie dzieje.

Co robię niewłaściwie?

0

U mnie to samo, ale walcze

0
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
var
     atrybut, wartosc: string;
begin
     atrybut:=Column.Title.Caption;
     if atrybut='ID' then wartosc:='NR_ID';
     if atrybut='LP' then wartosc:='LP';
     if atrybut='IMIĘ' then wartosc:='IMIE';
     if atrybut='NAZWISKO' then wartosc:='NAZWISKO';
     if atrybut='DATA URODZENIA' then wartosc:='DATA_UR';
     if atrybut='ADRES' then wartosc:='ADRES';
     if atrybut='TELEFON' then wartosc:='TELEFON';

with IBQuery1, SQL do begin
    Close;
    Clear;
    Add('SELECT * FROM Book ORDER BY '+wartosc+';');
    Open;
end;  
end;

Wyrwane z mojego programu. Tylko przerób to na swoją bazę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1