起步软件技术论坛-X3

 找回密码
 立即注册
搜索
123
返回列表 发新帖
楼主: hdwt

【搞定】[请求]急!如何用代码对已经分组的数据进行统计汇总**

[复制链接]
 楼主| 发表于 2007-10-25 13:13:59 | 显示全部楼层
我按照您的方法试了下 设置好DataGrid后将控件粘贴到记事本上 得到如下代码:
。。。。。。
  SummaryGroups = <
    item
      DefaultGroup = False
      SummaryItems = <
        item
          ColumnName = 'DataGrid1iSwitchNum'
          SummaryField = 'iSwitchNum'
          SummaryFormat = #24320#20851#24635#25968#37327':######'#20010
          SummaryType = cstSum
        end
        item
          ColumnName = 'DataGrid1iBDArresterNum'
          SummaryField = 'iBDArresterNum'
          SummaryFormat = #21464#21488#36991#38647#22120#24635#25968#37327':#####'#20010
          SummaryType = cstSum
        end
        item
          ColumnName = 'DataGrid1fCost'
          SummaryField = 'fCost'
          SummaryFormat = #21407#20540#20849':########'#19975#20803
          SummaryType = cstSum
        end
        item
          ColumnName = 'DataGrid1fTLLossValue'
          SummaryField = 'fTLLossValue'
          SummaryFormat = #29702#35770#32447#25439#20540#20849':###########'
          SummaryType = cstSum
        end>
      Name = 'DataGrid1SummaryGroup2'
    end>
  SummarySeparator = ', '
。。。。。。
  object DataGrid1fTLLossValue: TDataGridColumn
    BandIndex = 0
    RowIndex = 0
    ColumnDef.FieldName = 'fTLLossValue'
    ColumnDef.SummaryType = cstSum
    ColumnDef.SummaryField = 'fTLLossValue'
    ColumnDef.SummaryFormat = #29702#35770#32447#25439#20540#20849':###########'
    ColumnDef.SummaryFooterType = cstSum
    ColumnDef.SummaryFooterField = 'fTLLossValue'
    ColumnDef.SummaryFooterFormat = #20849':###########'
  end
。。。。。。
请问我要想在代码中实现设置好这么个汇总分组,再指定给字段,怎么样去做呢?

我代码是这样写的
   DataGrid1.SummaryGroups.Items.SummaryItems.Items.ColumnName := 'DataGrid1iSwitchNum';
      DataGrid1.SummaryGroups.Items.SummaryItems.Items.SummaryField := 'iSwitchNum';
      DataGrid1.SummaryGroups.Items.SummaryItems.Items.SummaryFormat := #24320#20851#24635#25968#37327':######'#20010;
      DataGrid1.SummaryGroups.Items.SummaryItems.Items.SummaryType := cstSum;
是没法编译通过的,提示如下的错误:
[错误]Biz:\PDSCGLXT\YWGN\SBTZGL\PDSBZHCX\PDSBZHCXGN.FUNC.DIR\PDSBZHCXCT.FORM.PAS(640, 31): Not enough actual parameters
[错误]Biz:\PDSCGLXT\YWGN\SBTZGL\PDSBZHCX\PDSBZHCXGN.FUNC.DIR\PDSBZHCXCT.FORM.PAS(641, 31): Not enough actual parameters
[错误]Biz:\PDSCGLXT\YWGN\SBTZGL\PDSBZHCX\PDSBZHCXGN.FUNC.DIR\PDSBZHCXCT.FORM.PAS(642, 31): Not enough actual parameters
[错误]Biz:\PDSCGLXT\YWGN\SBTZGL\PDSBZHCX\PDSBZHCXGN.FUNC.DIR\PDSBZHCXCT.FORM.PAS(643, 71): Undeclared identifier "cstSum"
请您代码指点下 谢谢
回复 支持 反对

使用道具 举报

发表于 2007-10-25 15:32:36 | 显示全部楼层
http://bbs.justep.com/forum.php?mod=viewthread&tid=7795

或者以“SummaryGroups”在bbs搜索
回复 支持 反对

使用道具 举报

发表于 2007-10-25 16:55:13 | 显示全部楼层
楼主请回馈
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-26 10:08:16 | 显示全部楼层
最初由 twins_tony 发布
[B]相关代码如下:
DataGrid1.ColumnByName('DataGrid1FieldA').GroupIndex := 0;//对FieldA分组,取消分组GroupIndex取值 -1
DataGrid1.SummaryGroups.Add;
DataGrid1.SummaryGroups[0].DefaultGroup := True;//设置默认统计组
DataGrid1.SummaryGroups[0].SummaryItems.Add;
DataGrid1.SummaryGroups[0].SummaryItems[0].ColumnName := 'DataGrid1Field1';//对Field1统计并显示在组尾
DataGrid1.SummaryGroups[0].SummaryItems[0].SummaryType := TSummaryType.cstSum;//设置统计类型
DataGrid1.SummaryGroups[0].SummaryItems[0].SummaryField := 'Field1';//设置统计字段
DataGrid1.SummaryGroups[0].SummaryItems[0].SummaryFormat := '(合计值=0.00)';//设置统计显示格式[/B]


现在功能基本已经实现,只是我不明白,为什么我设置DataGrid1.ColumnByName('DataGrid1FieldA').GroupIndex := 0 时 会运行错误Access violation at address 023D7C17 in module 'CLRModel.bpl' Read of address 000000C4 类型:EAccessViolation 这样的内存错误。。?
回复 支持 反对

使用道具 举报

发表于 2007-10-26 11:31:31 | 显示全部楼层
你有 DataGrid1FieldA  这个列名吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-26 11:43:49 | 显示全部楼层
有的
如果我在数据集中这个字段已经设定了对该字段分组
是不是就可以省去代码中DataGrid1.ColumnByName('DataGrid1FieldA').GroupIndex := 0;
回复 支持 反对

使用道具 举报

发表于 2007-10-26 11:51:32 | 显示全部楼层
可以省去
回复 支持 反对

使用道具 举报

发表于 2007-10-26 13:20:40 | 显示全部楼层
呵呵,这个你试一下就知道
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-26 13:24:47 | 显示全部楼层
谢谢 这个问题基本搞定了
回复 支持 反对

使用道具 举报

发表于 2007-10-26 13:58:32 | 显示全部楼层
ok
结贴了,有问题重新开吧
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-6-29 03:43 , Processed in 0.053857 second(s), 12 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表