DBGridEh的data group的使用(转)
2018-06-17 18:55:55来源:未知 阅读 ()
文章来源:http://blog.csdn.net/ghs79/article/details/73614139
一、设置数据关系
1、要利用DBGridEh的datagroup功能,必须是关联数据集MemTableEh1;不可是传统的ADOQuery,Clientdataset等。
2、好在MemTableEh1有自动从其它数据集中取数据的功能,设置好对应关系,即可完成数据的转换。我是从ADO取的数据,所以关系如下。
ADOQuery1.connection := ADOconnnect1;
//设置数据转换关系
SQLDataDriverEh1.providerdataset := ADOQuery1;
MemTableEh1.datadriver := SQLDataDriverEh1;
MemTableEh1.active := True;//到此可以取到数据。
//下面设置数据显示
DBGridEh1.datasource := datasource1;
DataSource1.dataset := MemTableEh1;
二、设置datagroup显示
都是在设计期,在 Object Inspector 里面,针对 DbGridEh1 的 DataGrouping 属性,拉开后,设置里面的属性:
1. Active - True;
2. GroupPanelVisible - True; 注意如果只设置这两项,则运行时,它会显示一个 Panel 在 DBGrid 的顶上,并有英文提示,拖一个字段到这里,它会自动根据这个字段进行分组显示。
3. GroupLevels 点开,在弹出来的窗口里面,增加一条,类似增加一个字段一样的操作。
3.1. 在增加的这一条的属性里面,选择 ColumnName,下拉开,如果 DBGridEh1 已经在设计期加了静态字段,这里就会看到几个字段,挑选需要用来作为分组依据的字段。DBGridEh1 将会用这个字段来进行分组。
4. 分组统计:Footers 点开,弹出一个窗口,类似字段编辑器。增加一条。
4.1. 选中增加的一条,属性里面选择 ColumnItems,会弹出窗口,窗口里面是前述的三个字段(必须是设计期已经为 DBGridEh1 增加了静态字段)。
4.2. 选择 需要合计的 字段,属性里面的 ValueType 下拉选择 gfvSumEh。就会在分组的 Footer 里面显示这一组的合计数字(小计)。
5. DefaultStateExpanded - True 表格会加载后自动展开。否则加载后,是收缩的,只显示组,不显示组里面的记录。
三、至此已经可以显示分组数据,但是对于需要计算比值的(如毛利率、占比等)却无能为力,通过事件DBGridEh1DataGroupFooterToDisplayText来修正。
1、先定义一个单元内的变量
cb, ss: Currency;
2、
procedure TForm1.DBGridEh1DataGroupFooterToDisplayText(
Grid: TCustomDBGridEh; Column: TColumnEh;
GroupFooter: TGridDataGroupFooterEh;
FooterColumnItem: TGridDataGroupFooterColumnItemEh; var AValue: Variant;
var DisplayValue: String; var Processed: Boolean);
begin
//修正分组合计的值
if Column.FieldName = 'DML' then
begin
if ss <> 0 then
begin
DisplayValue := '毛利率:' + FormatFloat('##.##%', cb/ss * 100 );
Processed := True; //告诉系统,按我修正后的内容显示
end;
end
else if Column.FieldName = 'DMONEY_IN' then
cb := AValue //记录变量值
else if Column.FieldName = 'DMONEY_SS' then
ss := AValue
end;
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:长度、最大值和最小值
- TClientDataSet 提交时提示 Field value Required 但是未提 2018-12-06
- XE5 搭建DataSnap服务 2018-08-17
- ClientDataSet应用 2018-08-13
- 初始ASP.NET数据控件【续 DataList】 2018-06-21
- 使用PowerQuery操作OData数据 2018-06-17
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash