Tüm Platformlar için Hızlı Uygulama Geliştirme Kitap Yayın Süreci
Kitap gözden geçirilmek üzere BTG (Bilgi ve Teknoloji Grubu) 'na gönderildi. 05.10.2018-14:10
BTG (Bilgi ve Teknoloji Grubu) tarafından iki sayfalık bir reklam tasarımı bekleniyor. 08.10.2018 - 15:30

Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 2/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
adoquery dbgrid içindeki datalara if else ile kontrol ettirmek
#1
Merhaba arkadaşlar,

Ben dbgrid içerisinde anlık görüntülenen kayıt içeriside, örnek veriyorum dbgrid 3 kolonunda görüntülenen 3 veya 4 satırında, birde if ile veri kontrolü yaptırmak istiyorum bunu nasıl yapabilirim aşağıdaki kodda ki hata nedir acaba ne değer verirsem vereyim else teki kodlar çalışmıyor sürekli yazılı plaka var uyarısı veriyor.


var
    plaka : string;
begin
    plaka := '34 JG 8954';

  dbGrid1.DataSource.DataSet.First;

while not dbGrid1.DataSource.DataSet.Eof do
begin

      if  (dbgrid1.Fields[6].Text=plaka) then
      begin

          ShowMessage('Yazılan plaka görevde. Lütfen başka plaka seçin'); Abort;

      end
      else
      begin

        ShowMessage('Tamamdır');

      end;

      dbGrid1.DataSource.DataSet.Next;
end;   
Cevapla
#2
Merhaba,
Kullanmış olduğunuz aşağıdaki kod satırında plaka bulunduğu anda döngüden çıkmaktadır. Bu durumda method da sonlanacaktır.

 ShowMessage('Yazılan plaka görevde. Lütfen başka plaka seçin'); Abort;

Doğal olarak sonraki DBGrid satırlarına bakmamış olacaktır. DBGrid'de yer alan hedef plakayı 2. satıra alın. 1. Satırda farklı bir plaka olsun. 
Bu durumda ilk satırda else bölümü ikinci satırda ise then bölümü çalışacaktır.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#3
(05-11-2016, Saat: 10:31)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba,
Kullanmış olduğunuz aşağıdaki kod satırında plaka bulunduğu anda döngüden çıkmaktadır. Bu durumda method da sonlanacaktır.

 ShowMessage('Yazılan plaka görevde. Lütfen başka plaka seçin'); Abort;

Doğal olarak sonraki DBGrid satırlarına bakmamış olacaktır. DBGrid'de yer alan hedef plakayı 2. satıra alın. 1. Satırda farklı bir plaka olsun. 
Bu durumda ilk satırda else bölümü ikinci satırda ise then bölümü çalışacaktır.

hocam öncelikle teşekkürler fakat söylediğiz gibi yaptım ama halen daha aynı uyarı geliyor bu arada bu plaka dbgrid te olmamasına rağmen plaka görevde uyarısı geliyor yardımcı olurmsunuz ?
Cevapla
#4
Merhaba,
Projeniz özel değilse buradan paylaşın bakalım.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#5
merhaba,

if  (dbgrid1.Fields[6].Text=plaka) then

bölümünü

if  (dataset_adi.FieldByname('plaka_kolonu').AsString=plaka) then 

bu şekilde yapıp deneyebilir misin 

döngü dataset üzerine yapılmış değeri de ordan kontrol etmek daha sağlıklı olur, bazı gridlerde gridmode gibi özellikler var bunlar aktif değilse bağlı dataset hangi veri üzerinde olursa olsun grid üstünde seçili satır değişmiyor, ayrıca debug modunda veya showmessage ile karşılaştıran değerleri kontrol edip daha fazla bilgi alabilirsin.
Cevapla
#6
(05-11-2016, Saat: 14:41)egeven Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Olmerhaba,

if  (dbgrid1.Fields[6].Text=plaka) then

bölümünü

if  (dataset_adi.FieldByname('plaka_kolonu').AsString=plaka) then 

bu şekilde yapıp deneyebilir misin 

döngü dataset üzerine yapılmış değeri de ordan kontrol etmek daha sağlıklı olur, bazı gridlerde gridmode gibi özellikler var bunlar aktif değilse bağlı dataset hangi veri üzerinde olursa olsun grid üstünde seçili satır değişmiyor, ayrıca debug modunda veya showmessage ile karşılaştıran değerleri kontrol edip daha fazla bilgi alabilirsin.
Oncelikle tesekkurler hocam, rica etsem kodlari toparlayip yazarmisiniz ayni hata donuyirda halen daha.
Cevapla
#7
(05-11-2016, Saat: 15:29)emrekilinc1984 Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(05-11-2016, Saat: 14:41)egeven Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Olmerhaba,

if  (dbgrid1.Fields[6].Text=plaka) then

bölümünü

if  (dataset_adi.FieldByname('plaka_kolonu').AsString=plaka) then 

bu şekilde yapıp deneyebilir misin 

döngü dataset üzerine yapılmış değeri de ordan kontrol etmek daha sağlıklı olur, bazı gridlerde gridmode gibi özellikler var bunlar aktif değilse bağlı dataset hangi veri üzerinde olursa olsun grid üstünde seçili satır değişmiyor, ayrıca debug modunda veya showmessage ile karşılaştıran değerleri kontrol edip daha fazla bilgi alabilirsin.
Oncelikle tesekkurler hocam, rica etsem kodlari toparlayip yazarmisiniz ayni hata donuyirda halen daha.

Merhaba arkadaşlar ben problemim bu şekilde çözdüm belki ihtiyacı olan arkadaşlar olur diye kodları aşağıda veriyorum.


var
 mesaj: integer;
begin

 module.adoAracTakip.First;

 while not module.adoAracTakip.Eof do
 begin

     if (module.adoAracTakip.FieldByName('arac_plaka').AsString=cbPlaka.Text) and (module.adoAracTakip.FieldByName('arac_durumu').AsString='Araç Görevde') then
     begin

         mesaj:=Application.MessageBox('Bu Araç Görevde. Lütfen Başka Araç Seçin!','Uyarı',mb_OK+MB_ICONWARNING);

     end
   else
  begin

 end;

           module.adoAracTakip.Next;

 end;
end;
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Dbgrid mouse whell aşağı yukarı gezinme cinarbil 6 166 02-10-2018, Saat: 13:37
Son Yorum: cinarbil
  Saat başı kontrol ? Bay_Y 23 613 23-08-2018, Saat: 00:37
Son Yorum: SamerAssil
  dbgrid de sağ sol tuşlarını kullanma erdogan 6 493 03-04-2018, Saat: 18:40
Son Yorum: erdogan
  DLL içindeki Fonksiyonları Listeleme dicle_gsm 2 409 05-02-2018, Saat: 02:37
Son Yorum: dicle_gsm
  DBGrid Columns Otomatik Boyutlandırma Halil Han Badem 7 762 23-01-2018, Saat: 10:00
Son Yorum: Cyber



Konuyu Okuyanlar: 1 Ziyaretçi