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.在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;
4、footer cxgrid本身就能实现,首先双击tableview,在summary选项卡下的“footer”中增加一个summaryitem,设置合计类型,并关联一个COLUMN。然后把tableview.optionbehavior.footer设置成true(显示注脚)即可
2.不太明白楼主在说什么
3.cxGrid好像是调用对应DataSet控件中Filter功能的
4.cxGrid本身的footer就有汇总,平均,最大,最小的功能,不用这样写的。你加个cxGrid的MouseMenu上去就会看到的了
我想问的是:在Gridmode下过滤、页脚汇总的写法。