DELPHI的web编程中unidbgrid的求和footer行

因为自己找到的一些案例中,unidbgrid对某些列求和后,将求和结果一般放在最后一行。如果行数比较多或者有多页的情况,想知道汇总结果还是挺不方便。我一度怀疑unigui的设计者怎么连基本的使用习惯都不能兼顾,万般吐槽。

其实关键的设置如下,align设置为tobottom则自动将汇总行作为footer列示在表格的底部。不是人家设计的不好,要怪是自己知识不全面。

求和还有一个事件,需要对表格内部的列数据进行循环处理,得到列求和或列统计的结果。我设计了一个通用的求和事件

procedure TUniFramYwymain.UniDBGrid2ColumnSummaryResult(Column: TUniDBGridColumn;
  GroupFieldValue: Variant; Attribs: TUniCellAttribs; var Result: string);
var
  bk1: TBookmark;
  f: Double;
  s1: TStringList;
  ss: string;
begin
  inherited;
  bk1 := UniDBGrid2.DataSource.DataSet.GetBookmark;
  UniDBGrid2.DataSource.DataSet.DisableControls;
  ss := '合同金额,' + //
    '已开发票,已收款,审批金额,已付款,已收发票,' + //
    '可用金额,欠进项,欠发票';
  s1 := Splitstring(ss, ',');      //'已开发票,已收款,校对收款,审批金额,已付款,校对付款,已收发票,可用金额,欠进项,欠发票'
  if s1.indexof(Column.FieldName) >= 0 then
  begin
    f := 0;
    Column.Field.DataSet.First;
    while not Column.Field.DataSet.Eof do
    begin
      f := f + Column.Field.Value;
      Column.Field.DataSet.Next;
    end;
    Result := FormatFloat('#,##0.00', f);
    Attribs.font.Style := [fsBold];
    Attribs.Font.Color := clNavy;

  end;
  UniDBGrid2.DataSource.DataSet.GotoBookmark(bk1);
  UniDBGrid2.DataSource.DataSet.EnableControls;

end;

只需要将需要自己unidbgrid中需求和的数据列字段名列表放到ss变量中。

这里还要一个要点,如果先不保存设置tbookmark再恢复,将出现页码跳转时页面显示不正确的错误。这一点也是经过多次测试后才找出的问题所在。最后效果如图

综上所述,unidbgrid的求和设置有两个大坑,分别是:

1、align设置为tobottom才能显示 footer类似的求和统计栏

2、在unidbgrid的ColumnSummaryResult事件中,一定要先保存数据表的游标,在循环执行完再恢复现场,这样在多页的状态下才能保证正常的跳转。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Delphi是一种高级的、易于使用的开发工具,最新版本是Delphi XE10。Delphi XE10编程手册是一种实用的指南,旨在帮助开发人员了解如何使用Delphi XE10来设计并开发高质量的应用程序。 该编程手册包括一系列的实例代码和详细的说明,以帮助开发人员快速掌握Delphi XE10编程技巧。它介绍了广泛的主题,包括语言基础知识、控件布局和设计、数据存储和管理、数据库编程、多媒体编程等。这些主题都是开发Windows应用程序所必需的,它们涵盖了从初学者到资深开发人员的各种技能水平。 此外,该编程手册提供了许多建议和最佳实践,以帮助开发人员优化他们的编程代码,并使其更加高效。它还介绍了如何使用Delphi XE10的工具来调试和测试应用程序,以确保它们能够与各种平台和设备兼容。 总之,Delphi XE10编程手册是一个优秀的资源,为开发人员提供了大量的实用信息和指南,以帮助他们更好地利用这个功能强大的编程工具。 ### 回答2: Delphi是一种流编程语言,具有广泛的用途,包括应用程序开发、Web开发和游戏开发等多个领域。而在Delphi的发展历程,XE10则是一款较为新的版本,该版本编程手册是Delphi开发者不可或缺的参考资料之一。 Delphi XE10编程手册不仅包含了Delphi语言的基本语法和编程概念,还具有丰富的实例代码、完整的API文档和详尽的开发指南。无论是初学者还是有经验的开发者,都可以在手册找到合适的资料进学习和应用。 在手册,可以学习到如何使用Delphi IDE进程序编写和调试,如何使用Delphi的组件和类库,以及如何处理已知和未知错误。此外,手册还涵盖了如何使用各种Delphi工具和插件来增加开发效率和功能。 最后,需要注意的是,在阅读Delphi XE10编程手册时,除了掌握语法和编程技巧外,还需注重理论知识的积累和编码规范的培养。只有将这些知识和技能结合在一起,才能更好地应对实际的应用开发需求并提高开发效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值