cxgrid在Gridmode下的筛选、排序、汇总都不能用。
 
1.在Gridmode下筛选的的下拉列表是空的,如果自己添加怎么写能简单一点?我写的很笨拙,还要用个ADOQUERY取值
2.在Filter.OnBeforeChange事件里取到了AFilterText筛选语句,然后筛选数据的时候怎么写?我还是用Query再重新取一遍数字
3.delphi里Query的filter属性,不能筛选'_b_a%'类似的条件吗?那cxgrid是怎么做到的?
4.汇总footersummary的问题,也一样,不用query怎么写?  
下面是我的代码://下拉列表   
procedure TForm1.GrdpbtvDataControllerFilterGetValueList(
  Sender: TcxFilterCriteria; AItemIndex: Integer;
  AValueList: TcxDataFilterValueList);
begin
var
  n,i: integer;
  field: string;
begin  field := Grdtgtv.Columns[MItemIndex].DataBinding.FieldName;  Qrylist.close;
  Qrylist.SQL.Clear;
  Qrylist.SQL.Add('select distinct '+field+' from tableA ');
  Qrylist.Open;  n := Qrylist.RecordCount;
  Qrylist.First;  for i := 0 to n-1 do
  begin
    MValueList.Add(fvivalue,Qrylist.FieldValues[field],vartostr(Qrylist.FieldValues[field]),false);
    Qrylist.Next;
  end;
end;
end;
//根据条件重新取数据
procedure TForm1.GrdpbtvDataControllerFilterChanged(Sender: TObject);
begin   QryTg.SQL.Clear;  
   QryTg.SQL.Add('select * from table where '+AFilterText);
   QryTg.Open;end;//footersummary汇总
procedure TForm1.GrdpbtvDataControllerSummaryAfterSummary(
  ASender: TcxDataSummary);begin   Qrysum.Close;
  Qrysum.SQL.Clear;  
  Qrysum.SQL.Add('select sum(f_srpc) as f_srpc from tableA ');
  Qrysum.Open; 
  Grdpbtv.DataController.Summary.FooterSummaryvalues[0] := Qrysum.FieldValues['f_srpc'];
    
end;

解决方案 »

  1.   

    3、dataset也可以做到有限程度的模糊过滤,请参看TDataSet的Filter中的“SettingTheFilterProperty”帮助
    4、footer cxgrid本身就能实现,首先双击tableview,在summary选项卡下的“footer”中增加一个summaryitem,设置合计类型,并关联一个COLUMN。然后把tableview.optionbehavior.footer设置成true(显示注脚)即可
      

  2.   

    1.好像不用这样的吧,我的是自动生成的,楼主用的cxGRid是什么版本啊?
    2.不太明白楼主在说什么
    3.cxGrid好像是调用对应DataSet控件中Filter功能的
    4.cxGrid本身的footer就有汇总,平均,最大,最小的功能,不用这样写的。你加个cxGrid的MouseMenu上去就会看到的了
      

  3.   

    另外,cxGrid的footer是英文显示的,如果你要改中文的话要修改源码才行,之前我改过,有需要联系我 QQ 1966036
      

  4.   

    cxgrid的过滤应该不是调用DataSet的,它有一套Filter相关的类,而且在非数据敏感的用法下,Filter是依然可以使用的,此时必然不会去调用DataSet的Filter功能。
      

  5.   

    谢谢楼上各位的回答。
    我想问的是:在Gridmode下过滤、页脚汇总的写法。
      

  6.   

    gridmode模式下用它自己的功能貌似不能汇总吧
      

  7.   

    楼主自己找个demo或者csdn上下载使用说明看看把 我就是刚学的 你说的大部分是不需要代码的 光靠设置就可以实现了 cxGrid的功能非常强大  
      

  8.   

    cxGrid是非常强大,但是也非常难用 -_,-