cxgrid对经过筛选过的数据的选择(反选)

Posted 渴望成功

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cxgrid对经过筛选过的数据的选择(反选)相关的知识,希望对你有一定的参考价值。

// 下面这个主要是对查询出来的数据, 经过筛选后得到的数据中进行反选操作 ,然后对选择的数据进行修改(全选或选择一部分也可以根据些代码修改)
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;
//cxgrid2DBTableView1.DataController.FilteredRecordCount这个是得到筛选后的数据行数
//cxGrid2DBTableView1.DataController.GetItemByFieldName(‘IsChecked‘).EditValue这个是得到要修改的字段的值
 
 

  选择按钮下有三个选项:全选、反选、全取消

     一般是这样的: 先查询,再筛选(查询出来的数据有些不合适时要筛选), 再选择列下打上勾(要是数据多的话一个个打勾也太麻烦了),就可以修改数据的状态,上面的代码就可以对筛选出来的数据进行反选操作。(全选或全取消也是很简单的,参照上面有代码) ,

    以前写的代码把经过筛选出来没用的数据也在反选或全选等操作中了 ,这个就没有问题



using Filter :

procedure TForm2.Button3Click(Sender: TObject);
var
  I: Integer;
begin
  for I := 0 to cxGrid1DBTableView1.DataController.FilteredRecordCount - 1 do
  begin
    cxGrid1DBTableView1.DataController.FocusedRecordIndex := cxGrid1DBTableView1.DataController.FilteredRecordIndex[I];
    cxGrid1DBTableView1.DataController.SetEditValue(cxGrid1DBTableView1Reviewed.Index,
      True, evsValue)
  end;
end;

 



 

 

以上是关于cxgrid对经过筛选过的数据的选择(反选)的主要内容,如果未能解决你的问题,请参考以下文章

delphi cxgrid控件中自定义筛选,用like时,要加% %才能实现模糊查询,如何不要输入% %就能实现。

使用devExpress的cxGrid,怎样得到刚刚编辑过的值

DELPHI中的cxgrid,如何用代码实现表格内容居中显示,注意不是表头是内容

用JavaScript编程控制网页上checkbox选择状态:全选全部取消反选

用JavaScript编程控制网页上checkbox选择状态:全选全部取消反选

HFun.快速开发平台=》通用系统用户选择