grid de hücreden çıkarken sorgulama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

grid de hücreden çıkarken sorgulama

Mesaj gönderen bobasturk »

Merhabalar,

Yapmak istediğim grid içerisinde satırın ilk hücresinden çıkarken sorgulama yapmak ve sorgu sonuçlarını gridin diğer hücrelerine yazdırmak. Yani otomatik tamamlama yaptırmak isitiyorum. kullanıcı ilk hücreye adısoyadını yazacak geri kalan sicil vs bilgilerini sorgulama sonucunda prg kendi dolduracak. Bu işi gridin oncolexit olayında yaptırdım fakat haliyle her hücreden çıkarken sorgulama çekiyor ve kişi işlem yapmadan hücreler arasında gezsede uyarı mesajı veriyor çok can sıkıcı oluyor.

uyguladığım kod şöyle;

Kod: Tümünü seç

procedure TFrmRaporBilgi.JvDBGrid2ColExit(Sender: TObject);
begin
  dm1.uzmbulibqry.close;
  dm1.uzmbulibqry.SQL.Clear;
  dm1.uzmbulibqry.SQL.Add('select*from PERSONEL');
  dm1.uzmbulibqry.SQL.Add('Where ADISOYADI ='''+jvdbgrid2.DataSource.DataSet.fieldbyname('ADISOYADI').AsString+'''');
  dm1.uzmbulibqry.Open;

  if dm1.UzmBulIBQry.IsEmpty then
  begin
    application.MessageBox('Böyle Bir Personel Kayıtlarda Yok. Kayıtları Kontrol Ediniz',
                            'Personel Sorgu',mb_ok+mb_iconwarning);
  end
  else
  begin
      DM1.OlayUzmIBDSet.Edit;
      jvdbgrid2.DataSource.DataSet.fieldbyname('SICILI').AsInteger:=
            dm1.UzmBulIBQry.fieldbyname('SICIL').asinteger;
      jvdbgrid2.DataSource.DataSet.fieldbyname('ADISOYADI').AsString:=
            DM1.UzmBulIBQry.fieldbyname('ADISOYADI').AsString;
      jvdbgrid2.DataSource.DataSet.fieldbyname('RUTBESI').AsString:=
            dm1.UzmBulIBQry.fieldbyname('RUTBESI').AsString;
      jvdbgrid2.DataSource.DataSet.fieldbyname('UZMNO').AsString:=
            DM1.UzmBulIBQry.fieldbyname('UZMANLIKNO').AsString;
      jvdbgrid2.DataSource.DataSet.fieldbyname('RUTBEKODU').AsInteger:=
            DM1.UzmBulIBQry.fieldbyname('RUTBEKOD').AsInteger;
      dm1.OlayUzmIBDSet.Post;
  end;
end;
bu sorgunun sadece ilk hücrede çalışmasını nasıl sağlayabiliriz. gridin diğer eventlerinde denedim ama sonuç alamadım veya tam ingilizceye ve özelliklerine vakıf olamadığımdan tutturamadım.

teşekkür ve saygı ile kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
selectedcolumnindex tarzında bir fonksiyon olması lazım.
şuan delphi olmadığı için bakamıyorum.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

Merhaba,

@aslangeri ustam verdiğin ip ucu doğrultusunda aşağıdaki gibi uygulamamı düzenledim ve şimdilik istediğim sonucu veriyor yani birinci hücreden çıkışta sorgu çalışıyor diğerlerinde işlem normal yolu ile devam ediyor. Uygulama doğruluğu açısından inceler ve yorum yaparsanız sevinirim.

Kod: Tümünü seç

procedure TFrmRaporBilgi.JvDBGrid2ColExit(Sender: TObject);
begin
  if jvdbgrid2.Columns.Grid.SelectedIndex=0 then
  begin
    dm1.uzmbulibqry.close;
    dm1.uzmbulibqry.SQL.Clear;
    dm1.uzmbulibqry.SQL.Add('select*from PERSONEL');
    dm1.uzmbulibqry.SQL.Add('Where ADISOYADI ='''+jvdbgrid2.DataSource.DataSet.fieldbyname('ADISOYADI').AsString+'''');
    dm1.uzmbulibqry.Open;

        if dm1.UzmBulIBQry.IsEmpty then
        begin
          application.MessageBox('Böyle Bir Personel Kayıtlarda Yok. Kayıtları Kontrol Ediniz',
                            'Personel Sorgu',mb_ok+mb_iconwarning);
        end
        else
        begin
          DM1.OlayUzmIBDSet.Edit;
          jvdbgrid2.DataSource.DataSet.fieldbyname('SICILI').AsInteger:=
                            dm1.UzmBulIBQry.fieldbyname('SICIL').asinteger;
          jvdbgrid2.DataSource.DataSet.fieldbyname('ADISOYADI').AsString:=
                            DM1.UzmBulIBQry.fieldbyname('ADISOYADI').AsString;
          jvdbgrid2.DataSource.DataSet.fieldbyname('RUTBESI').AsString:=
                            dm1.UzmBulIBQry.fieldbyname('RUTBESI').AsString;
          jvdbgrid2.DataSource.DataSet.fieldbyname('UZMNO').AsString:=
                            DM1.UzmBulIBQry.fieldbyname('UZMANLIKNO').AsString;
          jvdbgrid2.DataSource.DataSet.fieldbyname('RUTBEKODU').AsInteger:=
                            DM1.UzmBulIBQry.fieldbyname('RUTBEKOD').AsInteger;
          dm1.OlayUzmIBDSet.Post;
       end;
  end;
end;
Teşekkür ve saygı ile kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
ikinci kes aynı sütündan geçtiğin zaman tekrar arama işlemi yapacaktır büyük ihtimalle.

Kod: Tümünü seç

selectedindex=0
dan sonra

Kod: Tümünü seç

DM1.OlayUzmIBDSet
in satet inin insert /append olup olmadığını kontrol et.
yani vatandaş önceden kaydetmiş kayıt üzerinde gezinirkende arama işlemini yapmasın.
kolay gelisn.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

Merhaba, A.S.,

Tamamdır ustam teşekkür ve saygı ile kolay gelsin.
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Cevapla