İşin mantıgında bir edit ve bir dbgrid var.bunların birlesimi bir superbilesen aslında yaptıgım. Kendi programlarımda yaptıgım testlerde bir anormallik ile karsılasmadım, cozemedigim bir kac nokta haricinde %99 amacıma ulastım.
Hatta Jedi kutuphanesinde bulunan DbUltimGrid in EditControls ozelligi ile bu LookupComboları DbGrid icerisine gömerek daha onceden herbir alan icin arama formları tasarladıgım programımı da bayagı pratiklestirdim.
download adresi: http://www.delphiturkiye.com/dfiles/GrEditPak.zip
zip paketi icerisine su an icin yeterli acıklamayı ekledim.
buraya da bir kopyasını ilave ediyorum
su an icin aklıma gelenler bunlar inceleyen arkadaslar buradan geribildirim de bulunurlarsa tekrar bakarım, umarım kullananların benim gibi isini gorurTarih:13.06.2005
Versiyon: 1.0.0.1
Author: Gökmen Kımırtı
Interbase/Firebird icin Lookup kontroller seti
GrMRUEdit,GrLookupEdit ve GrLookupCombo
Bu bilesenler ile ilgili guncellemeler, degisiklikler, bug bildirimleri
Delphi Turkiye Forumundan yapılacaktır.
Makaleler ve İpucu bölümünde "Yeni Bilesen GrEdit Paketi (Firebird icin)"
baslıgında takip edilecektir.
Kullanımı:
Bilesenlerin kurulabilmesi icin IBX bilesen setinin kurulu olması gerekmektedir.
Tum bilesenlerde Database ve Transaction özellikleri setlenir,
SearchSQL alanına arama yapılacak SQL cumlecigi yazılır.
Bir SP icerisine arama kodları yazılarak özellestirilmis bir
arama da kullanılabilir.
Tek sabit kural aranan alanın ilk alan olması ,
GrLookupEdit ve GrLookupCombo icin anahtar alanda olacagı icin,
ikinci sırada anahtar alan yazılır.
Örnek SQL soyle olabilir:
'select arananalan,keyalan from aramayapilantablo where arananalan like :Searched||'%' order by arananalan'
Bilesenler tek parametre ile calısacak sekilde hazırlandı. Eger ek bir kriter daha
kullanılacaksa sql olusturulurken bu kriteri string olarak eklemek gerekmekte
'select arananalan,keyalan from aramayapilantablo where arananalan like :Searched||'%' and baskaalan>herhangibirdeger order by arananalan'
Sadece GrLookupEdit bileseninin Datasource ve DataFiels özellikleri yok,
yani DbAware degil. Arama formlarında kullanılmak uzere tasarlandı.
GrMRUEdit ve GrLookupCombo da ise guncellenecek alanlar Datasource ve DataField özellikleri
ile bildirilir.
Örnek Kullanım alanlarını su sekilde izah edebilirim:
GrMRUEdit:
Text tipinde bir alan var ama buraya zaman zaman aynı bilgiler girilebilmekte
Bu alanı Lookup alan da yapamıyorsunuz, cunku icine girilen degerler,
degisebilmekte de . Bilesene yazacagınız,
select first 10 s.temsilci_adsoyad from servis s where s.temsilci_adsoyad like :Searched||'%' group by s.temsilci_adsoyad order by s.temsilci_adsoyad
gibi bir sql ile tum kayıtlarda o alan icin bir gruplama yapılıp sıralanarak
ilk 10 kayıtı bir combo icinde gosterebiliyorsunuz.
Access kullananlar bilir accessteki tasarlanan formlarda lookupcombolar boyle bir
özellik vardı, yada excel de. Datasource haliyle uzerinde calısılan
tabloya baglı Datafield ise bu text alanın kendisine setlenir.
GrLookupEdit:
Arama yapılacak formlarda lookup alanlar icin birer LookupCombo kullanırız,
aranacak degeri listeden secip arama isleminiş yapabilmek icin.
Bu bilesenin bir Datasource a baglantısı olması dusunulemez,
Arama sonucu LookupKeyField public özelligi ile secilen kaıtın anahtar
degerine erisilir.
GrLookupCombo:
Bilesenin asıl tasarlanma amacı zaten bunu yapmaktı. Kayıt girilen
bir form uzerinde yada grid uzerinde bir acılırkutu sayesinde kayıt
girilmesine olanak saglamakta ayrıca kayıtlar uzerinde gezinti yaparken
LookupSQL özelligine yazılan select gosterilecekalan from tablomuz where id=:id
seklinde bir SQL cumlesi ile Lookup join yapan bir bilesen.
İnternet üzerinden sadece istenildigi kadar veriyi cekmeye imkan tanıdıgı icin
diger klasik combolara nazaran buyuk bir hız farkı var.
Not: Eklenmesi guzel olacak özellikleri de bu baslık altından devam edebilirsiniz.Download adresi sabit olup guncelleme yapılırsa buradan bildirilerek zip dosyası da guncellenecek.
Herkese iyi calışamar...