Arkadaşlar merhaba şöyle bir sorunum var. departman,çalışan ve bunların id lerinin tutulduğu aynı zamanda kullanıcı adı ve şifreyi tutan bir yetki tablom var. Formun üzerideki tCombobox u bir prosedür yardımıyla çekiyorum. Departman ve kullanıcı combomlarıma.
ZQ.SQL.Text := 'SELECT ID AS "LB_ID",DEPARTMAN AS "COB_AD" FROM departman ORDER BY DEPARTMAN'; // Frm_Ana.CoBDOLDUR(COB_Departman, LB_Departman)
ZQ.SQL.Text := 'SELECT ID AS "LB_ID",KULLANICI AS "COB_AD" FROM kullanici ORDER BY KULLANICI';// Frm_Ana.CoBDOLDUR(COB_Kullanici, LB_Kullanici)
Sorum şu: Departman seçtiğimde o departmana ait kullanıcıların kullanıcı combosunda listelenmesini istiyorum. Dblookcombobox araştırdım ama pek bir yere varamadım açıkcası. Onunla departmanı çeksem bile kullanıcıları çekemiyorum. Ya da farklı bir yöntem bilen arkadaşlar yardımcı olabilir mi?
Şimdiden Teşekkürler =)
delphi ilişkili combobox sorunu
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- ozlemsaltan
- Üye
- Mesajlar: 38
- Kayıt: 01 Nis 2014 05:57
delphi ilişkili combobox sorunu
Çaylak yazılımcı:)
Re: delphi ilişkili combobox sorunu
Selam;
dblookupcombobox larınızı ilgili query ler ile ilişkilendirip datasource, keyfield ve datafield ayarlarını yaptıktan sonra, herhangi bir butona bastığınızda veya dblookupcombobox oncloseup olayında query ile sorgularınızı yazıp close open yaptıktan sonra, dblookupcombobox.keyvalue:=ZQCOB_AD.asstring şeklinde atama yaparsanız sorun yaşamazsınız.
dblookupcombobox larınızı ilgili query ler ile ilişkilendirip datasource, keyfield ve datafield ayarlarını yaptıktan sonra, herhangi bir butona bastığınızda veya dblookupcombobox oncloseup olayında query ile sorgularınızı yazıp close open yaptıktan sonra, dblookupcombobox.keyvalue:=ZQCOB_AD.asstring şeklinde atama yaparsanız sorun yaşamazsınız.
- ozlemsaltan
- Üye
- Mesajlar: 38
- Kayıt: 01 Nis 2014 05:57
Re: delphi ilişkili combobox sorunu
Selam; Bu şekilde sorunumu seçemedik başka çözebileceğim bir yöntem var mıdır acaba? sql ile falan? Teşekkürler
Çaylak yazılımcı:)
Re: delphi ilişkili combobox sorunu
Klasik yöntem işe yarayabilir.
....
KullaniciTablo.First();
while KullaniciTablo.Eof
ComboKullanici.Item.Add(KullaniciTablo.Field("Kullanici").AsString);
KullaniciTablo.Next();
....
....
KullaniciTablo.First();
while KullaniciTablo.Eof
ComboKullanici.Item.Add(KullaniciTablo.Field("Kullanici").AsString);
KullaniciTablo.Next();
....
... Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!
Mustafa Kemal Atatürk...
Mustafa Kemal Atatürk...
Re: delphi ilişkili combobox sorunu
kullanıcı tablosunda DEPARTMAN veya DEPARTMAN_ID gibi bir alan olması gerekmez mi sql join falan yazsak.
siz bu sorgularla kullanıcının hangi departmanda olduğunu nasıl anlıyorsunuz veya nasıl anlaşılabileceğini umuyorsunuz.
1. kullanıcı tablosuna bir adet DEPARTMAN adında field oluşturun.
2. ikinci sorgunuzu şöyle değiştirin :
ZQ.SQL.Text := 'SELECT ID AS "LB_ID",KULLANICI AS "COB_AD" FROM kullanici where DEPARTMAN like
EP ORDER BY KULLANICI';
ZQ.SQL.parameters.parambyname('DEP'):='%' + combobox1.text +'%';
3. kullanıcıların listeleneceği comboboxu da dblookupcombobox seçin ve listsource kısmına ilgili datasource'i (sorguyu çalıştırdığınız ZQ'nun datasource'u) bağlayın. listfield kısmına kullanıcı fieldi'ini, keyfield kısmına da yine kullanıcı fieldiini seçin.
YA DA sadece combobox için while not zq.eof do ile listeye ekleyin. (combobox.add(zq.fields.fieldbayname('kullanıcı'))) gibi.
siz bu sorgularla kullanıcının hangi departmanda olduğunu nasıl anlıyorsunuz veya nasıl anlaşılabileceğini umuyorsunuz.
1. kullanıcı tablosuna bir adet DEPARTMAN adında field oluşturun.
2. ikinci sorgunuzu şöyle değiştirin :
ZQ.SQL.Text := 'SELECT ID AS "LB_ID",KULLANICI AS "COB_AD" FROM kullanici where DEPARTMAN like

ZQ.SQL.parameters.parambyname('DEP'):='%' + combobox1.text +'%';
3. kullanıcıların listeleneceği comboboxu da dblookupcombobox seçin ve listsource kısmına ilgili datasource'i (sorguyu çalıştırdığınız ZQ'nun datasource'u) bağlayın. listfield kısmına kullanıcı fieldi'ini, keyfield kısmına da yine kullanıcı fieldiini seçin.
YA DA sadece combobox için while not zq.eof do ile listeye ekleyin. (combobox.add(zq.fields.fieldbayname('kullanıcı'))) gibi.