Dbgird te Lookup Nasıl ?
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- ömer faruk
- Üye
- Mesajlar: 97
- Kayıt: 29 Eki 2003 09:34
- Konum: Bursa
- İletişim:
Dbgird te Lookup Nasıl ?
Selamunaleykum....
Dbgrid in içine başka table dan nasıl bilgi alabilirim bu dblookupcombobox gibi olacak yalnız, böyle bir component varmı yoksa kodlamı yapabilirim...
Sevgiler....Saygılar...
Dbgrid in içine başka table dan nasıl bilgi alabilirim bu dblookupcombobox gibi olacak yalnız, böyle bir component varmı yoksa kodlamı yapabilirim...
Sevgiler....Saygılar...
Hakimiyet ALLAH' ındır...
Selam.
- @fahrettin' katılarak ComboBox için düşündüğünüz verilerinizin azlığı durumunda bir öneride bulunucam.
- DBGrid'in Column üzerinde PickList olayını hiç denediniz mi ? İlgili Column'a gelince edit ederken aşağıya doğru ComboBox şekilnde açılımda bulunur.
- Ufak bir fonksiyon yazarak Query ile bahsettiğiniz diğer table'dan bilgileri okuyup, basit bir döngü yardımıyla burada güncelleme yapar, kullanıcının bilgilerini kolay ve hatasız girmesini sağlayabilirsiniz.
...örneğindeki gibi.
- @fahrettin' katılarak ComboBox için düşündüğünüz verilerinizin azlığı durumunda bir öneride bulunucam.
- DBGrid'in Column üzerinde PickList olayını hiç denediniz mi ? İlgili Column'a gelince edit ederken aşağıya doğru ComboBox şekilnde açılımda bulunur.
- Ufak bir fonksiyon yazarak Query ile bahsettiğiniz diğer table'dan bilgileri okuyup, basit bir döngü yardımıyla burada güncelleme yapar, kullanıcının bilgilerini kolay ve hatasız girmesini sağlayabilirsiniz.
Kod: Tümünü seç
DBGrid1.Columns[1].PickList.Add('Deneme');
DBGrid1.Columns[1].PickList.Add('1');
DBGrid1.Columns[1].PickList.Add('2');
ben de kendi kullandıgım metodu anlatayım
table nesnesinde sag tıklayıp fields editoru acın eger alanlar aktarılmamıs ise tum alanları aktarın (Add All)
sonra yeni field diyerek bir tane lookup field olusturun
dbgrid icericinde bu alanı oldugu gibi goreceksiniz
data girerkende dbgridde combobox haline geelcek
table nesnesinde sag tıklayıp fields editoru acın eger alanlar aktarılmamıs ise tum alanları aktarın (Add All)
sonra yeni field diyerek bir tane lookup field olusturun
dbgrid icericinde bu alanı oldugu gibi goreceksiniz
data girerkende dbgridde combobox haline geelcek
ÜŞENME,ERTELEME,VAZGEÇME
Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Re: Dbgird te Lookup Nasıl ?
- @gkimirti Başka bir tabledan veri okumak istiyor.ömer faruk yazdı: Dbgrid in içine başka table dan nasıl bilgi alabilirim ....
- Ben de daha en çok uyguladığım tekniği bildireyim o zaman.


- Ekrana bir tane DBComboBox koy ve gerekli ayarları yapıp istediğin table ve alana yönlendir.
- DBGrid'in DrawDataCell eventinde şunları yaz.
Kod: Tümünü seç
if (gdFocused in State) then
begin // DBGrid üzerindeysek
if (Field.FieldName = 'AlanAdi') then
begin // istediğiniz alana gelince belirir yoksa gizlenir.
DBLookupComboBox1.Left := Rect.Left + DBGrid1.Left;
DBLookupComboBox1.Top := Rect.Top + DBGrid1.Top;
DBLookupComboBox1.Width := Rect.Right - Rect.Left;
DBLookupComboBox1.Height := Rect.Bottom - Rect.Top;
DBLookupComboBox1.Visible := True;
end
else DBLookupComboBox1.Visible := False;
end
else DBLookupComboBox1.Visible := False;
- Böylece BASIC işlemler için her zaman karşı çıktığım üçüncü parti bir VCL kullanmanıza gerek kalmadı.

Re: Dbgird te Lookup Nasıl ?
Merhaba,mrmcop yazdı:- Böylece BASIC işlemler için her zaman karşı çıktığım üçüncü parti bir VCL kullanmanıza gerek kalmadı.
hocam ben bu noktada biraz farklı düşünüyorum. Quantum Grid gibi iyi bir grid bileşeni hem görsellik hem de kullanım açısından çok fayda sağlayacaktır. DBGrid genelde bir çok ihtiyacı karşılamıyor. Programa yoğunlaşmak yerine oturup değişik durumlar için kod yazmak gerekiyor.
Ancak DBGrid bana yetiyor, çok fazla ekstra durum olmuyor diyenler için gerek yok tabii.
Kolay gelsin.
- Sizi anlıyorum. Buna diyecek bir sözüm yok. Herkes tamamen kişisel fikrini uygulamakta özgür.
- Programcı mertebesine ulaşmış kişiler için,projelerini üretirken, Free olduğu ve/veya ücreti verildiği sürece üçüncü parti bileşenler, zaman ve dolayısıyla para/emek tasarrufu sağlarlar.
- Ama bu durum programcılığı öğrenme aşamasındaki insanların ufkunu sınırladığını şeklinde bir durum meydana getirdiğini düşünüyorum.
- Burada verdiğimiz çözümler, programcıların ufuklarını genişletme amaçlı cevaplardır. O zaman yapılması gereken şey, bileşenlerin içeriklerini bir kütüphanede tutup, insanlar problem yaşadıkça o bileşeni kullan demek gibi bişey olacaktır diyorum.
- Bileşenler elbette faydalıdır. Ama koddan tasarruf edelim derken, Executable üründen ve sistem kaynaklarından ödün vermenin yersiz olduğunu ayrıca savunuyorum.
- Programcı mertebesine ulaşmış kişiler için,projelerini üretirken, Free olduğu ve/veya ücreti verildiği sürece üçüncü parti bileşenler, zaman ve dolayısıyla para/emek tasarrufu sağlarlar.
- Ama bu durum programcılığı öğrenme aşamasındaki insanların ufkunu sınırladığını şeklinde bir durum meydana getirdiğini düşünüyorum.
- Burada verdiğimiz çözümler, programcıların ufuklarını genişletme amaçlı cevaplardır. O zaman yapılması gereken şey, bileşenlerin içeriklerini bir kütüphanede tutup, insanlar problem yaşadıkça o bileşeni kullan demek gibi bişey olacaktır diyorum.
- Bileşenler elbette faydalıdır. Ama koddan tasarruf edelim derken, Executable üründen ve sistem kaynaklarından ödün vermenin yersiz olduğunu ayrıca savunuyorum.
Merhabalar,
Farklı bir yöntemde şöyle olabilir.
Table ve Field alanlar
BankalarTable // bankaların listesini tutan table
Banka
OdemeTable//
Banka
BankaLookUp //Banka ve BankaLookUp alanları aynı özellikte olmalı
BankaLookUp field'in özellikleri
FieldKind--->FkLookup
LookupResultField--->Banka
LookupKeyFields--->Banka
LookupDataSet--->BankalarTable
özelliklerini ayarlayın
Diğer field alanlar..
vs.
ödemeTable'ini bağladığınız DbGridde
İlgili field alanların yanında BankaLookUp field'ini ekleyin. ÖdemeTable'inin BankaField'ini eklemeyin..
DbGrid'de BankaLookUp field'ını cliklediğinizde BankalarTable inin Banka Field'inin listelendiğini göreceksiniz.
Buradan bir banka ismi seçerseniz OdemeTable'i Edit Moduna geçer.. Post ederseniz BankaLookUp field'indaki değer ÖdemeTable'in Banka field'ine yazılır.
Kolay gelsin
Farklı bir yöntemde şöyle olabilir.
Table ve Field alanlar
BankalarTable // bankaların listesini tutan table
Banka
OdemeTable//
Banka
BankaLookUp //Banka ve BankaLookUp alanları aynı özellikte olmalı
BankaLookUp field'in özellikleri
FieldKind--->FkLookup
LookupResultField--->Banka
LookupKeyFields--->Banka
LookupDataSet--->BankalarTable
özelliklerini ayarlayın
Diğer field alanlar..
vs.
ödemeTable'ini bağladığınız DbGridde
İlgili field alanların yanında BankaLookUp field'ini ekleyin. ÖdemeTable'inin BankaField'ini eklemeyin..
DbGrid'de BankaLookUp field'ını cliklediğinizde BankalarTable inin Banka Field'inin listelendiğini göreceksiniz.
Buradan bir banka ismi seçerseniz OdemeTable'i Edit Moduna geçer.. Post ederseniz BankaLookUp field'indaki değer ÖdemeTable'in Banka field'ine yazılır.
Kolay gelsin
saygılar