Table1.FilterOptions:=[foCaseInsensitive];
Table1.Filter:='[Adi]='+#39+Edit1.text+'*'+#39;
if Edit1.text='' then Table1.Filtered:=False
else
Table1.Filtered:=True;
Bunların hepsini nasıl filtreliyebilirim??
Birde aynı şekilde 1 tane RadioGroup var o da şöyle bunu nasıl yapabilirim? tümünü seçtiğimde tüm kayıtları listeleyecek,Cep seçtiğimde Cep, Ev seçtiğimde Ev ve son olarak İş seçtiğimde İşi listeleyecek...
En son Nomercy tarafından 15 Oca 2015 08:21 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Filter kısmını sql sorgusunun where den sonraki kısmı gibi düşünebilirsiniz.
Aslında tam da öyle çalışıyor. Select kısmı tabloda hazır.. şartlar kısmını Filter özelliğine giriyorsunuz.
Bir fonksiyonda tüm seçenekleri ekleyip String olarak filter özelliğine dönerek çok verimli bir şekilde kullanabilirsiniz.
Size çok eski bir programımdan kısa bir alıntı vereyim. Delphicesi size kalmış.
warder yazdı:Filter kısmını sql sorgusunun where den sonraki kısmı gibi düşünebilirsiniz.
Aslında tam da öyle çalışıyor. Select kısmı tabloda hazır.. şartlar kısmını Filter özelliğine giriyorsunuz.
Bir fonksiyonda tüm seçenekleri ekleyip String olarak filter özelliğine dönerek çok verimli bir şekilde kullanabilirsiniz.
Size çok eski bir programımdan kısa bir alıntı vereyim. Delphicesi size kalmış.
sql sorgu olarak filtrenizi nasıl yazarsınız.
select * from tablo where adi = isim and soyadi = soyisim and cep = 123456
şeklinde gider..
programınızda where den sonraki kısmı filter özelliğinde kullanacaksınız. hepsi bu.
Delphide sizin yazdığınıza göre...
Table1.Filter:='[Adi]='+#39+Edit1.text+'*'+#39+' and [Soyadi]='+#39+Edit2.text+'*'+#39+' and [Tel]='+#39+Edit32.text+'*'+#39;
gibi bir durum oluşacak sanırım...
... Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!
Mustafa Kemal Atatürk...
ben genelde if şartlarını kullanıyorum, biraz uzun gibi oluyor kodlama ama yinede istediğim gibi çılışıyor. örneklersek; eğer (if) radio grupta şu işaretliyse şunları sorgula bu işaretliyse bu sorguyu çalıştır gibi checkbox veya radio grup sayıları kadar kodları aynı şekilde yazıyorum, sadece sorgulama alanları değişiyor. basit ve uzun kod sanırım ama işe yarıyor.
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.
Eşittir yerine like kullandım. Böylelikle içinde geçenleri bulabilirsin. Bu örnekte Radiobutton isimlerini rd ile başlattım. % işaretleri like komutu için gerekli.
procedure TForm1.Button1Click(Sender: TObject);
var FTxt, Val: string;
begin
Table1.Filtered := False;
FTxt := '';
Val := '%' + Edit1.Text + '%'; // % işaretlerini * gibi düşünebilirsin.
if rdTumu.Checked then FTxt := '[Adi] like ''' + Val + ''' or [Soyadi] like ''' + Val +
''' or [Cep] like ''' + Val + ''' or [Is] like ''' + Val +
''' or [Ev] like ''' + Val + '''';
if rdAdi.Checked then FTxt := '[Adi] like ''' + Val + '''';
if rdSoyadi.Checked then FTxt := '[Soyadi] like ''' + Val + '''';
if rdCep.Checked then FTxt := '[Cep] like ''' + Val + '''';
if rdIs.Checked then FTxt := '[Is] like ''' + Val + '''';
if rdEv.Checked then FTxt := '[Ev] like ''' + Val + '''';
Table1.Filter := FTxt;
Table1.Filtered := True;
end;