当前位置:新注册送38元体验金 > 新注册送38元体验金编程 > DBGridEh的data group的使用(转)

DBGridEh的data group的使用(转)

文章作者:新注册送38元体验金编程 上传时间:2019-09-21

一、设置数据关系

都是在设计期,在 Object Inspector 里面,针对 DbGridEh1 的 DataGrouping 属性,拉开后,设置里面的属性:

SQLDataDriverEh1.providerdataset := ADOQuery1;

二、设置datagroup显示

1、要利用DBGridEh的datagroup功能,必须是关联数据集MemTableEh1;不可是传统的ADOQuery,Clientdataset等。

2、好在MemTableEh1有自动从其它数据集中取数据的功能,设置好对应关系,即可完成数据的转换。我是从ADO取的数据,所以关系如下。

MemTableEh1.active := True;//到此可以取到数据。

三、至此已经可以显示分组数据,但是对于需要计算比值的却无能为力,通过事件DBGridEh1DataGroupFooterToDisplayText来修正。

MemTableEh1.datadriver :=SQLDataDriverEh1;

  1. Active - True;
  2. GroupPanelVisible - True; 注意如果只设置这两项,则运行时,它会显示一个 Panel 在 DBGrid 的顶上,并有英文提示,拖一个字段到这里,它会自动根据这个字段进行分组显示。
  3. GroupLevels 点开,在弹出来的窗口里面,增加一条,类似增加一个字段一样的操作。
    3.1. 在增加的这一条的属性里面,选择 ColumnName,下拉开,如果 DBGridEh1 已经在设计期加了静态字段,这里就会看到几个字段,挑选需要用来作为分组依据的字段。DBGridEh1 将会用这个字段来进行分组。
  4. 分组统计:Footers 点开,弹出一个窗口,类似字段编辑器。增加一条。
    4.1. 选中增加的一条,属性里面选择 ColumnItems,会弹出窗口,窗口里面是前述的三个字段(必须是设计期已经为 DBGridEh1 增加了静态字段)。
    新注册送38元体验金,4.2. 选择 需要合计的字段,属性里面的 ValueType 下拉选择 gfvSumEh。就会在分组的 Footer 里面显示这一组的合计数字。
  5. DefaultStateExpanded - True 表格会加载后自动展开。否则加载后,是收缩的,只显示组,不显示组里面的记录。

DataSource1.dataset := MemTableEh1;

ADOQuery1.connection := ADOconnnect1;

//设置数据转换关系

DBGridEh1.datasource := datasource1;

//下面设置数据显示

1、先定义一个单元内的变量
cb,ss:Currency;
2、
procedureTForm1.DBGridEh1DataGroupFooterToDisplayText(
Grid:TCustomDBGridEh;Column:TColumnEh;
GroupFooter:TGridDataGroupFooterEh;
FooterColumnItem:TGridDataGroupFooterColumnItemEh;varAValue:Variant;
varDisplayValue:String;varProcessed:Boolean);
begin
//修正分组合计的值
ifColumn.FieldName='DML'then
begin
ifss<>0then
begin
DisplayValue:='毛利率:' FormatFloat('##.##%',cb/ss*100);
Processed:=True;//告诉系统,按我修正后的内容显示
end;
end
elseifColumn.FieldName='DMONEY_IN'then
cb:=AValue//记录变量值
elseifColumn.FieldName='DMONEY_SS'then
ss:=AValue
end;

本文由新注册送38元体验金发布于新注册送38元体验金编程,转载请注明出处:DBGridEh的data group的使用(转)

关键词: DBGridEh data group