DBLookUpComboBox

Yazdığınız makaleleri ve üyelerimizin işine yarayacağını düşündüğünüz kodlarınızı gönderebilirsiniz. Bu foruma soru sormayın!
Cevapla
Kullanıcı avatarı
Fatih!
Kıdemli Üye
Mesajlar: 1172
Kayıt: 26 Kas 2004 10:46
Konum: Malatya
İletişim:

DBLookUpComboBox

Mesaj gönderen Fatih! »

Diğer Bir Verikümesindeki Bir Alanın Değerlerini Kullanarak Bu Değerlere göre başka bir verikümesindeki Bir alanın değerini ayarlar.

aşağıdaki gibi bir tablomuz olduğunu düşünelim.

Tablo Adı LOOK_ORNEK

Resim

Şimdi İli ve İlçe bölümlerinde Tüm İlleri ve buna bağlı ilçeleri Bir dbLookupCombobox İle Listeletip seçilen İl ve İlçeleri Yukarıdaki Tabloya yazdıralım.

İl ve İlçelerin bulunduğu aşağıdaki tablolarımız olsun.

İl Tablosu

Resim

İlçe Tablosu

Resim

İlçeler tablosundaki MST_ID alanı iller tablosundaki SELF alanına bağlıdır. iller tablosunda Adanayı seçtiğiniz zaman iller tablosundaki SELF alanının değerine İlçeler tablosunsda MST_ID alaında değeri 1 olan kayıtlar Listelenir.. Bu İki tabloyu delphi içinden Master / Detail Bağlantısını sağlıyoruz. 3 table, 3 Datasource, 2 dbedit,2 dblookupcombobox 4 Label ve birde dbnavigator bileşeni formumuza ekliyoruz..

Aşağıdaki gibi Tasarımınızı yapın

Resim

DATASOURCE1.DATASET > TABLE1

TABLE1.TableName > LOOK_ORNEK

DATASOURCE2.DATASET > TABLE2

TABLE2.TableName > IL

DATASOURCE3.DATASET > TABLE3

TABLE3.TableName > ILCE

Şimdi il ve ilçe Tablosunu bir birine ilişkilendirelim (Master / Detail ). Master / Detail bağlantı kurmayanlarada örnek taşkil edecektir.

İlçe Tablomuzun MasterSource Özelliğine Bağlantı Kuracağımız İl tablosunun Datasosourcesini Gösteriyoruz.

Table3.Mastersource > Datasource2

Daha sonra ilişkilendireceğimiz Alanları Belirlemek için

Table3.MasterFields özelliğine Tıklıyoruz. Karşımıza Aşağıdaki pencere çıkıyor

Resim

Bağlantı Kurulacak Alanları seçtikten sonra Add buttonuna tıklayıp ok'liyoruz.

2 dbedit ve dbnavigator bileşenlerinin Datasourcelerine Datasource1'i gösteriyoruz.

DBEdit1.DataField > IDNO

DBEdit2.DataField > ADI_SOYADI

DBLookupComboBox1.ListSource > Datasource2

DBLookupComboBox1.ListField > ADI

DBLookupComboBox1.KeyField > ADI

DBLookupComboBox1.Datasource >Datasource1

DBLookupComboBox1.DataField > IL

DBLookupComboBox2.ListSource > Datasource3

DBLookupComboBox2.ListField > ADI

DBLookupComboBox2.KeyField > ADI

DBLookupComboBox2.Datasource >Datasource1

DBLookupComboBox2.DataField > ILCE

tABLOLARI aKTİF YAPIP TEST EDİN.

ÖZELLİKLERİ

ListSource : Bileşenin verileri Listeleyeceği Datasource bileşeni

ListField : ListSource de belirtilen Kaynaktaki alanlardan hangisininListelemede Kullanılacağını belirtir

KeyField : Bağantının Hangi alan üzerinde yapılacağını Belirtir. Bu alanda seçili veri DataField Bölümünde Belirtilen alana yazılır

DataSource : Listsourcede Belirtilen veri Kaynağının Hangi erikaynağına yazılacağını belirtir.

DataField : Datasource ile belirtilen kaynaktaki (tablo) KeyFielddeki verinin hangi alana yazılacağını belirtir.

datasource ve datafieldi boş bırakırsanız tabloya herhangi bir veri yazmayıp sadece listeleme yapr.

Örnek 2

Şimdi Bileşenin Farklı bir kullanım şeklini göreceğiz. Diyelim bir tablomuz var. adısoyadı ve ilkodu diye iki alanımız var. tabloya il adını değilde ilkodunu girmek istiyoruz fakat kullanıcının bu kodları tek tek ezberlemesi gerekecek ve doğal olarak zorlandığı için programınızı sevmeyecektir. Programımızda kullanıcı il adını seçecek fakat biz tabloya il kodunu yazacağız.

Tablolarımız aşağıdaki gibi olsun.

Resim Resim Resim

2 table, 1 Datasource ve birde dbGRİD bileşeni formumuza ekliyoruz..

DATASOURCE1.DATASET > TABLE1

TABLE1.TableName > LOOK_ORNEK

DBGRID1.DATASOURCE > DATASOURCE1

TABLE2.TableName > IL

TABE1'e çift tıklayıp.Fields Editörü açıyoruz. Fields Editör üzerinde sağ tıklayıp New Field deyip aşağıda sanal bir alan oluşturuyoruz.

Resim

Yukarıdaki ayarları yaptıktan sonra sanal alanımızı normal bir alan gibi kullanabilirsiniz

Resim

Gördüğünüz gibi grid üzerinde açılır liste şeklinde bir alanımız oluştu. bu alan üzerinde yapılacak değişiklik IL_KODU alanına yansıyacaktır. isteseydik bir dblookupcombobox bileşeni forma ekleyip sadece Datasource ve DataField özelliklerini ayarlayarak kullanabilirdik. veya yukarıdaki IL_KODU alanını dbgridde göstermeyebilirdik.
Cevapla