起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 304|回复: 10

【结贴】[请求]DataGrid过滤问题

[复制链接]
发表于 2009-9-25 16:50:37 | 显示全部楼层 |阅读模式
查询结果显示在DataGrid中,有合计数量。启用过滤功能,某列过滤按特定条件过滤后,合计数量还是不变,也就是说合计数量还是没有过滤前的总数,而不是按条件过滤后的总数,不知道有没有解决办法?
回复

使用道具 举报

发表于 2009-9-25 17:02:48 | 显示全部楼层
你是使用filter过滤的吧?
换成sqlfilter看看
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-25 18:12:06 | 显示全部楼层
是用DataGrid属性里自带的过滤功能过滤的
回复 支持 反对

使用道具 举报

发表于 2009-9-25 20:49:48 | 显示全部楼层
回3楼,你这种方式也是客户端过滤。
换成服务端过滤吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-26 17:49:29 | 显示全部楼层
这个不是什么服务端客户端的问题,应该是你们GRID的BUG,既然GRID就有这个过滤功能,汇总就应该完善,应该也比较简单,我看见有的软件里面的GRID就可以改变汇总
回复 支持 反对

使用道具 举报

发表于 2009-9-27 08:52:09 | 显示全部楼层
呵呵,是,这是平台的机制,汇总用的是服务端的过滤,
回复 支持 反对

使用道具 举报

发表于 2009-9-27 08:53:37 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-27 11:06:58 | 显示全部楼层
服务端过滤没有提供这么方便的类excel操作,既然grid有了这种客户端过滤,grid显示的行和汇总的不一样,客户会怎么想?所以建议你们grid汇总要提供客户端过滤和服务端过滤两种选项,服务端过滤速度是快很多,但是绝大部分时候是服务端先过滤一次,GRID里面出现的数据不会太多。所以操作GRID过滤时,就应该自动调用客户端过滤。还有就是,我能不能自己写代码取操作汇总项?就是客户执行客户端过滤后,我自己去更新汇总项?
回复 支持 反对

使用道具 举报

发表于 2009-9-27 12:36:50 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-27 15:36:53 | 显示全部楼层

搞定,分享一下

procedure TFRMXSDD.DataGridZSLDrawSummaryFooter(Sender: TObject; ACanvas: TCanvas; ARect: TRect; var AText: string; var AAlignment: TAlignment; AFont: TFont; var AColor: Integer; var ADone: Boolean);
var
  i:integer;
  s:string;
  f:float;
begin
  f:=0;
  for i:=0 to DataGrid.Count-1 do
  begin
    s:=DataGrid.Items.Strings[6];
    if SysUtils.Trim(s)='' then
      s:='0';
    f:=f+SysUtils.StrToFloat(s);
  end;
  AText :=SysUtils.FloatToStr(f);
end;
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-15 21:51 , Processed in 0.040719 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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