文档章节

TClientDataSet[10]: 简单统计

涂孟超
 涂孟超
发布于 2014/09/26 15:35
字数 457
阅读 4
收藏 0

//先在窗体上放置 ClientDataSet1、Button1 然后:

{ 建表 }
procedure TForm1.FormCreate(Sender: TObject);
begin
  with ClientDataSet1 do begin
    { 定义表 }
    FieldDefs.Add('班级', ftWideString, 4);
    FieldDefs.Add('姓名', ftWideString, 8);
    FieldDefs.Add('年龄', ftByte);
    FieldDefs.Add('语文成绩', ftFloat);
    FieldDefs.Add('数学成绩', ftFloat);
    { 建立表 }
    CreateDataSet;
    { 添加 18 条测试数据 }
    AppendRecord(['一班', '赵钱', 8, 81, 98]);
    AppendRecord(['一班', '孙李', 9]);         { 假如他没有成绩 }
    AppendRecord(['一班', '周吴', 8, 82, 97]);
    AppendRecord(['三班', '郑王', 9, 83, 96]);
    AppendRecord(['三班', '冯陈', 8, 84, 95]);
    AppendRecord(['三班', '诸卫', 9, 85, 94]);
    AppendRecord(['二班', '蒋沈', 8, 86, 93]);
    AppendRecord(['二班', '韩杨', 9, 87, 92]);
    AppendRecord(['二班', '朱秦', 8, 88, 91]);
    AppendRecord(['一班', '尤许', 9, 89, 90]);
    AppendRecord(['一班', '何吕', 8, 99, 89]);
    AppendRecord(['一班', '施张', 9, 98, 88]);
    AppendRecord(['三班', '孔曹', 8, 97, 87]);
    AppendRecord(['三班', '严华', 9, 96, 86]);
    AppendRecord(['三班', '金魏', 8, 95, 85]);
    AppendRecord(['二班', '陶姜', 9, 94, 84]);
    AppendRecord(['二班', '戚谢', 8, 93, 83]);
    AppendRecord(['二班', '邹喻', 9, 92, 82]);
  end;

  { 备份这些数据给后面测试用 }
  ClientDataSet1.MergeChangeLog;
  ClientDataSet1.SaveToFile('C:\Temp\Test.xml', dfXMLUTF8);
end;

{ 统计 }
procedure TForm1.Button1Click(Sender: TObject);
begin
  { (有效的)人员总数 }
  with ClientDataSet1.Aggregates.Add do begin
    Expression := 'Count(语文成绩)';
    Active := True;
  end;
  { 语文总成绩 }
  with ClientDataSet1.Aggregates.Add do begin
    Expression := 'Sum(语文成绩)';
    Active := True;
  end;
  { 语文平均成绩 }
  with ClientDataSet1.Aggregates.Add do begin
    Expression := 'Avg(语文成绩)';
    Active := True;
  end;
  { 语文最高成绩 }
  with ClientDataSet1.Aggregates.Add do begin
    Expression := 'Max(语文成绩)';
    Active := True;
  end;
  { 语文最低成绩 }
  with ClientDataSet1.Aggregates.Add do begin
    Expression := 'Min(语文成绩)';
    Active := True;
  end;
  { 语文和数学的总成绩 }
  with ClientDataSet1.Aggregates.Add do begin
    Expression := 'Sum(语文成绩) + Sum(数学成绩)';
    Active := True;
  end;

  { 执行统计 }
  ClientDataSet1.AggregatesActive := True;
  { 查看统计结果 }
  with ClientDataSet1 do begin
    ShowMessageFmt('%d',  [Integer(Aggregates[0].Value)]); { 17      }
    ShowMessageFmt('%.2f', [Double(Aggregates[1].Value)]); { 1529.00 }
    ShowMessageFmt('%.2f', [Double(Aggregates[2].Value)]); { 89.94   }
    ShowMessageFmt('%.2f', [Double(Aggregates[3].Value)]); { 99.00   }
    ShowMessageFmt('%.2f', [Double(Aggregates[4].Value)]); { 81.00   }
    ShowMessageFmt('%.2f', [Double(Aggregates[5].Value)]); { 3059.00 }
  end;
end;

 
 
 
 
 

 

 

  

设计时使用统计的过程(使用了上面的测试值):



本文转载自:http://www.cnblogs.com/del/archive/2010/01/30/1660272.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
TClientDataSet使用(二)

转自:http://hi.baidu.com/zwl232/blog/item/76f011dfc9543812622798f2.html TClientDataSet    与TTable、TQuery一样,TClientDataSet也是从TDataSet继承下来的,它通常用于多层体系结构的......

天地弦
2007/06/01
0
0
一个ClientDataset的Delta与XML相互转换

一个ClientDataset的Delta与XML相互转换的文章: 大家都知道TClientDataSet的Delta属性保存数据集的变化,但是Delta是OleVariant类型的属性,这样如果用Delphi写Webservice,就有需要把它转成...

vga
2014/02/27
0
18
ClientDataSet探讨(1)-介绍

KeyLife富翁笔记 作者: hongxingdl 标题: ClientDataSet探讨(1)-介绍 关键字: midas 分类: 开发经验 密级: 公开 与TTable、TQuery一样,TClientDataSet也是从TDataSet继承下来的,...

天地弦
2004/08/06
0
0
Android开发数据库三层应用-DataSnap

Android开发数据库三层应用-DataSnap 时间:2013-10-24 13:41:54 点击:4988   核心提示:我觉得Delphi最强大的的功能之一就是开发数据库三层应用的DataSnap,在Android上的实现,首先是完...

vga
2014/06/01
0
0
带有TClientDataSet的delphi应用程序在发布时应注意的问题

这两天,我把我做的拍卖的操作端发布给公司的同事试用,这些机器都没有安装过delphi环境,我的程序所有用到的组件及单元文件都是build在一块儿的,按理说就不需要其他什么文件来支持了。  本...

技术小胖子
2017/11/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

20180920 rzsz传输文件、用户和用户组相关配置文件与管理

利用rz、sz实现Linux与Windows互传文件 [root@centos01 ~]# yum install -y lrzsz # 安装工具sz test.txt # 弹出对话框,传递到选择的路径下rz # 回车后,会从对话框中选择对应的文件传递...

野雪球
今天
2
0
OSChina 周四乱弹 —— 毒蛇当辣条

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ 达尔文:分享花澤香菜/前野智昭/小野大輔/井上喜久子的单曲《ミッション! 健?康?第?イチ》 《ミッション! 健?康?第?イチ》- 花澤香菜/前野智...

小小编辑
今天
9
3
java -jar运行内存设置

java -Xms64m #JVM启动时的初始堆大小 -Xmx128m #最大堆大小 -Xmn64m #年轻代的大小,其余的空间是老年代 -XX:MaxMetaspaceSize=128m # -XX:CompressedClassSpaceSize=6...

李玉长
今天
4
0
Spring | 手把手教你SSM最优雅的整合方式

HEY 本节主要内容为:基于Spring从0到1搭建一个web工程,适合初学者,Java初级开发者。欢迎与我交流。 MODULE 新建一个Maven工程。 不论你是什么工具,选这个就可以了,然后next,直至finis...

冯文议
今天
2
0
RxJS的另外四种实现方式(四)——性能最高的库(续)

接上一篇RxJS的另外四种实现方式(三)——性能最高的库 上一篇文章我展示了这个最高性能库的实现方法。下面我介绍一下这个性能提升的秘密。 首先,为了弄清楚Most库究竟为何如此快,我必须借...

一个灰
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部