cxGrid lookupcombobox veritabanı bağlantısı

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
eren2000
Üye
Mesajlar: 126
Kayıt: 26 Haz 2003 06:40
Konum: aksaray
İletişim:

cxGrid lookupcombobox veritabanı bağlantısı

Mesaj gönderen eren2000 »

Arkadaşlar umarım yanlış yere yazmıyorumdur sorunumu. Sorun şu. cxgrid kullanıyorum. cxgrid içinde iki adet lookupcombobox kullanıyorum. Sahalar şunlar 1.saha iladı 2. saha ilçe adı
1.lookupcomboboxın verileri il tableından alıyor. Burda sorun yok. İkinci table ilce tableı. Bu table master table olan il tableına bağlı. Buna göre o ile bağlı ilcenin gelmesi lazım. Ancak 1.lookupcomboboxtan ili seçmeme rağmen ilçeler değişmiyor. Yaptığım işlemleri söyleyeyim. cxgridin properties i lookupcombobox. List source İl tablosu. List field ı iladi. Keyfieldi iladi.
İlçe içinde.
Listsource ilce tablosu. Listfield ilceadi keyfield ilceadi.
immediadte post u true yapıyorum. İli seçince buna bağlı ilçeler gelmiyor.
Fakat klasik dbgrid de yaptımmı master-detail çalışıyor sorun yok. cxgrid de olmuyor.
Şunu denedim. ilin yazılı olduğu lookupcomboboxın oncloseup ına tableil.locate('ILADI',ilinadi,[]) komutuyla o kayda git diyorum. Gidiyor. O zaman ilçeler geliyor. Post edip ikinci kayda geçtiğimde ili seçince bu sefer yukarıdaki yani birinci kayıttaki ilçe siliniyor. İkinci kayıtta yaptığım birinci kaydı da etkiliyor. Bu sorunu nasıl çözerim. Forumda arama yaptım. Ancak benim sorunumu çözecek bir yöntem göremedim. Lüften bu konuda yardımcı olun. İli seçince otomatik olarak detail den gelen bilgiler görünsün ve ikinci kayda geçince etkilemesin. Teşekkürler.
heskin35
Üye
Mesajlar: 132
Kayıt: 30 Haz 2004 09:48

Mesaj gönderen heskin35 »

Devexprees in program files içerisindeki
\Program Files\Developer Express Inc\ExpressEditors Library 5\Help
içerisindeki help dosyasında aramada
dblookupcombobox olarak arama yaptığında gelen anlatımda bu olayı anlatıyordu yanlış hatırlamıyorsam.
eren2000
Üye
Mesajlar: 126
Kayıt: 26 Haz 2003 06:40
Konum: aksaray
İletişim:

malesef help te bulamadım

Mesaj gönderen eren2000 »

Helpde bahsettiklerinin benim sorunumla ilgisi yok. Yalnız bu forumda benzeri bir soruna rastlamıştım. Ama o sorunun çözümü de benim sorunuma çare olmadı. Master-detail yerine query kullandım yine olmadı. Yeni girilen kayda göre önceki girilen kayıtta da değişiklik oluyor. Bir türlü çözemedim.
eren2000
Üye
Mesajlar: 126
Kayıt: 26 Haz 2003 06:40
Konum: aksaray
İletişim:

sorunun kaynağını buldum ama çözümünü bulamadım.

Mesaj gönderen eren2000 »

Sorunun kaynağı belli. cxGrid de iki sahada da lookupcombobox olduğu için seçilenleri tableda gösteriyor. Yani post ediyor, ama cxgrid üzerinde en son seçilen il neyse onun ilçelerini gösteriyor. Ama benim istediğim. Bir önceki kayıtta seçilenler orada kalsın ve bunu kullanıcı görsün. Aşağıda hangi il seçilirse seçilsin bu bir önceki girilen kaydı görüntüsünü etkilemesin. Umarım bu sorun çözülür buna çok ihtiyacım var. Yoksa master-setail table kaldırıp tek lookupcomboboxta bütün ilkodu,iladi ve ilçeadını birlikte yazacağım. İlgilenen herkese teşekkürler.
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

Şöyle bir yöntem işini görecektir:

Master-Detail bağlantıyı kaldır. İlller ve İlçeler tabaloların tamamını göstersin. Aksi halde cxGrid'de tüm ilçeleri göremezsin.

Bilahare LookupComboBox'ların 2 adet eventine şunlara benzer kod yaz:

Kod: Tümünü seç

procedure TForm1.cxGrid1DBTableView1ILCE_SIRA_NOPropertiesInitPopup(
  Sender: TObject);
begin
  if Table3IL_SIRA_NO.AsString = '' then
    Table2.CancelRange
  else
    Table2.SetRange([Table3IL_SIRA_NO.AsInteger], [Table3IL_SIRA_NO.AsInteger]);
end;

procedure TForm1.cxGrid1DBTableView1ILCE_SIRA_NOPropertiesCloseUp(
  Sender: TObject);
begin
  Table2.CancelRange;
end;
İyi çalışmalar.
eren2000
Üye
Mesajlar: 126
Kayıt: 26 Haz 2003 06:40
Konum: aksaray
İletişim:

teşekkürler

Mesaj gönderen eren2000 »

Dediğiniz yöntemle zaten yapmıştım. Ama prof. yöntem böyle olur diye uğraşıyordum. Çok teşekkür ederim ilginiz için.
Cevapla