merhabalar ben table daki kayıtlarda tarih malzeme ve plakaya göre filtreleme yapmak istiyorum
ama yapamıyorum iki tarih arası filtreleme yapıyorum ama mesela iki tarih arasındaki malzemeyi
filrelemeye çalıştığım zaman olmuyor aşağıdaki kodlara göre yapınca
tek bir kayıt gösteriyor benim istediğim arama kriterlerini girince o kriterlere uyan tüm kayıtları görmek
ve quick raportta göstermek
procedure TForm1.SpeedButton1Click(Sender: TObject);
var
ara:Boolean;
begin
ara:=Table1.Locate('PLAKA;mlzadi',varArrayOf([Edit1.Text,Edit2.Text]),[]);
if not ara Then
ShowMessage('Kayıt Bulunamadı');
end;
procedure TForm1.DateTimePicker1Change(Sender: TObject);
begin
Table1.IndexName:='IdxTrh';
Table1.SetRange([datetimepicker1.date],[datetimepicker2.date]);//TARİH ARALIĞI
Table1.ApplyRange;//uygula
iki tarih arasını bu kodla filtreleye biliyorum ama aynı şekilde malzeme , plaka da filtrelemeke isityorum
procedure TForm1.DateTimePicker1Change(Sender: TObject);
begin
Table1.IndexName:='IdxTrh';
Table1.SetRange([datetimepicker1.date],[datetimepicker2.date]);//TARİH ARALIĞI
Table1.ApplyRange;//uygula
end;
yardımcı olursanız sevinirim şimdiden teşekkürler
table da filtreleme yapmak (ÇÖZÜLDÜ)
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
table da filtreleme yapmak (ÇÖZÜLDÜ)
En son OZAY tarafından 21 Ara 2014 10:58 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Re: table da filtreleme yapmak yardım
Hangi veritabanını kullanıyorsun bilmiyorum ama query kullanman gerekiyor. Table nesnesi böyle konularda yetersiz kalır.
Re: table da filtreleme yapmak yardım
data_form.siparisdbf.Filter :=''; // filitreleri temizle
yukarıdaki gibi istediğin kadar filitre ekleye bilirsin.
dikkat etmeniz gereken filitre yaptıgınız alan ile filitrelenecek alan aynı özellikte olmalı
yani S_BAYI_ADI tablonda string alan olmalıki bayiler.text alanındaki bilgiye göre filitre yapabilsin
QuotedStr filitre edilecek alanı 'xxxxx' tırnak içine almak içindir.
Kod: Tümünü seç
// bayiler text alanında bilgi varsa ve siparis alanında bilgi varsa filitreyi başlat buradaki büyük harfle yazılan tüm alanlar S_BAYI_ADI gibi tabloyu oluştururken kullandığın field adı
if (bayiler.Text <> '') and (kf_siparis_no.Text <>'') then data_form.siparisdbf.Filter := 'S_BAYI_ADI=' + QuotedStr(bayiler.Text) + ' AND ' + 'S_SIPARIS_NO = '+ QuotedStr(kf_siparis_no.Text);
if (bayiler.Text <> '') and (kf_siparis_no.Text ='') then data_form.siparisdbf.Filter := 'S_BAYI_ADI=' + QuotedStr(bayiler.Text);
if (bayiler.Text = '') and (kf_siparis_no.Text <>'') then data_form.siparisdbf.Filter := 'S_SIPARIS_NO = '+ QuotedStr(kf_siparis_no.Text);
if (bayiler.Text = '') and (kf_siparis_no.Text = '') and (strtoint(kf_imalat.text) > 0) then data_form.siparisdbf.Filter :='S_IMALAT_NO='+ QuotedStr(kf_imalat.Text);
data_form.siparisdbf.Filtered := true;
dikkat etmeniz gereken filitre yaptıgınız alan ile filitrelenecek alan aynı özellikte olmalı
yani S_BAYI_ADI tablonda string alan olmalıki bayiler.text alanındaki bilgiye göre filitre yapabilsin
QuotedStr filitre edilecek alanı 'xxxxx' tırnak içine almak içindir.
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Re: table da filtreleme yapmak yardım
verdiğiniz bilgiler için teşekkür ederim veri tabanı olarak database kullanıyorum query hiç kullanmadım delphide yeniyim query uygulamalarını öğrenip deniycem
Re: table da filtreleme yapmak yardım
Database ile filtreleme birden fazla alanda yapmak için aşağıdaki kodu kullandım
şu anda SQL ve Access veri tabanlarıyla yapıyorum teşekkür ederim hepinize
şu anda SQL ve Access veri tabanlarıyla yapıyorum teşekkür ederim hepinize
Kod: Tümünü seç
if (dblookupcombobox1.Text<>'') and(dblookupcombobox2.Text<>'') and (dblookupcombobox3.Text<>'') then
begin
DM.Table1.Filter:='[malzeme]=' + QuotedStr(dblookupComboBox1.Text)+ ' and [plaka]=' + QuotedStr(dblookupComboBox2.Text)+ ' and [firmaadi]=' + QuotedStr (dblookupComboBox3.Text) ;
DM.Table1.Filtered:=true;
end;