bir alanda iki şarta göre filtreleme yapma?acil..

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
serkan
Üye
Mesajlar: 666
Kayıt: 10 Tem 2003 12:08
Konum: bursa

bir alanda iki şarta göre filtreleme yapma?acil..

Mesaj gönderen serkan »

selam arkadaşlar.tablomda sonuc adında bir field var.bu alana eğer iş sonuçlanmışsa 'OK' Devam ediyorsa 'X' stringi aktarılıyor.sonuçlanan işleri
ve devam eden işleri ayrı ayrı filreleme yapabiliyorum.benim isteğim radiobutton a tıklandığında sonuç alanında hem 'OK' Hemde 'X' yazan işleri dbgridde listelemek.sql kullanamam çünkü başka yerlerle bağlantılı işlemler var uzun hikaye yani.mutlaka filtreleme ile yapmam lazım.yardım pls?
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Tablonun filter ozelligine
Sonuc='OK' or Sonuc='X'
yazmaniz yeterli...
serkan
Üye
Mesajlar: 666
Kayıt: 10 Tem 2003 12:08
Konum: bursa

Mesaj gönderen serkan »

hocam dediklerinizi yaptım daha öncede yapmıştım.kod ve verdiği hata altta yazılı.sonuc adında bir ytanım bulamamış ama var .
procedure TForm2.suiRadioButton3Click(Sender: TObject);
begin
table1.Filter:=Sonuc='OK' or Sonuc='X' ;
Table1.Filtered:=true;

end;

[Error] Unit2.pas(277): Undeclared identifier: 'Sonuc'
Kullanıcı avatarı
undefined
Moderator
Mesajlar: 565
Kayıt: 06 Eki 2003 12:01
Konum: Bursa
İletişim:

Mesaj gönderen undefined »

Table1.Filtered özelliğini oject inspectorden true yap
sonra object inspectordun events sayfasından onfilterrecord'a çift tıkla.
Ve şu kodları yaz :

Kod: Tümünü seç

procedure TForm1.Table1FilterRecord(DataSet: TDataSet;
  var Accept: Boolean);
begin
   if (dataset['sonuc'] = 'Ok') or (dataset['sonuc'] = 'x') then
   begin
     accept := true;
   end else
   begin
     accept := false
   end;
end;
Büyük küçük harf uyumuna dikkat et.
Kolay gele...
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

serkan yazdı:hocam dediklerinizi yaptım daha öncede yapmıştım.kod ve verdiği hata altta yazılı.sonuc adında bir ytanım bulamamış ama var .
procedure TForm2.suiRadioButton3Click(Sender: TObject);
begin
table1.Filter:=Sonuc='OK' or Sonuc='X' ;
Table1.Filtered:=true;

end;

[Error] Unit2.pas(277): Undeclared identifier: 'Sonuc'
Aslinda yaptiginiz tam olarak benim dediğim değil. Şöyle ki ancak tablonun filter ozelligine objeck inspector'den
Sonuc='OK' or Sonuc='X'
yazarsaniz olur. Eger Filter ozelligine kod ile atama yapmaya calisirsaniz yaptiginiz atama zaten yanlis oluyor cunku hatada da dedği gibi sonuc isimli bir degisken araniyor cunku tirnak icinde olmadigi icin bunu bir string ifade olarak degil bir degisken olarak algilamakta.
Eger kod ile atama yapacaksaniz. soyle olabilir ancak...

Kod: Tümünü seç

table1.Filter:='Sonuc='+#39+'OK'+#39+' or Sonuc='+#39+'X'+#39;
Cunku Table.Filter ozelligi string tipinde bir ozellik oysa yaptiginiz atamada eşitligin sağ tarafi string bir tip oluşturamiyor....

Kolay gelsin....
Cevapla