Filitreleme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
greenegitim
Üye
Mesajlar: 713
Kayıt: 28 Nis 2011 10:33
Konum: İstanbul

Re: Filitreleme

Mesaj gönderen greenegitim »

select * from proforma where varistarihi>=SYSDATETIME() and varistarihi<=DATEADD(day,3,SYSDATETIME())
?
Mücadele güzelleştirir!
Tahsinzencir
Üye
Mesajlar: 48
Kayıt: 15 May 2009 12:16

Re: Filitreleme

Mesaj gönderen Tahsinzencir »

ben bu şekilde bir kod kullanıyorum, kendi programına uygalaya bilirsin ilk formun üzerine bir timer bırak birde Query, Query ye select*from ' buraya' veri tabanını yaz. timer in on timerinede aşağıdaki kodu yazıp kendi programına uygula.

Kod: Tümünü seç

procedure TFUyar.Timer1Timer(Sender: TObject);
begin
RC.Date:=now;
QSip.close;
QSip.sql.clear;
QSip.sql.add('select*from  musteribilgisi.DB');
QSip.sql.add('where Tahut=');
QSip.sql.add(#39+datetostr(RC.Date)+#39);
QSip.open;
timer1.Enabled:=False;
if QSip.RecordCount>0 then
showmessage(QSip.FieldByName('Tahut').AsString+''+#13+''+#13+'     DİKKAT!....'+#13+''+#13+'      Bugün Ödeme yapması gereken Müşteri veya Müşteriler var!....'+#13+''+#13+'                   UNUTMAYIN LÜTFEN!...');
if QSip.RecordCount=0 then
showmessage(QSip.FieldByName('Tahut').AsString+''+#13+'     Bugün Ödeme yapacak'+#13+''+#13+' Müşteri veya müşteriler yok...');
timer1.Enabled:=False;
begin
if not assigned(FOde) then
begin
FOde:=TFOde.create(self);
FOde.ShowModal; //veya showmodal;
end
else
FOde.bringtofront;
end;
end;
3ddark
Üye
Mesajlar: 89
Kayıt: 14 Eyl 2010 10:55
Konum: İstanbul

Re: Filitreleme

Mesaj gönderen 3ddark »

Tahsinzencir yazdı: 02 Eki 2018 01:52

Kod: Tümünü seç

type
  yenigrid=class(TDBGrid);
implementation
uses Unit1, USProj, UTedarikci, USec, UStok, UHLis, UHGTan, UIAktar, UIrsaliye;
{$R *.dfm}

procedure TFFatura.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   Action := caFree;
   FFatura:= nil; //++
end;

procedure TFFatura.sBitBtn40Click(Sender: TObject);
begin
   Close;
end;

procedure TFFatura.KaydetClick(Sender: TObject);
begin
   DMSProj.TSHareket.Append;
   DMSProj.TSHareket.Edit;
   DMSProj.TSHareketEvrak.AsString:=E1.Text;
   DMSProj.TSHareketTarih.AsString:=E2.Text;
   DMSProj.TSHareketVTarih.AsString:=E3.Text;
   DMSProj.TSHareketHTip.AsString:=E7.Text;
   DMSProj.TSHareketHTanim.AsString:=E4.Text;
   DMSProj.TSHareketBaSan.AsString:=E5.Text;
   DMSProj.TSHareketHGurup.AsString:=E6.Text;
   DMSProj.TSHareketHKodu.AsString:=E8.Text;
   DMSProj.TSHareketHarTip.AsString:=E9.Text;
   DMSProj.TSHareketTutar.AsString:=Lab.Caption;
   DMSProj.TSHareket.Post;

   TFatura.Append;
   TFatura.Edit;
   TFaturaEvrak.AsString:=E1.Text;
   TFaturaTarih.AsString:=E2.Text;
   TFaturaVTarih.AsString:=E3.Text;
   TFaturaHTip.AsString:=E7.Text;
   TFaturaHTanim.AsString:=E4.Text;
   TFaturaBSantiye.AsString:=E5.Text;
   TFaturaHGrub.AsString:=E6.Text;
   TFaturaHarKod.AsString:=E8.Text;
   TFaturaHarTip.AsString:=E9.Text;
   TFaturaSToplam.AsString:=Lab.Caption;
   TFatura.Post;
   Kaydet.Enabled:=False;
   TFatSay.Post;

   DMSProj.TPersonel.Close;
   DMSProj.TPersonel.Open;//Tabloyu Aç
   if E5.Text=''
   then DMSProj.TPersonel.Filter:=''
   else
   DMSProj.QPerExtreToplam.Open;
   DMSProj.QPerExtreToplam.Close;
   DMSProj.QPerExtreToplam.Filter:='[HTanim]='+#39+E5.text+'*'+#39;
   DMSProj.QPerExtreToplam.Filtered:=True;
end;

procedure TFFatura.IKaydetClick(Sender: TObject);
var
   adet,i:Integer;
   toplam:Double;
begin
   if not assigned(FIrsaliye) then
begin
   FIrsaliye:=TFIrsaliye.Create(self);
   end
   else
   FIrsaliye.BringToFront;

   if  FIrsaliye.TIrsaliyeDurum.AsString=IRE.Text Then
   FIrsaliye.TIrsaliye.Filter:=''
   else
   FIrsaliye.TIrsaliye.Filter:='[IrNo]='+#39+IRE.text+'*'+#39;
   FIrsaliye.TIrsaliye.Filtered:=True;

   FIrsaliye.TIrsaliye.Edit;
   FIrsaliye.TIrsaliyeDurum.AsString:=E10.Text;
   FIrsaliye.TIrsaliye.Post;

begin
   TBagIrs.Refresh;
   TBagIrs.Append;

   if (TBagIrs.State <> dsEdit) and (TBagIrs.State <> dsInsert) then Exit;
   TBagIrsTarih.AsString:=E2.Text;
   TBagIrsVTarihi.AsString:=E3.Text;
   TBagIrsHTipi.AsString:=E7.Text;
   TBagIrsHTanim.AsString:=E4.Text;
   TBagIrsBSantiye.AsString:=E5.Text;
   TBagIrsHKod.AsString:=E8.Text;
   TBagIrsHarTip.AsString:=E9.Text;
   TBagIrsIrNo.AsString:=IRE.Text;
   TBagIrsMalNo.AsString:=E11.Text;
   TBagIrsMalzeme.AsString:=E12.Text;
   TBagIrsBirim.AsString:=E13.Text;
   TBagIrsMik.AsString:=E14.Text;
   TBagIrsBFiyat.AsString:=E15.Text;
   TBagIrsKDV.AsString:=E16.Text;
   TBagIrsKDVsizToplam.AsFloat:=strtofloat(E14.Text)*strtofloat(E15.Text);
   TBagIrsSToplam.AsFloat:=(strtofloat(E14.Text)*strtofloat(E15.Text)*strtofloat(E16.Text)/100)+(strtofloat(E14.Text)*strtofloat(E15.Text));
   TBagIrsKDVBFiyat.AsFloat:=(strtofloat(E14.Text)*strtofloat(E15.Text)*strtofloat(E16.Text)/100)/(strtofloat(E14.Text))+(strtofloat(E15.Text));
   TBagIrs.Post;
   TBagIrs.Refresh;
   QFatura.Refresh;

begin
   QFatura.Close;
   QFatura.Open;
   if E19.Text=''  then
   QFatura.Filter:=''
   else
   QFatura.Filter:='[HTanim]='+#39+E19.text+'*'+#39;
   QFatura.Filtered:=True;

begin
   QFatura.Open;
   toplam:=0;
   adet:=StrToInt(Format('%2d',[yenigrid(DBGrid1).RowCount-1]));//satır sayısı
   QFatura.First;//ilk kayıda git
   for i:=1 to adet do
begin
   toplam:=toplam+DBGrid1.Fields[7].AsFloat;
   QFatura.Next;
   end;
   Lab.Caption:=FloatToStrF(toplam,ffNumber,50,0);
   end;
    end;
     end;
end;

procedure TFFatura.sBitBtn2Click(Sender: TObject);
var
   aktar:AnsiString;
begin
   E1.Enabled:=True;
   E2.Enabled:=True;
   E3.Enabled:=True;
   E4.Enabled:=True;
   E5.Enabled:=True;
   E6.Enabled:=True;

   TFatSay.Refresh;
   if Har2.Text = '' then
   TFatSayNo.Text:= '';
   TFatSay.Edit;
   TFatSayNo.Text:=IntToStr(StrToInt(TFatSayNo.Text)+1);
   Har3.Text:= TFatSayNo.Text;
   aktar:=(Har1.Text)+' '+(Har3.Text);
   E1.Text:=aktar;
   Kaydet.BringToFront;
   Kaydet.Enabled:=True;

end;

procedure TFFatura.SecClick(Sender: TObject);
begin
   IKaydet.Enabled:=True;
   E1.Enabled:=True;
   E2.Enabled:=True;
   E3.Enabled:=True;
   E4.Enabled:=True;
   E5.Enabled:=True;
   E6.Enabled:=True;
   E11.Enabled:=True;
   E12.Enabled:=True;
   E13.Enabled:=True;
   E14.Enabled:=True;
   E15.Enabled:=True;
   E16.Enabled:=True;

   if not assigned(FIAktar) then
begin
   FIAktar:=TFIAktar.create(self);
   FIAktar.ShowModal;
   end
   else
begin
   FIAktar.TIAktar.Open;;
   FIAktar.TIAktar.Filtered := False;
   if E10.Text=EmptyStr then
   FIAktar.TIAktar.Filter:='';
   FIAktar.TIAktar.Filter := '[Durum]=' + AnsiQuotedStr(E10.Text + '*', ' ');
   FIAktar.TIAktar.Filtered := True;
   FIAktar.bringtofront;
   end;
end;

end.
//Dostlar en son begin blogu içindeki filitrelem işlemi programı çlaıştırdığımda hata vermiyor ancak filitrelem işlemini gerçekleştirmiyor bu sorunumu çözmeme yardımcı olurmusunuz.
= yerine yüzde kullanın olacaktır

Kod: Tümünü seç

   FIAktar.TIAktar.Filter := '[Durum] like ' + QuotedStr(E10.Text + '*', ' ');
   FIAktar.TIAktar.Filtered := True;
Filtre işlemini iki tarafta yapabilirsin SQL tarafinda ve query gibi databaseden veri çeken bileşenlerin filter özelliği var. Bu filter özelliği normal sql komutlarından farklı oluyor. Bu farklılık bileşenin kullanım kılavuzlarında yazar
PostgreSQL - Delphi - Linux :!:
Cevapla