Delphi Dünyası Facebook'ta

Kodbank İndir

! CODEBANK 2012 !

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

Gönderen Konu: DBLookUpComboBox  (Okunma sayısı 6977 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı Fatih

  • Emekli Yönetici
  • *****
  • İleti: 2.217
  • Rep: +43/-10
  • Cinsiyet: Bay
    • Delphi Dünyası
DBLookUpComboBox
« : 10 Ekim 2005 00:41:37 »
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



Ş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



İlçe Tablosu



İ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



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



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.

   

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.



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



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.
Malulen emekli programcı / yazar. Bildiklerini unutmakta olduğundan size cevap veremez.

Çevrimdışı Mikdad

  • Delphi 4 Level 1
  • *
  • İleti: 150
  • Rep: +2/-2
  • Cinsiyet: Bay
    • http://www.mikdad.net
Ynt: DBLookUpComboBox
« Yanıtla #1 : 09 Kasım 2005 10:00:32 »
abim ya şu frebird beni biraz zorluyacak galiba çok karışık geliyor ya
Hiç KiMSe VaZGeÇiLMeZ DeĞiLDiR
WwW.Minikhost.Net    Host Dünyasında Yeni Bir Soluk
WwW.Mikdad.Net        İslami İçerikli Portalınız
WwW.Pckahvesi.com   Netteki Yeni Adresiniz

Çevrimdışı Fatih

  • Emekli Yönetici
  • *****
  • İleti: 2.217
  • Rep: +43/-10
  • Cinsiyet: Bay
    • Delphi Dünyası
Ynt: DBLookUpComboBox
« Yanıtla #2 : 09 Kasım 2005 13:30:48 »
abim ya şu frebird beni biraz zorluyacak galiba çok karışık geliyor ya
zorlamaz meerak etme :P
Malulen emekli programcı / yazar. Bildiklerini unutmakta olduğundan size cevap veremez.

Çevrimdışı Mikdad

  • Delphi 4 Level 1
  • *
  • İleti: 150
  • Rep: +2/-2
  • Cinsiyet: Bay
    • http://www.mikdad.net
Ynt: DBLookUpComboBox
« Yanıtla #3 : 09 Kasım 2005 15:53:34 »
İnşallah Başalırız İnşallah
Hiç KiMSe VaZGeÇiLMeZ DeĞiLDiR
WwW.Minikhost.Net    Host Dünyasında Yeni Bir Soluk
WwW.Mikdad.Net        İslami İçerikli Portalınız
WwW.Pckahvesi.com   Netteki Yeni Adresiniz

Çevrimdışı 32844

  • Delphi 6 Level 4
  • ****
  • İleti: 288
  • Rep: +3/-0
  • Cinsiyet: Bay
Ynt: DBLookUpComboBox
« Yanıtla #4 : 25 Şubat 2008 15:51:25 »
Fatih Hocam,
Kitap çalışmalarından fırsat bulamazsın o nedenle yazdıklarımın cevap vermen için en küçük bir baskı oluşturmamasını istiyorum. Sitedeki arkadaşlardan ricam bunu firebird veritabanındaki dosyalarda nasıl yapabiliriz. Firebird'de il ve ilçelerden oluşan iki tablo hazırladım. DBLookupComboBox1 de ili ve DBLookupComboBox2 de ilgili ilçeleri nasıl listeleyebiliriz.
 
Çang çing çong çung.
Çin Atasözü

Çevrimdışı Fatih

  • Emekli Yönetici
  • *****
  • İleti: 2.217
  • Rep: +43/-10
  • Cinsiyet: Bay
    • Delphi Dünyası
Ynt: DBLookUpComboBox
« Yanıtla #5 : 25 Şubat 2008 16:35:16 »
IBX bileşenleri tüm kaydı bağlandığında çekmez. Bu sebeple, tüm kayıtları normalde göremezsin. Bunun önüne geeçmek için tabloya bağlantı nesnen hangisi ise, afteropen olayına; "Tablo1.FetchAll;" yazmalısın.

Bağlantı nesnenin ismini "tablo1" olduğunu varsaydım
Malulen emekli programcı / yazar. Bildiklerini unutmakta olduğundan size cevap veremez.

Çevrimdışı Fatih

  • Emekli Yönetici
  • *****
  • İleti: 2.217
  • Rep: +43/-10
  • Cinsiyet: Bay
    • Delphi Dünyası
Ynt: DBLookUpComboBox
« Yanıtla #6 : 25 Şubat 2008 17:23:02 »
Ekte bir örnek
Malulen emekli programcı / yazar. Bildiklerini unutmakta olduğundan size cevap veremez.

Çevrimdışı 32844

  • Delphi 6 Level 4
  • ****
  • İleti: 288
  • Rep: +3/-0
  • Cinsiyet: Bay
Ynt: DBLookUpComboBox
« Yanıtla #7 : 26 Şubat 2008 17:04:27 »
Fatih Hocam,
Ellerine sağlık. O kadar işinin gücünün arasında seni de meşgul etmiş oldum. Örnek dosyayı da eklemişsin. Çok teşekkürler.
Çang çing çong çung.
Çin Atasözü

Çevrimdışı buslu

  • Delphi 2 Level 1
  • *
  • İleti: 53
  • Rep: +0/-0
Ynt: DBLookUpComboBox
« Yanıtla #8 : 30 Kasım 2008 14:38:57 »
Fatih Hocam;

Bende Acces veri tabanı ve ado nesneleri var formumda..bu söylediklerinizi kendi projemde nasıl yapabilirim..mesela veritabanımda magaza no ve magaza adı var..ben dblookuptcomboboxta magaza nosunu sectiğimde otomatik olarak diğer comboboxa magaza adını atmasını istiyorum..magaza adlarını ve nosunu baska bir veritabanından cekiyorum..ve baska bir veridatabanına aktarıyorum..nasıl olur?