Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
CxGrid'de Runtime Filtreleme (Çözüldü)
#1
CxGrid'de runtime filtreleme nasıl yapılır ?

böyle örnek buldum ama , anlayamadım.

var
 AItemList: TcxFilterCriteriaItemList;
...
 with <GridView>.DataController.Filter do
 begin
   BeginUpdate;
   try
     Root.Clear;
     Root.BoolOperatorKind := fboOr;
     Root.AddItem(colCustNo, foLess, 1000, '1000');
     AItemList := Root.AddItemList(fboOr);
     AItemList.AddItem(colName, foLike, 'A%', 'A%');
     AItemList.AddItem(colName, foLike, 'Z%', 'Z%');
   finally
     EndUpdate;
   end;
 end;

Çözüm,

var
 AItemList: TcxFilterCriteriaItemList;
 Value: String;
begin
 Value := '%' + TcxCustomEdit(Sender).EditValue + '%';
 MyCardView.DataController.Filter.BeginUpdate;
 try
   MyCardView.DataController.Filter.Root.Clear;
   MyCardView.DataController.Filter.Root.AddItem(MyCardViewfirma, foLess,
     10, '10');
   AItemList := MyCardView.DataController.Filter.Root.AddItemList(fboOr);
   AItemList.AddItem(MyCardViewfirma, foLike, Value, Value);
   AItemList.AddItem(MyCardViewfirma, foLike, Value, Value);
 finally
   MyCardView.DataController.Filter.EndUpdate;
   MyCardView.DataController.Filter.Active := True;
 end;
end;
WWW
Cevapla
#2
biraz geç gördüm cevap yazana kadar siz halletmişşiniz.

Bu da benim yoğurt yiyişim  Smile

type
 TypeFilter = (FilterPasif=0, FilterAktif=1, FilterSave=3, FilterLoad=4);
...

...

type TGridFilterRec = Record
   sColName:TcxGridDBColumn;
   foKosul:TcxFilterOperatorKind;
   vValue:Variant;
   vDisplayValue:Variant;
   fbokVarmi : Boolean;
   fbokBoolOperatorKind : TcxFilterBoolOperatorKind;
end;

...
...

procedure pr_FiltercxGrid(_FilterIslemi:TypeFilter; _GridDBView:TcxGridDBTableView; const _FilterRec:array of TGridFilterRec);
var
 AItemList: TcxFilterCriteriaItemList;
 I : Integer;
begin
 with _GridDBView.DataController.Filter do
 begin
   BeginUpdate;
   try
     Root.Clear;
     if _FilterIslemi = FilterAktif then
     begin
         for I := 0 to High(_FilterRec) do
         begin
             if _FilterRec[I].fbokVarmi = True then
                 Root.BoolOperatorKind := _FilterRec[I].fbokBoolOperatorKind;
             if  _FilterRec[I].vDisplayValue <> null then  
                 Root.AddItem(_FilterRec[I].sColName, _FilterRec[I].foKosul, _FilterRec[I].vValue, _FilterRec[I].vDisplayValue)
             else
                 Root.AddItem(_FilterRec[I].sColName, _FilterRec[I].foKosul, _FilterRec[I].vValue, VarToStr(_FilterRec[I].vValue));
         end;
     end;
   except on E: Exception do
     begin
       prc_LogToFile('Application Err : pr_FiltercxGrid (EntityFunctions) ->  Form Adı ' + Screen.ActiveForm.Name + ' -- ' + 'HataSinifi : ' + E.ClassName + ' -- HataMesaji : ' + E.Message, 1, 1);
     end;
   End;
   EndUpdate;
   Active := True;
 end;
end;
...

...

...

procedure TForm1.btnXClick(Sender: TObject);

var
 _FilterRec : array of TGridFilterRec;
begin

         SetLength(_FilterRec, 1);
         _FilterRec[0].sColName := 'XXXXX';
         _FilterRec[0].foKosul  := foLike;
         _FilterRec[0].vValue   := ViewListe.DataController.Filter.PercentWildcard + sEdtArama.Text + ViewListe.DataController.Filter.PercentWildcard;
         _FilterRec[0].vDisplayValue := ViewListe.DataController.Filter.PercentWildcard + sEdtArama.Text + ViewListe.DataController.Filter.PercentWildcard;
         _FilterRec[0].fbokVarmi := False;

           pr_FiltercxGrid(FilterAktif, ViewListe, _FilterRec);

.... yada
           pr_FiltercxGrid(FilterPasif, ViewListe, []);

end;
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Runtime error 236 hatası yhackup 6 710 29-07-2026, Saat: 00:10
Son Yorum: emailx45
  SQL Table Type parametre gecisi hakkında (Çözüldü) adelphiforumz 1 397 09-04-2026, Saat: 15:53
Son Yorum: adelphiforumz
  cxGrid>FindPanel Arama Yapılacak Kolonları Belirleme hi_selamlar 15 10.649 30-03-2026, Saat: 12:33
Son Yorum: barutali
  CxGrid Türkçe karakter sorunu mur93 1 533 12-11-2025, Saat: 09:22
Son Yorum: cinarbil
Information Uygulama yönetici olarak mı çalışıyor? (runtime tespit etme) bakyuz 0 521 28-04-2025, Saat: 17:22
Son Yorum: bakyuz



Konuyu Okuyanlar: 1 Ziyaretçi