解决CxGrid Filter 后,通过 Dataset 循环时得出的结果与 Grid显示不同步的问题.

时间:2021-12-28 18:23:44
  //  方案1:   强制cxgrid 使用 dataset的 Filter
  GridMaster.DataController.Filter.AutoDataSetFilter := True;
/// 通过 FilterRecordCount 来查询结果
Screen.Cursor := crHourGlass;
 cxGrid2DBTableView1.DataController.GotoFirst;
 for i := 0 to cxgrid2DBTableView1.DataController.FilteredRecordCount - 1 do
 begin
   if cxGrid2DBTableView1.DataController.GetItemByFieldName('IsChecked').EditValue  = True then
   begin
     cxGrid2DBTableView1.DataController.GetItemByFieldName('IsChecked').EditValue := False;
   end
   else if cxGrid2DBTableView1.DataController.GetItemByFieldName('IsChecked').EditValue  = False then
   begin
     cxGrid2DBTableView1.DataController.GetItemByFieldName('IsChecked').EditValue  := True;
   end;
 
   cxGrid2DBTableView1.DataController.GotoNext;
 end;
 Screen.Cursor := crDefault;