Kodbank İndir

! CODEBANK 2012 !

İNDİRMEK&DETAYLI BİLGİ ALMAK İÇİN BURAYI TIKLAYINIZ.

ÖNEMLİ AÇIKLAMA: MUTLAKA OKUYUNUZ!

Gönderen Konu: AdoTable'nin dbgrid içinde gösterilmesi  (Okunma sayısı 2374 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı mkstyle

  • Üye
  • ***
  • İleti: 22
  • Rep: +0/-0
AdoTable'nin dbgrid içinde gösterilmesi
« : 12 Kasım 2009 16:08:36 »
Değerli arkadaşlarım.Bir sorunum var.Yardımcı olursanın çok memnun olacağım.
Proğramda Adotable,DbGrid,Combobox ve Edit bileşenlerini kullanıyorum.(Delphi7)
Combobox items içinde ANKARA,İZMİR,ANTALYA, Adotable içinde ise ANKARA,IZMIR  VE ANTALYA'nın ilçelerini gösteren bir table1 mecvut.Ayrıca formda AdoConnection,AdoDataset,Datasource ve AdoTable mevcut.
Şimdi ben combobox kutusunu açıp içinden IZMIR'i sectiğimde DbGrid içinde sadece Izmir'in ilçelerini,ANTALYA seçtiğimde sadece ANTALYA ilçelerini görmek istiyorum.
Nasıl yapabilirim.Lütfen yardım.Teşekkür.

Çevrimdışı sabanakman

  • Global Moderatör
  • *****
  • İleti: 769
  • Rep: +13/-0
  • Cinsiyet: Bay
Ynt: AdoTable'nin dbgrid içinde gösterilmesi
« Yanıtla #1 : 12 Kasım 2009 16:29:53 »
İlçeleri ADOTableilce isimli nesnede ve bu tablonunda il ismini ilAlanAdi isimli alanda tutulduğunu farzedersek
Kod: Delphi
  1. ADOTableilce.Filter:='ilAlanAdi='+QuotedStr(ComboBox1.Text);
  2. ADOTableilce.Filtered:=True;
şeklinde kod iş görecektir.
Şaban Şahin AKMAN

Derin olan kuyu değil kısa olan iptir

Çevrimdışı mkstyle

  • Üye
  • ***
  • İleti: 22
  • Rep: +0/-0
AdoTable'nin dbgrid içinde gösterilmesi
« Yanıtla #2 : 12 Kasım 2009 17:09:54 »
ilginize çok teşekkür ederim.Ben kodları aşağıdaki şekilde düzenledim. Fakat istediğim şey, Combobox'ta seçtiğim il adına bağlı ilçeleri dbgrid içinde görmek istiyorum. Şu an dbgrid içine combobox içinde kayıtlı olan tüm illerin ilçeleri listeleniyor.Yani Ankara ilini seçtiysem sadece dbgrid'de bu ilin ilçeleri çıkması gerekiyor.(Data dosyasını Acces'de hazırladım ve adı <Iller.mdb>.

procedure TForm1.Edit1Change(Sender: TObject);
var
  ara:Boolean;
  begin
  ara:=ADODataSet1.Locate('ILLER',Edit1.Text,[loCaseInsensitive]);
  if ara=false Then ADOTable1.Filtered:=True;
end;

procedure TForm1.DBComboBox1Click(Sender: TObject);
begin
CASE DbCombobox1.ItemIndex of
0:begin Edit1.Text:='Adana';END;
1:begin Edit1.Text:='Adıyaman'END;
2:begin Edit1.Text:='Afyon';END;
3:begin Edit1.Text:='Ağrı';END;
4:begin Edit1.Text:='Amasya';END;
5:begin Edit1.Text:='Ankara';END;
6:begin Edit1.Text:='Aydın';END;
end;end;

procedure TForm1.DBComboBox1DblClick(Sender: TObject);
begin
ADOTable1.Filter:='ILLER='+QuotedStr(DbComboBox1.Text);
ADOTable1.Filtered:=True;
end;


Yardımcı olursanız çok makbule geçecek.Teşkkür ederim
« Son Düzenleme: 12 Kasım 2009 17:13:59 by mkstyle »

Çevrimdışı sabanakman

  • Global Moderatör
  • *****
  • İleti: 769
  • Rep: +13/-0
  • Cinsiyet: Bay
Ynt: AdoTable'nin dbgrid içinde gösterilmesi
« Yanıtla #3 : 12 Kasım 2009 17:25:40 »
DBComboBox1DblClick içindeki kodlar filtreleme kodu, isterseniz bunu doubleclick olayından onclick olayına taşıyın veya filtrele isimli bir butonun onClick olayına taşıyın.
Şaban Şahin AKMAN

Derin olan kuyu değil kısa olan iptir

Çevrimdışı mkstyle

  • Üye
  • ***
  • İleti: 22
  • Rep: +0/-0
Ynt: AdoTable'nin dbgrid içinde gösterilmesi
« Yanıtla #4 : 12 Kasım 2009 22:16:42 »
Bilgiler için teşekkür ederim.Söylediğiniz gibi önce DbComboBox1.DbClick olarak kullandım.Sonuç, DbGrid içinde yine tüm liste çıkıyor. Bir button'un OnClick ve sonra DbClick olayına bağladım.Yine aynı şekilde DbGrid içinde tüm liste sıralanıyor.Oysa DbComboBox1'daki illerden birisine tıkladığımda DbGrid içerisinde yalnızca o ilin ilçelerinin listesinin görülmesi gerekiyor.Diğer ilçeler görünmeyecek.Yani DbComboBox1 içinden Ankara 'yı tıkladığımda DbGrid içinde sadece Ankara'nın ilçeleri listelenecek.İzmir'i tıklarsam, izmir'in ilçeleri görülercek.

Rahatsız ettiğimin farkındayım.Ama bu proğram benim için çok önemli.Yardımlarınızı bekliyorum.Teşekkür ederim.

Çevrimdışı sabanakman

  • Global Moderatör
  • *****
  • İleti: 769
  • Rep: +13/-0
  • Cinsiyet: Bay
Ynt: AdoTable'nin dbgrid içinde gösterilmesi
« Yanıtla #5 : 13 Kasım 2009 07:36:13 »
Filtreyi DBGrid'in bağlı olduğu tabloya vermelisiniz. Eğer kullandığınız DBGrid, DataSource üzerinden ADOTable1'e bağlı ise filteryi ADOTable1'e, ADODataSet1'e bağlı ise ADODataSet1'e filtre vermelisiniz. Hatta kodu aşağıdaki gibi yaparsanız, bunu garantilemiş olursunuz ama söylediğim gibi, galiba filtreyi alakasız bir bileşene veriyorsunuz.
Kod: Delphi
  1. procedure TForm1.DBComboBox1DblClick(Sender: TObject);
  2. begin
  3.   DBGrid1.DataSource.DataSet.Filter:='ILLER='+QuotedStr(DbComboBox1.Text);
  4.   DBGrid1.DataSource.DataSet.Filtered:=True;
  5. end;
« Son Düzenleme: 13 Kasım 2009 07:39:42 by sabanakman »
Şaban Şahin AKMAN

Derin olan kuyu değil kısa olan iptir

Çevrimdışı mkstyle

  • Üye
  • ***
  • İleti: 22
  • Rep: +0/-0
Ynt: AdoTable'nin dbgrid içinde gösterilmesi
« Yanıtla #6 : 13 Kasım 2009 09:35:36 »
Değerli arkadaşım.
Edit1'.OnChange olayını iptal edip verdiğiniz kodu DbComboBox1.DbClick olayına eklediğimde isteğim gerçekleşti.Verdiğiniz bilgiden ve ilgiden dolayı çok teşekkür ederim.

Çevrimdışı sosyalpislik

  • Üye
  • ***
  • İleti: 46
  • Rep: +0/-0
  • Cinsiyet: Bayan
Ynt: AdoTable'nin dbgrid içinde gösterilmesi
« Yanıtla #7 : 07 Ağustos 2010 16:55:02 »
peki burda ile bitenleri yada içinde geçenleri bulmak için ne yapabiliriz...

Çevrimdışı sabanakman

  • Global Moderatör
  • *****
  • İleti: 769
  • Rep: +13/-0
  • Cinsiyet: Bay
Ynt: AdoTable'nin dbgrid içinde gösterilmesi
« Yanıtla #8 : 10 Ağustos 2010 12:38:38 »
Yanlış bilmiyorsam Delphi2005 ve sonraki versiyonlarda filtre fonksiyonu olarak like operatörünü de ekledi ve filtrelerde artık
Kod: [Seç]
xxx.Filter:='AlanAdi like ''%E'''şeklinde E ile bitenler gibi bir şart verilebilir ama Query bileşenlerinin kullanılması daha performanslı sonuç verecektir. Ne de olsa Table gibi tüm kayıtlarla değil sadece sorgudan gelen kayıtlarla ilgileniyor.
« Son Düzenleme: 10 Ağustos 2010 13:11:03 by sabanakman »
Şaban Şahin AKMAN

Derin olan kuyu değil kısa olan iptir

Çevrimdışı sosyalpislik

  • Üye
  • ***
  • İleti: 46
  • Rep: +0/-0
  • Cinsiyet: Bayan
Ynt: AdoTable'nin dbgrid içinde gösterilmesi
« Yanıtla #9 : 10 Ağustos 2010 23:50:32 »
teşekür ederim