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
  Fastreport İçindekiler Sayfası Oluşturma [ÇÖZÜLDÜ] bydelphi 1 236 18-03-2024, Saat: 12:11
Son Yorum: bydelphi
  Çok Satırlı Filtreleme [Çözüldü] bünyamin68 12 1.347 14-02-2024, Saat: 22:42
Son Yorum: mustafaozpinar
  [ÇÖZÜLDÜ] macos işletim sistemine program yazmak shooterman 5 509 02-02-2024, Saat: 09:54
Son Yorum: shooterman
  COZULDU veritabani prg yerine ne kullanabilirim. sadikacar60 8 768 29-01-2024, Saat: 18:41
Son Yorum: sadikacar60
  DbGrid'de Seçili Satırların Fast Reportta Raporlanması [ÇÖZÜLDÜ] bünyamin68 4 709 17-12-2023, Saat: 15:08
Son Yorum: bünyamin68



Konuyu Okuyanlar: 1 Ziyaretçi