Foxtable(狐表)用户栏目专家坐堂 → 重复次数


  共有3031人关注过本帖树形打印复制链接

主题:重复次数

美女呀,离线,留言给我吧!
ganlan
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:191 积分:1254 威望:0 精华:0 注册:2021/4/17 10:35:00
重复次数  发帖心情 Post By:2023/10/30 11:07:00 [只看该作者]

想统计比如订单明细中,订单号在订单号列出现次数,也即是这个订单号出现多少行产品。
用以下代码,有点卡,5000多的起码要几十秒,想请教一下有没有其他快速点的方法,谢谢
If e.DataCol.Name = "订单号" Then 
e.DataRow("行数") = DataTables("表A").Compute("Count(订单号)", "[订单号] = '" & e.NewValue & "'")
End If

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/10/30 11:10:00 [只看该作者]

已经是最快的了,如果重置列5000多行都要算上一次,肯定费时的。平时订单号发送变化的时候,直接更新这个订单号的数据,就不用这么费时了

 回到顶部
美女呀,离线,留言给我吧!
ganlan
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:191 积分:1254 威望:0 精华:0 注册:2021/4/17 10:35:00
  发帖心情 Post By:2023/10/30 11:12:00 [只看该作者]

哦,因为看到用excel的countif函数,很快可以,以为这个可以也那么快

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/10/30 11:16:00 [只看该作者]

如果是重置列,可能还触发了其它的代码

 回到顶部
美女呀,离线,留言给我吧!
ganlan
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:191 积分:1254 威望:0 精华:0 注册:2021/4/17 10:35:00
  发帖心情 Post By:2023/10/30 14:58:00 [只看该作者]

恩,我发现如果是A表在A表列查找就会很卡,但是如果去其他表,只要不是本表,就很快,应该是在本表触发新建的可能数据源不确定数据,所以就卡,如果是其他表,数据源数据确定所以很快

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/10/30 15:07:00 [只看该作者]

A表的事件代码都发上来看看

 回到顶部
美女呀,离线,留言给我吧!
ganlan
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:191 积分:1254 威望:0 精华:0 注册:2021/4/17 10:35:00
  发帖心情 Post By:2023/10/30 18:05:00 [只看该作者]

不管是什么,涉及到统计的,比如求和,求个数,都是只要是同一个表的都卡,但是复制一个一样的表做B表,跨表去统计,就会很快
If e.DataCol.Name = "订单号" Then 
e.DataRow("行数") = DataTables("表A").Compute("Count(订单号)", "[订单号] = '" & e.NewValue & "'")
End If

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/10/30 20:04:00 [只看该作者]

请上传实例测试

 回到顶部