设定 DbGridEh 合计行信息
//--------------------------------------------------------------------------------
// 功能:设定 DbGridEh 合计行信息
// 参数: pDbGrid:TDBGridEh;
//        pcFields : string ; 字段列表,字段用逗号分隔
//        pvtType : TFooterValueType ; 统计类型 TFooterValueType = (fvtNon, fvtSum, fvtAvg, fvtCount, fvtFieldValue, fvtStaticText);
// 引用:StrToStringList
// 例如:DbGridEhFoot( DbGridEh1, 'Number,Sum', fvtSum ); 设定数量和金额字段为合计统计
//--------------------------------------------------------------------------------
Procedure DbGridEhFoot( pDbGrid:TDBGridEh; pcFields: string; pvtType : TFooterValueType );
var nFldLoop : integer ;
    cFieldName : string ;
    tmpFldList : TStrings ;
begin
  pDbGrid.FooterRowCount := 1;    // 指定网格尾部统计行行数
  pDbGrid.SumList.Active := true;   // 激活统计
  pDbGrid.FooterColor    := clBtnFace ;  // 指定统计行颜色  tmpFldList := TStringList.Create ;
  StrToStringList( Uppercase(pcFields),',',tmpFldList );  // 将字符串转换为串列表  For nFldLoop := 0 to pDbGrid.Columns.Count -1 do
  begin
      cFieldName := pDbGrid.Columns[nFldLoop].FieldName ;  // 网格列字段名
      if tmpFldList.IndexOf( uppercase( cFieldName ) ) >= 0 then
      begin
         pDbGrid.Columns[nFldLoop].Footer.ValueType := pvtType ;  // 统计类型
      end;
  end ;
  tmpFldList.Free ;
end;在执行过程中发现“StrToStringList”这没有定义,请问是什么原因?
另外,这个过程在什么地方调用比较合理、合适?

解决方案 »

  1.   

    StrToStringList是哪个单元的?uses那个单元啊
      

  2.   

    自己写一个过程了:
      procedure StrToStringList(sStr, sFh : String; vLst : TStringList);
      var
        Str : String;
      begin
        Str := sStr;
        while Length(Str) >0 do
        begin
          if pos(sFh, Str) > 0 then
          begin
            vLst.Add(Copy(str, 1, Pos(sFh, Str) - 1));
            Str := Copy(Str,  Pos(sFh, Str) + 1, Length(Str));
          end
          else begin
            vLst.Add(Str);
            Str :='';
          end;
        end;
      end;
      

  3.   

    hqhhh(枫叶) 多谢了,我已经解决了
    你那段代码是正确的