如何获取动态查询出的cxGrid中的Footer合计值?

Ascn 2008-01-17 11:47:07
cxGrid是摆在窗体上的,但其中的内容是动态查询出来的。即:ADOQuery中的SQL语句是动态赋值的,不一定查询某个固定表,可能是多表查询,也可能是另一个表的内容。
在代码中,以如下代码的方式生成列及其Footer合计:

ds_invd.Close;
ds_invd.SQL.Text := 'Select s0, s1, n0, n1 from TjTemp';
ds_invd.Open;
ds_invd.First;

gtvd.BeginUpdate;
gtvd.ClearItems;

col := gtvd.CreateColumn;
col.Caption := '客户名称';
col.DataBinding.FieldName := 's1';
col.Width := 200;
si := gtvd.DataController.Summary.FooterSummaryItems.Add;
si.ItemLink := col;
si.Kind := skCount;
si.Position := spFooter;
si.Format := '小计:#0 个';

col := gtvd.CreateColumn;
col.Caption := '发票份数';
col.DataBinding.FieldName := 'n0';
col.Width := 60;
si := gtvd.DataController.Summary.FooterSummaryItems.Add;
si.ItemLink := col;
si.Kind := skSum;
si.Position := spFooter;
si.Format := '#0';
...


在统计后,在其他控件(按钮)代码中想获取“发票份数”列对应Footer中的合计值,第一次成功。如果此时再点击“统计”即再执行一次上述代码后,在cxGrid中显示了正确的合计值,但在按钮代码中取出的值是0。
如果在执行一次(取得正确值)后,更改SQL语句,然后再次生成列,统计后显示的值也是正确的,但按钮中仍然无法获取正确的值,始终为0.

请各位帮帮忙,谢谢
...全文
548 1 打赏 收藏 举报
写回复
1 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Ascn 2008-01-17
自己解决,结贴。竟然这么简单:

在ClearItems前加一句:
gtv.DataController.Summary.FooterSummaryItems.Clear;
就OK了。
  • 打赏
  • 举报
回复
相关推荐
最新单片机仿真 独立式键盘调时的数码时钟实验 最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的数码时钟实验最新单片机仿真 独立式键盘调时的
发帖
Delphi
加入

5067

社区成员

Delphi 开发及应用
申请成为版主
帖子事件
创建了帖子
2008-01-17 11:47
社区公告
暂无公告