Merhaba; DBGrid, Table, DB olarakta paradox kullanıyorum.
DB'de iki adet filter yaptırmak istiyorum 1. tarihe göre 2. isim'e göre tarihe göre filterde sorun yok.
Fakat tarih filter'İ sürekli olarak aktif isim'e göre filter yaptığımda tarihe göre yapılan filteri bozuluyor DB'deki tüm kayıtlar ortaya çıkıyor
Örnek: 06.11.2012 filter aktif iken ikinci olarak isim'e göre ama yapıldığında 06.11.2012 tarihinde kayıtlardaki filter DBGrid ekrana gelsin DBGgid'deki tüm kayıtlar ekranına gelmesin...
Table filter
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Table filter
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
-
- Üye
- Mesajlar: 25
- Kayıt: 26 Nis 2011 03:18
Re: Table filter
Filtre için kullandığın kodu verirsen yardımcı olmaya çalışalım
kodu görmeden bir tavsiye filtreyi değişkende tut
değişkenleri peşpeşe ekle ama filtreleme olaylarını querynin ki gibi hazır filtreleme alanı yerine sorguyla yaparsan hata payı daha aşşağı iner ve çok daha hızlı işlem yapar az kayıtta sıkıntı çıkarmaz ama kayıt sayısı 20.000 gibi bir değere yaklaşırsa filtreleme yavaşlar sorgu en iyisi.
kodu görmeden bir tavsiye filtreyi değişkende tut
değişkenleri peşpeşe ekle ama filtreleme olaylarını querynin ki gibi hazır filtreleme alanı yerine sorguyla yaparsan hata payı daha aşşağı iner ve çok daha hızlı işlem yapar az kayıtta sıkıntı çıkarmaz ama kayıt sayısı 20.000 gibi bir değere yaklaşırsa filtreleme yavaşlar sorgu en iyisi.
Re: Table filter
İlginizden dolayı teşekkürler.
Özel bir kod yazmadım form sayfası açılınca MaskEdit1 o günün tarihine göre DBGridi otomatik olarak filter yapıyor
İkinci olarak ise Edit1 var buda isme göre arama yapıyor ama bu seferde MaskEdit ile yapmış olduğum filter bozuluyor tüm kayıtlar ortaya çıkıyor.
benim yapmaya çalıştığım şey tarih filteri bozulmadan isme göre filter yaptığımda o tarihteki liste ortaya çıksın diğer kayıtlar ortaya çıkmasın sorunum bu...
Özel bir kod yazmadım form sayfası açılınca MaskEdit1 o günün tarihine göre DBGridi otomatik olarak filter yapıyor
İkinci olarak ise Edit1 var buda isme göre arama yapıyor ama bu seferde MaskEdit ile yapmış olduğum filter bozuluyor tüm kayıtlar ortaya çıkıyor.
benim yapmaya çalıştığım şey tarih filteri bozulmadan isme göre filter yaptığımda o tarihteki liste ortaya çıksın diğer kayıtlar ortaya çıkmasın sorunum bu...
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
-
- Üye
- Mesajlar: 25
- Kayıt: 26 Nis 2011 03:18
Re: Table filter
ozaman filtrenin ardından maskedit.refresh gibi editi tetikliyecek bir şey denesen belki şini görür ama benim tavsiyem her türlü filtrelemeyi yinede slq sorgusu şeklinde kullanmam hata alma riskin azalır.
Re: Table filter
Merhaba, form sayfası açılınca MaskEdit1 o günün tarihine göre DBGridi otomatik olarak filter yapıyor
İkinci olarak ise Edit1 var buda isme göre arama yapıyor ama bu seferde MaskEdit ile yapmış olduğum filter bozuluyor tüm kayıtlar ortaya çıkıyor.
procedure TForm9.Edit1Change(Sender: TObject);
begin
if Trim(Edit1.Text) <> '' Then
begin
Table1.Filtered := False;
Table1.FilterOptions := [foCaseInsensitive]; // Büyük Küçük Harf Duyarlılığını İptal
Table1.Filter := 'PROGRAMADI=' + QuotedStr(Edit1.Text + '*') + MaskEdit6.Text; Burayı çözemedim
Table1.Filtered := True; // Tablo Filitreleme Aktif Hale Geleliyor
end
else
begin
Table1.Filtered := False;
Table1.Next;
Table1.Edit;
end;
end;
İkinci olarak ise Edit1 var buda isme göre arama yapıyor ama bu seferde MaskEdit ile yapmış olduğum filter bozuluyor tüm kayıtlar ortaya çıkıyor.
procedure TForm9.Edit1Change(Sender: TObject);
begin
if Trim(Edit1.Text) <> '' Then
begin
Table1.Filtered := False;
Table1.FilterOptions := [foCaseInsensitive]; // Büyük Küçük Harf Duyarlılığını İptal
Table1.Filter := 'PROGRAMADI=' + QuotedStr(Edit1.Text + '*') + MaskEdit6.Text; Burayı çözemedim
Table1.Filtered := True; // Tablo Filitreleme Aktif Hale Geleliyor
end
else
begin
Table1.Filtered := False;
Table1.Next;
Table1.Edit;
end;
end;
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
-
- Üye
- Mesajlar: 25
- Kayıt: 26 Nis 2011 03:18
Re: Table filter
Kod: Tümünü seç
procedure TForm9.Edit1Change(Sender: TObject);
begin
if Trim(Edit1.Text) <> '' Then
begin
Table1.Filtered := False;
Table1.FilterOptions := [foCaseInsensitive]; // Büyük Küçük Harf Duyarlılığını İptal
Table1.Filter := 'PROGRAMADI like ' + #39+Edit1.Text + '*' +#39 +' and tarihsutunuadi = '+#39+ MaskEdit6.Text+#39; Buşekilde Dünzenlerseniz işinizi görecektir diye düşünyorum.
Table1.Filtered := True; // Tablo Filitreleme Aktif Hale Geleliyor
end
else
begin
Table1.Filtered := False;
Table1.Next;
Table1.Edit;
end;
end;
- sabanakman
- Kıdemli Üye
- Mesajlar: 3077
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Table filter
DataSet'lerin Filter özelliğine string değer verilebildiği gibi bir de onFilterRecord olayına kod yazarak da filtreleme işlemi yapabilirsiniz.Örnek kodlamaya göre hiç kayıt gelmeyecektir, tabi Filtered özelliği True ise.
Kod: Tümünü seç
procedure TForm1.Table1FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
Accept:=False;//veya true değerini sağlayacak şartın delphi tarafında kodlanması
end;
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .