dbgridde titleclik yaparak a..z nasıl listerim
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
dbgridde titleclik yaparak a..z nasıl listerim
adodateset ile dbgridin titleclik olayına aşağıdakı kodu tıklayarak
a..z ye ve z..a ya sıralma yapmasını sağlıyordum;
if ADODataSet1.IndexFieldNames=column.Field.FieldName then
begin ok.ImageIndex:=0;
ADODataSet1.IndexFieldNames:=Column.Field.FullName+' DESC' end
else begin ok.ImageIndex:=1;
ADODataSet1.IndexFieldNames:=column.Field.FieldName end;
peki IBdateset ile nasıl yapabilirim?
a..z ye ve z..a ya sıralma yapmasını sağlıyordum;
if ADODataSet1.IndexFieldNames=column.Field.FieldName then
begin ok.ImageIndex:=0;
ADODataSet1.IndexFieldNames:=Column.Field.FullName+' DESC' end
else begin ok.ImageIndex:=1;
ADODataSet1.IndexFieldNames:=column.Field.FieldName end;
peki IBdateset ile nasıl yapabilirim?
En son metemete tarafından 30 Kas 2005 12:19 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
-
- Kıdemli Üye
- Mesajlar: 1223
- Kayıt: 26 Nis 2005 04:08
olmuyorr
titleclick olayında kullanıyorum.
sizin dediğiniz gibi yaparsam IBDATASET kapatıp acmam gerekcek
bende acıp kapatmak ıstemıyorum
adodataset bu işi yapıyorsa IBDATASET de yapar diye umuyorum???
IBdataset.sort özelliği olsa söyle de olurdu sanırım
dbGrid1.Columns[wRenkKolonu].Font.Color := clBlack;
column.Font.Color := clBlue;
if wSort = true
Then qrygrid.Sort := column.FieldName + ' ASC '
Else qrygrid.Sort := column.FieldName + ' DESC ';
wSort := not wSort;
wRenkKolonu := column.index;
bilen yokmu arkadaşlar ???
sizin dediğiniz gibi yaparsam IBDATASET kapatıp acmam gerekcek
bende acıp kapatmak ıstemıyorum
adodataset bu işi yapıyorsa IBDATASET de yapar diye umuyorum???
IBdataset.sort özelliği olsa söyle de olurdu sanırım
dbGrid1.Columns[wRenkKolonu].Font.Color := clBlack;
column.Font.Color := clBlue;
if wSort = true
Then qrygrid.Sort := column.FieldName + ' ASC '
Else qrygrid.Sort := column.FieldName + ' DESC ';
wSort := not wSort;
wRenkKolonu := column.index;
bilen yokmu arkadaşlar ???
- sadettinpolat
- Moderator
- Mesajlar: 2131
- Kayıt: 07 Ara 2003 02:51
- Konum: Ankara
- İletişim:
adodatasette olan sort özellliği ibdatasette yok malesef. bu işlemi yapmak için ibdatasettin ilgili sql özelliğini değiştirip close,open yapmaktan başka bir çözüm bilmiyorum ama illa close,open yapmadan bu işi yapmam gerekiyor derseniz araya birde clientdataset bileşeni almanız gerekecek. ibdatasetteki verileri clientdatasete attıktan sonra verilerin sıralamasını istediğiniz şekilde değiştirme şansınız olur. denemedim ama bir diğer yol ise firebird'ün odbc sürücülerini yükleyip adodataset kullanarak bağlanmayı da deneyebilirsiniz.
Kod: Tümünü seç
{ Private declarations }
public
{ Public declarations }
end;
var
FrmMusteriListe: TFrmMusteriListe;
OrderDir: Boolean = True; //Grid başlıklarında arama yapmak için
Kod: Tümünü seç
procedure TFrmMusteriListe.DBGrid1TitleClick(Column: TColumn);
begin
//Bu Kodlarla Tıklanan Butona Göre Sıralıyoruz.
if OrderDir then
begin
Screen.Cursor := crSQLwait;
datmodul.sorgu.SelectSQL.Text := 'select * from MUSTERI order by ' +
Column.FieldName + ' ASC';
Screen.Cursor := crDefault;
end
else
begin
Screen.Cursor := crSQLwait;
datmodul.sorgu.SelectSQL.Text := 'select * from MUSTERI order by ' +
Column.FieldName + ' DESC';
Screen.Cursor := crDefault;
end;
OrderDir := not OrderDir;
datmodul.sorgu.Close;
Screen.Cursor := crSQLwait;
datmodul.sorgu.Open;
Screen.Cursor := crDefault;
end;
IBTable ın kodlarını incelersenin onunda SQL oluşturup çalıştırdığını göreceksiniz, yani sadece araya bir arayüz eklemek gibi bir şey olur.
Yapılmak istenen in 2 çözümü var. Query kullanıp SQL oluşturup çalıştırmak, yada 3.parti componentlar kullanmak. cxGrid gibi.
Fikir vermesi açısından çalışma mantığını söyliyeyim. cxGrid tüm dataset i okuyup hafızaya alır.Parametrelerle bunu değiştirebilirsiniz ama özellikleri değiştirmek gridin işlevlerini etkiliyecektir. Hafızaya aldığı kayıtlar üzerinde işlem yapar. dolayısıyla Dataset in açılıp kapanmasına yada field larda index olmasına gerek yoktur. Ayrıca işlem memory de yapıldığından ve algoritması iyi tasarlandığından makul bir performansı vardır.
Kolay gele
Yapılmak istenen in 2 çözümü var. Query kullanıp SQL oluşturup çalıştırmak, yada 3.parti componentlar kullanmak. cxGrid gibi.
Fikir vermesi açısından çalışma mantığını söyliyeyim. cxGrid tüm dataset i okuyup hafızaya alır.Parametrelerle bunu değiştirebilirsiniz ama özellikleri değiştirmek gridin işlevlerini etkiliyecektir. Hafızaya aldığı kayıtlar üzerinde işlem yapar. dolayısıyla Dataset in açılıp kapanmasına yada field larda index olmasına gerek yoktur. Ayrıca işlem memory de yapıldığından ve algoritması iyi tasarlandığından makul bir performansı vardır.
Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!