设定 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”这没有定义,请问是什么原因?
另外,这个过程在什么地方调用比较合理、合适?
//--------------------------------------------------------------------------------
// 功能:设定 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”这没有定义,请问是什么原因?
另外,这个过程在什么地方调用比较合理、合适?
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;
你那段代码是正确的