Jump to content

Griddeki Tüm alanlarda arama Yapmak


alucard

Recommended Posts

unidbgriddeki tüm alanlarda arama yapabilirmiyim. yada gridin üstüne her alan için arama yeri koyabilirmiyim.

 

gZ3jMN.png

 

gridin ilk satırını arama alanı olarak kullanabilirmiyiz. yada gridin filitreleme özelliği varmı acaba

Link to comment
Share on other sites

Merhaba,

 

 

Ben ilgili arama faaliyetini Firebird üzerinde aşağıdaki şekilde yaptım.

 

//OnCreat event'a
 
procedure TFrameDOFListesi.UniFrameCreate(Sender: TObject);
 
var i :integer;
begin
  for I := 0 to dtDOF.Params.Count -1  do  dtDOF.Params.Value := '%%';
 dtDOF.Open;
end;
 
//Grid'in ColumnSort event'a
 
procedure TFrameDOFListesi.UniDBGrid1ColumnSort(Column: TUniDBGridColumn;
  Direction: Boolean);
begin
  SortColumn(Column.FieldName, Direction);
end;
// SortColumn prosedürü
procedure TFrameDOFListesi.SortColumn(const FieldName: string; Dir: Boolean);
begin
  if Dir then
    dtDOF.IndexFieldNames := FieldName+':A'
  else
    dtDOF.IndexFieldNames := FieldName+':D';
end;
 
//Grid'in ColumnFilter eventa
 
procedure TFrameDOFListesi.UniDBGrid1ColumnFilter(Sender: TUniDBGrid;
  const Column: TUniDBGridColumn; const Value: Variant);
 var
  V : Variant;
  I : Integer;
begin
  if dtDOF.Active then
  begin
    for I := 0 to Sender.Columns.Count - 1  do
      if Sender.Columns.Filtering.Enabled then
      begin
        V := Sender.Columns.Filtering.VarValue;
        dtDOF.ParamByName(Sender.Columns.FieldName).Value := '%'+V+'%';
      end;
    dtDOF.Refresh;
  end;
end;
// ve ClearFilters event'a
procedure TFrameDOFListesi.UniDBGrid1ClearFilters(Sender: TObject);
var
  I : Integer;
begin
 if dtDOF.Active then
 begin
  for I := 0 to dtDOF.Params.Count -1  do
    dtDOF.Params.Value := '%%';
   dtDOF.OpenOrExecute();
 end
end;
 
 
// FireDAC componenetine
//örnek SQL 
//Burada özellikle arama yapacağınız tüm alanların aşağıdaki şekilde olduğu üzere where içinde olmalıdır.
SELECT * FROM WEB_DOFLISTESI
where 
  id like :id and
  upper(raporno) like upper(:raporno) and
  upper(Tarih  ) like upper(:tarih)  and
  upper(LokasyonKodu) like upper(:LokasyonKodu)
 
//ve EN ÖNEMLİSİ !!!!!
FireDac DataSet sağ click ile Query Editor'e girip
Parameters sekmesinde,arama yapılacak tüm alanların
Value : değerine
Value : %%
olacak şekilde işaretlemeniz gerekmektedir.
 
Kolaylıklar dilerim.
 
Saygılarımla,
  • Upvote 1
Link to comment
Share on other sites

hocam dediğiniz örnek ile de yapamadım. hatta sizin vt yerine kendi vtmi yazdım gene olmadı. 

 

eğer zamanınız var ise size kendi vt min bir  backup ve birde kendisini ini gönderiyorum. tbl_personel tablosu için küçük bir örnek hazırlaya bilirseniz sevinirim. 

 

Delphi XE7

 

firebird 2.1

 

Unigui son sürüm 

 

 

personel.rar

personeldb.rar

Link to comment
Share on other sites

kodlamanın haricinde herhangi bir ayar yapmam gerekiyor mu.

 

akran görüntülerini gönderiyorum acaba başka bişey yapmam gerekiyormu

 

9oXRGr.png

 

MpYXk2.png

 

qMq3EQ.png,

 

 

başka bişey yapmam gerekiyor mu. anlamadım gitti. 

 

 

 

Link to comment
Share on other sites

Kod örnekleri veritabanına göre değişir. Yazdığınız SQL kodlarını kontrol edin.

 

Burada uniGUI sizin içen bir arabirim görevi görür, uygulamanıza göre yazacağınız kodlar tamamen sizin veritabanı tipinize bağlıdır.

 

peki Firebird için bir örnek oluşturabilirmisiniz.

Link to comment
Share on other sites

GridSearch_2.rarMerhabalar,

 

Bana göndermiş olduğunuz, PersonelDB.FDB dosyasını kullanarak istemiş olduğunuz çalışma ile ilgili örnek oluşturdum.

 

Denemeniz için, Excel dosyası da içinde.

Firebird 2.5

UniGui 9.80.1263

XE6,

FireDAC componentini kullandım.

 

Kolaylıklar dilerim,

 

Selamlar,

  • Upvote 1
Link to comment
Share on other sites

First chance exception at $76B2C52F. Exception class EIBNativeException with message '[FireDAC][Phys][FB]CHARACTER SET WIN1254 is not installed'. Process SKHBPersonel.exe (2036)

FireDAC componentini kullanınca böyle bir hata alıyorum.

Link to comment
Share on other sites

hocam sizin ban gönderdiğinizde çıkmıyor. ama aynı elemanları kendi programıma taşıdığımda böyle bir sorun veriyor.

 

ben daha Önce Firedac kullanmadım. ibx componentleri ile yapıyorum. onda yapamadım. acaba onda yani ibx bileşenlerinde olma ihtimali yokmu.

Link to comment
Share on other sites

Merhabalar,

 

IBX bileşenleri, ücretli bir bileşen olup, ben de yoktur. Ben de IBX bileşenlerini kullanmadım.

Çıkan hata, Firebird PersonelDB.FDB data dosyasındaki, table tanımlanmış olanlar, Character Set 1254 (türkçe) olarak set edildiği içindir. Bu anlamda, IBX bileşeninin Data Connection nesnesinde, character set, 1254 olarak set edileceği bir yerin olması muhtemeldir.

 

Selamlar,

Link to comment
Share on other sites

  • 2 weeks later...

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...