[ gygy @ 25.07.2003. 02:41 ] @
Kako da sortiram podatke u dbgrid-u?

Od komponenata sam koristio ClientDataSet1, DataSource1 i DBGrid1.
Podatci su uneseni u neku bazu "Baza.xml".

Unapred Hvala!!!
GYGY
[ byTer @ 25.07.2003. 03:28 ] @
A o dakle si vadio podatke. Ako je iz XML-a onda je to mnogo komplikovanije. Ako radis iz neke druge baze onda jednostavno napravi novi query gde ces kao uslov da selektujes odredjenu kolonu!
[ Ilija Studen @ 25.07.2003. 13:14 ] @
Resi sortiranje sa standardnim Query-em:

SELECT polje FROM tabela ORDER BY polje

Ako ti treba DB Grid sa sortiranjem tesko da ces naci komponentu koja ce to raditi posto je to mnogo jednostavnije uraditi kao sto sam gore napisao (iskoristi prednosti koje pruzaju baze podataka =} ). Standardne gridove sa mogucnostu sortiranja (i mnogim ekstra featurima kao sto su Combo polja, Checkboxovi unutar celija i slicno) mozes naci na http://www.torry.net
[ Kockicica @ 26.07.2003. 10:30 ] @
Pogledaj malo ClientDataSet->IndexFieldNames i ClientDataSet->IndexFields properties. Nema nikakve veze sa gridom ;-)
[ gygy @ 31.07.2003. 21:52 ] @
Zahvaljujem se svima na trudu, a posebno Kockicica na odgovoru resio sam problem!!!
I jos nesto kako da napravim kad kliknem na >Title Columns< da sortira po toj koloni?

Ali moj program koristi midas.dll pa me zanima da li ce praviti probleme (ja koristim Delphi6)?
Posto sam cuo da je u D5 bio bug u midas.dll-u takav da kad se prvi put ucita midas.dll on u registry upise odakle je ucitan i svaki sledeci put insistira da se nalazi na tom mestu. Drugim recima, kada ga jednom ucitas ne smes ga premestati na drugo mesto pa me zanima da li je bug otklonjen u D6?

Hvala unapred!!!
Pozdrav!!!
[ Kockicica @ 03.08.2003. 01:00 ] @
Nisam siguran da je to greska - midas.dll je inproc COM server a kao takav bi trebalo da bude registrovan, sto podrazumeva da u registry postoji i tacna putanja do samog dll-a. Ako ga je bas potrebno pomerati, uradi "regsvr32 /u <tamo-gde-je-sada>\midas.dll", prebaci ga u zeljeni direktorijum i zavrsi sa "regsvr32 <tamo-gde-si-ga-prebacio>\midas.dll"
[ gygy @ 04.08.2003. 16:44 ] @
Hvala Kockicice na odgovoru!

1. Ali kako da napravim kada kliknem na >Title Columns< da sortira po toj koloni?
2. I kako da kada kliknem na primer na neko slovo da automatski skoci na racimo taj red?

Unapred hvala!
GYGY
[ gygy @ 10.08.2003. 23:24 ] @
Kako da menjam "IndexFiledName" klikom na "Button" ili "Title Columns", koju god proceduru da napisem nece da radi?

Pozdrav!!!
GYGY


[ cacafaca @ 03.02.2006. 14:32 ] @
Evo šta sam ja radio.
Code:

procedure SortirajDBGrid(Kolona: TColumn);
var tabela:ttable;
    grid:tdbgrid;
begin
  grid:=tdbgrid(Kolona.Grid);
  if (grid.DataSource.DataSet<>nil) then begin
    tabela:=ttable(grid.DataSource.DataSet);
    if (tabela.State <> dsinactive) and (tabela.FieldDefs.IndexOf(kolona.FieldName)>-1) then begin
      tabela.DisableControls;
      try
        tabela.IndexName:=tabela.IndexDefs.find(kolona.FieldName).Name;
      except
        on edatabaseerror do begin
          tabela.AddIndex(kolona.fieldname, Kolona.FieldName, [ixCaseinsensitive], Kolona.FieldName);
          tabela.IndexName:=kolona.FieldName;
        end;
      end;
      tabela.enablecontrols;
    end;
  end;
end;


Ali radi samo prvi put po startovanju programa. Posle prijavljuje "must use baseorder for this operation ..."

Ovo me j... pa rastura! :)

[Ovu poruku je menjao cacafaca dana 03.02.2006. u 15:33 GMT+1]