Yaz  Font K   lt Yaz  Font B y lt

DBGrid Nesnesinde Filtreleme

 

Merhaba arkadaşlar bu makalemizde FDQuery in Filter özelliğini kullanarak DBGrid nesnesindeki verileri filtreleyeceğiz.  

Formumuza 1 adet GroupBox, Lael, Edit ve DBGrid nesnesi ekleyelim.

 

Ayrıca Palette kısmından FDQuery, FDConnection ve DataSource ekleyelim.

 

FDConnection a sağ tıklayalım. Açılan pencerede Connection Editor e tıklayalım. MSSQL e bağlanacağımız için Driver Id kısmında MSSQL i seçelim. Tablomuz master database de olduğu için, Database i master seçiyoruz. Sizlerbu alanda tablonuzun bulunduğu database i yazmalısınız. User_Name ve Password kısmına MSSQL e bağlantı yaparken kullandığımız kullanıcı bilgilerini girmeliyiz.

 

 

Resim1

Şekil 1

 

Test kısmına tıkladığımızda FireDAC Login kısmına ulaşırız. Bu pencerede Profile seçimini yaparak OK butonuna tıklayınız.

 

 

Resim2

Şekil 2

 

 

Eğer database e bağlantı için bilgiler doğru girilmişse, aşağıdaki mesajı göreceğiz.

 

 

Resim3

Şekil 3

 

Object Inspector kısmından FDConnection ın connected özelliğini true yapalım.

 

FDQuery i seçelim. Object Inspector penceresinde SQL kısmına tıklayalım. Açılan String List Editor penceresine Sql ifademizi yazalım. Bu örnekte sql ifademiz,

 

Select * from dbo.worldclassics

 

FDQuery in Active kısmını true yapalım.

Son olarak DataSource nesnesini seçelim. DataSet özelliğini FDQuery olarak ayarlayalım. DBGrid nesnesini seçiliyken, DataSource özelliğini DataSource1 olarak ayarlayalım.

 

Bu işlemleri yaptıktan sonra formumuzu çalıştıralım. Aşağıdaki gibi MSSQL deki tablomuza bağlandığımızı ve dataları DBGrid nesnesinde aşağıdaki gibi göreceğiz.

 

 

Resim4

Şekil 4

 

Edit nesnesine yazar ismini girip Enter tuşuna basarak, DBGrid nesnesinde yazar adına göre filtreleme yapmış olacağız.

 

 

Resim5

Şekil 5

 

 

unit Unit1;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, FireDAC.Stan.Intf,

FireDAC.Stan.Option, FireDAC.Stan.Param, FireDAC.Stan.Error, FireDAC.DatS,

FireDAC.Phys.Intf, FireDAC.DApt.Intf, FireDAC.Stan.Async, FireDAC.DApt,

FireDAC.UI.Intf, FireDAC.Stan.Def, FireDAC.Stan.Pool, FireDAC.Phys,

FireDAC.VCLUI.Wait, Vcl.StdCtrls, FireDAC.Comp.Client, FireDAC.Comp.DataSet,

Vcl.Grids, Vcl.DBGrids, FireDAC.Phys.MSSQL, FireDAC.Phys.MSSQLDef;

type

TForm1 = class(TForm)

DBGrid1: TDBGrid;

FDQuery1: TFDQuery;

FDConnection1: TFDConnection;

GroupBox1: TGroupBox;

Label1: TLabel;

Edit1: TEdit;

DataSource1: TDataSource;

procedure Edit1KeyPress(Sender: TObject; var Key: Char);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

//If you click the enter key on the keyboard

//Enter tusuna tıklanirsa

if Key=#13 Then

begin

//There is no case sensitivity.

//Buyuk kucuk harf duyarliligi yok

FDQuery1.FilterOptions:=[foCaseInsensitive];

//Our filtering criteria.

//Filtre kriterimiz

FDQuery1.Filter:='Author='+QuotedStr(Edit1.Text);

FDQuery1.Filtered:=true;

end;

end;

end.

 

 

Bir makalenin daha sonuna geldik. Bir sonraki makalede görüşmek üzere. Bahadır ŞAHİN