我在DBGrideh中,设置了两行Footer。现需要在程序中控制。
DBGridEh1.Columns[0].Footers[0].ValueType:= fvtStaticText;
DBGridEh1.Columns[0].Footers[0].Value:= '11';
程序编译通过,运行报错List Index Out of bounds(1)
更改为
DBGridEh1.Columns[0].Footer.ValueType:= fvtStaticText;
DBGridEh1.Columns[0].Footer.Value:= '11';
则同时两行都被赋值为‘11’了。
DBGridEh1.Columns[0].Footers[0].ValueType:= fvtStaticText;
DBGridEh1.Columns[0].Footers[0].Value:= '11';
程序编译通过,运行报错List Index Out of bounds(1)
更改为
DBGridEh1.Columns[0].Footer.ValueType:= fvtStaticText;
DBGridEh1.Columns[0].Footer.Value:= '11';
则同时两行都被赋值为‘11’了。
myGrid.SumList.Active:=true;
myGrid.FooterRowCount:=2;
myGrid.FooterColor:=clAqua;
for i:=0 to myGrid.Columns.Count-1 do
begin
myGrid.Columns[i].Footers.Add;
myGrid.Columns[i].Footers.Add;
if i=0 then
begin
myGrid.Columns[i].Footers[0].Value:='平 均';
myGrid.Columns[i].Footers[0].ValueType:=fvtStaticText;
myGrid.Columns[i].Footers[1].Value:='合 计';
myGrid.Columns[i].Footers[1].ValueType:=fvtStaticText;
end else
if myGrid.Columns[i].Field.DataType=ftFloat then
begin
myGrid.Columns[i].Footers[0].FieldName:=myGrid.Columns[i].FieldName;
myGrid.Columns[i].Footers[0].ValueType:=fvtAvg;
myGrid.Columns[i].Footers[1].FieldName:=myGrid.Columns[i].FieldName;
myGrid.Columns[i].Footers[1].ValueType:=fvtSum;
end;
end;