[delphi] jak posortowac odfiltrowane wyniki w dbgrid?

0

Zrobilem sortowanie po nacisnieciu na tytuly dbgrida. ale za kazdym razem sortuje mi od nowa zapytanie.
czyli jak np klikne kolumne o nazwie (NAME) to robei zapytanie i na koncui dodaje "ORDER BY name"
i znowu wysylam i zapytanie do bazy danych. A daloby sie jakos sortowac to co jest juz widoczne czyli jesli zastosuje filtr i wybiore nazwiska na litere "K" to zeby po sortowaniu wedlug PESELU,IMIE itd odbywalao sie bez wysylania zaapytania do bazy anych tylko sortowal to co widac i co zostalo ewentualnie przefiltrowane ?

0

poczytaj o TClientDataSet

0
SELECT * FROM Tabela WHERE Kolumna LIKE 'K%' ORDER BY Kolumna

To chcesz? :|

0
RedbaK napisał(a)
SELECT * FROM Tabela WHERE Kolumna LIKE 'K%' ORDER BY Kolumna

To chcesz? :|

A czytać ty umiesz???

odbywalao sie bez wysylania zaapytania do bazy danych tylko sortowal to co widac i co zostalo ewentualnie przefiltrowane

0

A czytać ty umiesz???

A w pychola byś tak nie chciał???

  (Column.Field.DataSet as TTable).IndexFieldNames:=Column.FieldName;
0

widzę, że dalej z czytaniem u ciebie ciężko ...

A jakbyś nie załapał to chodzi o query a nie o table

0

Ilość czasu i przelanego tekstu usprawiedliwiałaby już napisanie tych kilku słów które stanowiłyby odpowiedź, ale przecież nie taki jest cel, prawda?

0
Za Horyzontem napisał(a)

Ilość czasu i przelanego tekstu usprawiedliwiałaby już napisanie tych kilku słów które stanowiłyby odpowiedź, ale przecież nie taki jest cel, prawda?

a ten dalej swoje ...

widzisz, pomijając fakt, że to nie są 3 linijki kodu, jak pytacz poświęci tą godzinkę czy dwie i trochę poczyta o CDS, poogląda dema a potem sam to zaimplementuje to jutro nie przyleci z pytaniem jak zrobić sortowanie po np. dwóch polach tylko będzie wiedział. A jak dostanie gotowca to na 99% nawet się nie zastanowi tylko przeklei kod na chama co zaowocuje kolejnymi postami bo mu coś nie działa i kod jest be.

Widzę, że ty masz czas więc może byś poczytał za pytacza i sklecił mu gotowy przykład - na pewno się nie obrazi.

I odpowiadając na twoje następne pytanie - nie, nie mam gotowca, nie nie mam czasu ani chęci go pisać i tak, jestem pewien że to działa, powiem więcej działa całkiem przyzwoicie.

0

No i w tym się różnimy - jeśłi nie wiem, nie mam w tej chwili w pamięci gotowego rozwiązania, to nie odpowiadam w stylu 'poczytaj instrukcje', bo do tego Twoja odpowiedź się sprowadziła... Jeśli zaś mam gotowe rozwiązanie, albo w pamięci, albo 'gdzieś pod ręką w kodzie', to co za problem nim sie podzielić? Czy nie taki jest właśnie cel każdego forum?

OK, żeby zakończyć, odpowiem na pytanie konkretnie, zamiast sie wymądrzać...

masterO - nie wiem czego używasz do pobrania danych, ja korzystam z zeos i na tym przykładzie daje rozwiązanie:
Dla dbGrida w OnTitleClick dałem:
qZlecenie.SortedFields := column.FieldName;

qZlecenie to u mnie query...

0

Uzywam ZEOSA i wlasnie o takie rozwiazanie mi chodzilo. Dziekuje bardzo. Zgadzam sie ze zmiaats reszty powstow powyzej wystarczyl by ten jeden. Oczywiscie w 99% moze i sie ludzie nie zastanawaiaja, ale zawsze ejst ten 1% Misiekd.

Dziekuje za pomoc.

0
masterO napisał(a)

Uzywam ZEOSA i wlasnie o takie rozwiazanie mi chodzilo. Dziekuje bardzo. Zgadzam sie ze zmiaats reszty powstow powyzej wystarczyl by ten jeden. Oczywiscie w 99% moze i sie ludzie nie zastanawaiaja, ale zawsze ejst ten 1% Misiekd.

Dziekuje za pomoc.

byłby jeden jakbyś napisał w pierwszym poście, że korzystasz z ZEOSa

0
masterO napisał(a)

Uzywam ZEOSA i wlasnie o takie rozwiazanie mi chodzilo. Dziekuje bardzo. Zgadzam sie ze zmiaats reszty powstow powyzej wystarczyl by ten jeden. Oczywiscie w 99% moze i sie ludzie nie zastanawaiaja, ale zawsze ejst ten 1% Misiekd.

Dziekuje za pomoc.

Wiesz.. jeden przykład powie więcej niż pół dnia teoretycznych wykładów - niemniej na pewno od Ciebie zależy czy przykład potraktujesz jako gotowca, czy też będzie on przede wszystkim źródłem wiedzy...

BTW - a zmieniałeś kolejność sortowania (rosnące-malejące) po kolejnych kliknięciach w tą samą kolumnę? Dobre ćwiczenie dla zrozumienia zagadnienia, no i może być przydatne...

0
Misiekd napisał(a)
masterO napisał(a)

Uzywam ZEOSA i wlasnie o takie rozwiazanie mi chodzilo. Dziekuje bardzo. Zgadzam sie ze zmiaats reszty powstow powyzej wystarczyl by ten jeden. Oczywiscie w 99% moze i sie ludzie nie zastanawaiaja, ale zawsze ejst ten 1% Misiekd.

Dziekuje za pomoc.

byłby jeden jakbyś napisał w pierwszym poście, że korzystasz z ZEOSa

...link do manuala ZEOSa? ;-)

0

Ja zawsze szukam i kombinuje a dopiero po dlugich probach pytam na forum. Co widac po czestotliwosci moich postow. Zgadzam sie ze jeden przyklad powie wiecej niz pol dnia wykladow.
Ja zrobilem sortowanie tylko ze za kazdym kliknieciem wybieralao sie zapytanie z bazy a klikniecie na kolumne podwojnie wykonalem tak:

var
SortBy : String;
TempSortBy : String;
Mode : String;
Mode2 : Integer;


SortBy := Column.FieldName;

  if (SortBy = TempSortBy) AND (Mode2 = 1) then
    Begin
    Mode := 'DESC';
    Mode2 := 0;
    end else
  begin
    Mode := 'ASC';
    Mode2 := 1;
  end;

SelectSort := Select + ' ORDER BY '+SortBy+' '+mode+';';

nie wiem czy dobrze cy zle i jak moznaby to poprawic w kazdym razie to dziala tylko
ze wlasnie na koncu skleja mi SelescSort i od nowa zapytanie a to za wolno idzie.
Pozdro.

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