cxgrid中,如何根据列名或字段名取得footer值

Posted 【麦麦提敏】

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cxgrid中,如何根据列名或字段名取得footer值相关的知识,希望对你有一定的参考价值。

注意,不是根据index取得footer值
cxgrdtbv1.DataController.Summary.FooterSummaryValues[0];

------解决方案--------------------------------------------------------

Delphi(Pascal) code
  with cxGrid1DBTableView1.DataController.Summary do
    FooterSummaryValues[FooterSummaryItems.IndexOfItemLink(
    cxGrid1DBTableView1.GetColumnByFieldName(‘字段名‘))];

cxgrid动态生成footersummary 并获得值

var f: TcxGridDBTableSummaryItem;


  cx_for_mctv.OptionsView.Footer := true;
  //cxGrid1DBTableView1.OptionsView.Footer := True;
  f := (cx_for_mctv.DataController.Summary.FooterSummaryItems.Add) as TcxGridDBTableSummaryItem;
  f.FieldName := cx_for_mctv.Columns[2].DataBinding.FieldName;
  f.Column := cx_for_mctv.Columns[2];
  f.Kind := skSum;

///////////////////////////////////////////////////////////////////

procedure Tform_for_cz.CreateSumFooter(cxTableView: TcxGridDBTableView;
  const fieldList: string);
var
  i: Integer;
  f: TcxGridDBTableSummaryItem;
  l: TStringList;
begin
  l := TStringList.Create;
  l.DelimitedText := fieldList;
  l.Delimiter := ‘,‘;
  cxTableView.OptionsView.Footer := True;
  for i := 0 to cxTableView.ColumnCount - 1 do
  begin
    if l.IndexOf(cxTableView.Columns[i].DataBinding.FieldName) <> -1 then
    begin
      f := (cxTableView.DataController.Summary.FooterSummaryItems.Add) as TcxGridDBTableSummaryItem;
      f.FieldName := cxTableView.Columns[i].DataBinding.FieldName;
      f.Column := cxTableView.Columns[i];
      if f.FieldName <> ‘凭证号‘ then
          f.Kind := skSum
      else
          f.kind := skcount;
    end;  
  end;
  l.Free;
end;

 

 

 

 

View_Client.DataController.Summary.FooterSummaryValues[0],//得到值
View_Client.DataController.Summary.FooterSummaryTexts //得到显示文字
View_Client.DataController.Summary.FooterSummarys //得到合计对象