DBGridEh Footer的使用

DBGridEh拥有Footer功能极大地方便用户。能通过在DBGridEh的底部增加Footer行,可以显示相关提示字符和字段的(合计、平均值、行数等)功能,以及其它特殊的统计要求。操作如下:

一、语句说明

1、设置Footer行数

DBGrideh1.FooterRowCount:=1; // 定义行数

2、增加Footer

DBGridEh1.Columns0.Footers.Add; // 加入Footer首行

DBGridEh1.Columns0.Footers.Add; // 加入Footer次行

3、删除Footer

DBGridEh1.Columns0.Footers.Delete(1); // 删除Footer

4、Sum合计操作

DBGridEh1.SumList.Active:=True; // 合计操作

DBGridEh1.SumList.Active:=False; // 取消合计操作

5、Footer显示颜色

DBGridEh1.FooterFont.Color:=clRed; // 字体色

DBGridEh1.FooterColor := clYellow; // 背景色

6、Footer数据类型

DBGrideh1.Columns0.Footer.ValueType:=fvtStaticText; // 定义Foolter数据类型

7、Footer显示样式

DBGrideh1.Columns0.Footer.Alignment:=tacenter; // 标题字符对齐方式

taRightJustify // 右对齐

taLeftJustify // 左对齐

taCenter // 居中对齐

8、Footer数据类型

DBGrideh1.Columns0.Footer.ValueType:=fvtStaticText; // 定义Foolter数据类型

TFooterValueType = (fvtNon, fvtSum, fvtAvg, fvtCount, fvtFieldValue, fvtStaticText);

fvtNon // 无

fvtSum // 合计数

fvtAvg // 平均值

fvtCoun // 行数

fvtFieldValue // 字段数据

fvtStaticText) // 静态文本

9、Footer数据显示格式

DBGrideh1.Columns7.Footer.DisplayFormat:='#0.00'; // 显示格式

DBGrideh1.Columns7.Footer.DisplayFormat:='###,###,##0.00'; // 显示格式化

10、读取Footer的值

通过函数 DBGridEh1.GetFooterValue(行数, DBGridEh1.Columnsn ) 获取。 第1个参数:Foolter行数:0..n 。第2个参数TColumns类型,Columnsn中的n,是列数0..ount-1。例:

FloatValue:=StrToFloat(DBGridEh1.GetFooterValue(0,DBGridEh1.Columns7)); // 参数0,Footer的第1行, Columns7第8列的Sum值

二、实用语句

1、加入Footer

DBGrideh1.FooterRowCount:=1; // 定义合计化为 1行

DBGrideh1.SumList.Active:=True; // 确定使用合计 列

DBGridEh1.FooterFont.Color:=clRed; // 字体色

DBGridEh1.FooterColor := clYellow; // 背景色

2、Footer加入字符Column

如:设置第1列,在Footer显示 "合计"字符

DBGrideh1.Columns0.Footer.ValueType:=fvtStaticText; // 定义合计标题类型

DBGrideh1.Columns0.Footer.Value:='合计'; // 合计标题显示字符

DBGrideh1.Columns0.Footer.Alignment:=tacenter; // 标题字符对齐方式

DBGrideh1.Columns0.Footer.Color:= clBlue;

3、Footer加入合计Column

如,设置第8列,作为合计字段

DBGrideh1.Columns7.Footer.ValueType := fvtSum; // 合计列的类型

DBGrideh1.Columns7.Footer.DisplayFormat:='#0.00'; // 格式化

DBGrideh1.Columns7.Footer.Alignment := taRightJustify; // 设置对齐方式

4、Footer取列的平均值

如,设置第5列flooter,作为平均值

DBGrideh1.Columns4.Footer.ValueType := fvtAvg; // 平均值

DBGrideh1.Columns4.Footer.DisplayFormat:='#0.00'; // 格式化

DBGrideh1.Columns4.Footer.Alignment := taCenter; // 设置对齐方式

三、事件

1、OnShow事件初始化(设置)Footer

procedure TFrom1.OnShow(Sender: TObjec);

begin

// 设置Footer

DBGridEh1.Flat:=True;

DBGridEh1.FooterRowCount:=2; // Footer行数

DBGridEh1.FooterColor:=clYellow; // 背景色

DBGridEh1.FooterFont.Color:=clRed; // 前景色

DBGridEh1.Columns0.Footers.Add; // 加入Footer首行

// 设置首行第1列

DBGridEh1.Columns0.Footers0.ValueType:=fvtStaticText; // 显示文本

DBGridEh1.Columns0.Footers0.Value:='合计';

DBGridEh1.Columns0.Footers0.Alignment:=taCenter; // 中心对齐

DBGridEh1.Columns0.Footers.Add; // 加入Footer次行

// 设置首行第2列

DBGridEh1.Columns0.Footers1.ValueType:=fvtCount; // 计数

DBGridEh1.Columns0.Footers1.FieldName:='编号'; // 字段名

DBGridEh1.Columns0.Footers1.Alignment:=taCenter; // 中心对齐

DBGridEh1.Columns3.Footers.Add; // 加入首行第4列

// 设置首行第4列

DBGridEh1.Columns3.Footers0.ValueType:=fvtSum; // 数据类型:合计

DBGridEh1.Columns3.Footers0.FieldName:='金额'; // 字段名

DBGridEh1.Columns3.Footers0.DisplayFormat:='#,###,###.00'; // 显示格式

DBGridEh1.Columns3.Footers.Add; // 加入次行第4列

// 设置次行第4列

DBGridEh1.Columns3.Footers1.ValueType:=fvtFieldValue; // 数据类型:字段值

DBGridEh1.Columns3.Footers1.FieldName:='账号'; // 字段名

DBGridEh1.Columns3.Footers1.Font.Style :=fsBold; // 文字格式

DBGridEh1.Columns3.Footers1.Font.Color:=clBlue; // 文字尺寸

DBGridEh1.SumList.Active:=True; // 确定 统计合计

end;

2、GetFooterParams事件,动态修改背景、字体颜色和Cell颜色

procedure TFrom1.DBGridEh1GetFooterParams(Sender: TObject; DataCol,Row: Integer; Column: TColumnEh; AFont: TFont; var Background: TColor;

var Alignment: TAlignment; State: TGridDrawState; var Text: String );

begin

if Column.Index=7 then // 通过列名访问

// if Column.Field.FieldName='金额' then // 通过字段名访问

Begin

if Text<>'' then

if StrtoFloat(Text)>1000 then

begin

Column.Color:=clRed; // 修改Column的Cell列的背景色

Column.Font.Color:= clBlue; // 修改Column的Cell列的字符色

Column.Footer.Color:= clBlue; // 修改Column的Footer的背景色

Column.Footer.Font.Color:= clRed; // 修改Column的Footer的字符色

End

else begin

Column.Color:=clBlue;

Column.Font.Color:= clRed;

Column.Footer.Color:= clRed;

Column.Footer.Font.Color:= clBlue;

end;

end;

end;

相关推荐
Elastic 中国社区官方博客3 小时前
将你自己的密钥用于现有 Elastic Cloud 部署
大数据·数据库·elasticsearch·全文检索
红海云3 小时前
Jev:给智能系统做判断的模型
大数据·数据库·人工智能
wjkjpcba3 小时前
PCBA烧录程序是什么:PCBA包工包料厂家解析烧录与测试
linux·数据库·人工智能·smt贴片加工·pcba贴片加工厂
꯭自꯭闭꯭4 小时前
达梦事物特性及MVCC
linux·运维·数据库
福兮说4 小时前
设计稿是 #4A7C6F,页面量出来是 #4B7C6F:HEX、HSL、透明度、canvas 来回转的七个坑
前端·javascript·css·canvas
小马同学-4 小时前
MySQL主从复制和读写分离
数据库·mysql
谢亮_vipxieliang4 小时前
Spring 事务失效的常见场景
java·开发语言·数据库·spring boot
郑州光合科技余经理4 小时前
海外版外卖加盟:总站与分站配送规则怎么分开管
java·开发语言·前端·后端·uni-app·php·ai编程
geovindu5 小时前
sql: JSON and XML Data Handling in SQL using sql server 2025
大数据·数据库·sqlserver·数据库开发·数据库架构
小呆呆6665 小时前
副业搞起来,小说,漫画,漫剧的成本优化思路
前端·后端·面试