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.
Cevapla
#3
(05-11-2016, Saat: 10:31)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: 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.

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.
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ı: 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.
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ı:
(05-11-2016, Saat: 14:41)egeven Adlı Kullanıcıdan Alıntı: 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.
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


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  AdoQuery ile ilgili bir sorun. (Çözüldü) Bay_Y 4 118 17-04-2024, Saat: 10:58
Son Yorum: Bay_Y
  Klasör İçindeki Resimleri Gösterme sadoal351 5 365 13-04-2024, Saat: 22:40
Son Yorum: sadoal351
  DBGrid Detay Gösterilmesi. OZCANK 19 9.317 05-04-2024, Saat: 00:48
Son Yorum: Pimapen_Nuri
  DbGrid'de Seçili Satırların Fast Reportta Raporlanması [ÇÖZÜLDÜ] bünyamin68 4 715 17-12-2023, Saat: 15:08
Son Yorum: bünyamin68
  DBGRID Otomatik Sıra No Alanı [ÇÖZÜLDÜ] bünyamin68 2 425 18-10-2023, Saat: 21:00
Son Yorum: bünyamin68



Konuyu Okuyanlar: 1 Ziyaretçi