DBGrid ile sıralama.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Jire
Üye
Mesajlar: 167
Kayıt: 07 Eki 2007 01:20

DBGrid ile sıralama.

Mesaj gönderen Jire »

Merhaba.
Ben bi tane sıralama yapmayı düşünüyorum ama bu sıralama belli bir sütuna göre olacak. Ascending olayı.

örnek tablo
Ad Soyad Puan

Bu tabloda en yüksek puanlı 100 kişiyi soyad sütununu göstermeden nasıl yapabilirim?

*ADOTable kullanıyorum.
oklawa
Üye
Mesajlar: 68
Kayıt: 01 Oca 2008 02:53

Mesaj gönderen oklawa »

http://www.bergsoft.net/ de free verilmekte olan NextGrid komponentini kullanıyorum.

DBAWARE grid değil ama NxCellDataSource komponenti ile datasetten okuma yapabiliyor. Sütun gizleme, sıralama vs.. birçok kolaylığı var..
Jire
Üye
Mesajlar: 167
Kayıt: 07 Eki 2007 01:20

Mesaj gönderen Jire »

oklawa yazdı:http://www.bergsoft.net/ de free verilmekte olan NextGrid komponentini kullanıyorum.

DBAWARE grid değil ama NxCellDataSource komponenti ile datasetten okuma yapabiliyor. Sütun gizleme, sıralama vs.. birçok kolaylığı var..
Teşekkürler deneyeceğim.

edit: yükledim nxcelldatasource u da koydum adotable1 i seçtim şimdi nolcak devamını nasıl yapacam?
oklawa
Üye
Mesajlar: 68
Kayıt: 01 Oca 2008 02:53

Mesaj gönderen oklawa »

Dizayn aşamasında:
NxCellDataSource Associate parametresinde kullanılacak NextGrid'i seçip,
Active ederseniz -eğer kaynak tablo açıksa- tablo içeriğini gridde görürsünüz.

Program çalışırkende, NxDataCellSource1.Execute veya NxDataCellSource1.Update çağrılarıylada güncelleme yaparsınız..

Berg'in forumuda var.
Gridin birçok Column tipi olduğundan foruma başvurmanız gerekebilir.

Kolay gelsin..
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
sorun soyad alanını göstermemek mi.
bunun için dbgride iki kere tıkla.
columnseditorden istediğin alanları ekleyip istediğin alanları çıkarabilirsin.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Re: DBGrid ile sıralama.

Mesaj gönderen ikutluay »

Jire yazdı:Merhaba.
Ben bi tane sıralama yapmayı düşünüyorum ama bu sıralama belli bir sütuna göre olacak. Ascending olayı.

örnek tablo
Ad Soyad Puan

Bu tabloda en yüksek puanlı 100 kişiyi soyad sütununu göstermeden nasıl yapabilirim?

*ADOTable kullanıyorum.
kbm memtable öneririm. tablo ramde olduğundan acaip hızlı olur.derdin kolon gizlemekse yukarda önerilen metod işini görür.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Mesaj gönderen Battosai »

Dediğin sıralama işi kolon başlıklarına tıklayarak yapabilirsin SQL ile malum çok basit iş...
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

Battosai yazdı:Dediğin sıralama işi kolon başlıklarına tıklayarak yapabilirsin SQL ile malum çok basit iş...
adam adotable kullanıyor. haliyle sql kullanamayacak. bunun için adoquery e geçmesi gerek.


evet sql ile basit... ancak gridin buna destek veren eventleri olmasıda gerekli.

o bakımdan en sağlamı bu işlemi şu an için dataset bazında bir 3. parti memtable gibime geliyor. yada buna destek veren bir grid kullanmak.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Mesaj gönderen Battosai »

Evet AdoTable demiş gözden kaçırmışım.Dolayısyla AdoQuery kullan arkadaşım :D
ikutluay Ayrıca standart dbgrid içinde başlıklara tıklama olayı var zira ben kullanıyorum...Farklı bir grid kullanmasına gerek yok...

AdoQuery'e geçeyim bari diyorsan sana kullandığım procedure yazabilirim...

Kod: Tümünü seç

procedure TForm1.DBGrid1TitleClick(Column: TColumn);
begin
sirala(Dbgrid1,Column.Index);//şeklinde kullanımı var
end;
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

standart dbgrid içinde sütun başlıklarına tıklama olayı varmı yani. demek istediğim ayrı ayrı...
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

Dataset üzerinden sıralama yapılabilir.

Kod: Tümünü seç

http://www.delphiturkiye.com/forum/viewtopic.php?t=12403&highlight=dbgrid+s%FDralama

Kod: Tümünü seç

http://www.delphiturkiye.com/forum/viewtopic.php?t=3493&highlight=ado+grid
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

Mesaj gönderen haydarxxx »

syn oklawa

NextGrid komponentini indirdim
Dizayn aşamasında:
NxCellDataSource Associate parametresinde kullanılacak NextGrid'i seçip,
Active ederseniz -eğer kaynak tablo açıksa- tablo içeriğini gridde görürsünüz.

Program çalışırkende, NxDataCellSource1.Execute veya NxDataCellSource1.Update çağrılarıylada güncelleme yaparsınız..
dediklerinizi yaptım proje esnasında data bağlantısı yaptığım NextGrid de verileri görüyorum fakat projeyi çalıştırdığımda NextGrid e hiç bir veri gözükmüyor sadece tablomdaki alanların başlıkları gözüküyor.
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

Compenentti bilmiyorum ama
tek ihtimal program run olduktan sonra bağlı datasetin active olamamasından başka bir şey olamaz diye düşünüyorum.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

Mesaj gönderen haydarxxx »

tek ihtimal program run olduktan sonra bağlı datasetin active olamamasından başka bir şey olamaz diye düşünüyorum.
Ama aynı datasete bağlı dbgird çalışıyor :roll:
oklawa
Üye
Mesajlar: 68
Kayıt: 01 Oca 2008 02:53

Mesaj gönderen oklawa »

haydarxxx yazdı: dediklerinizi yaptım proje esnasında data bağlantısı yaptığım NextGrid de verileri görüyorum fakat projeyi çalıştırdığımda NextGrid e hiç bir veri gözükmüyor sadece tablomdaki alanların başlıkları gözüküyor.

Kod: Tümünü seç

  AdoTable1.Open;
  NxDataCellSource1.DataSet := AdoTable1;
  NxDataCellSource1.Associate := NextGrid1;
  NxDataCellSource1.Active:=True;
  NxDataCellSource1.Execute;
Bunları runtime denerseniz belki problemi belirlemiş olursunuz.
Ben Absolute, Ado gibi birkaç veritabanı ve tabloları ile denedim, hiç problem yaşamadım. Yanlız burada dikkat edilmesi gereken bir konu var, grid her güncellenmesi gerektiğinde, NXDataCellSource'un Execute edilmesi gerektiği. Bunu FormShow vb. eventler içinde yapabilirsiniz.
Cevapla