以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 重复次数 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=188908) |
-- 作者:ganlan -- 发布时间:2023/10/30 11:07:00 -- 重复次数 想统计比如订单明细中,订单号在订单号列出现次数,也即是这个订单号出现多少行产品。 用以下代码,有点卡,5000多的起码要几十秒,想请教一下有没有其他快速点的方法,谢谢 If e.DataCol.Name = "订单号" Then e.DataRow("行数") = DataTables("表A").Compute("Count(订单号)", "[订单号] = \'" & e.NewValue & "\'") End If |
-- 作者:有点蓝 -- 发布时间:2023/10/30 11:10:00 -- 已经是最快的了,如果重置列5000多行都要算上一次,肯定费时的。平时订单号发送变化的时候,直接更新这个订单号的数据,就不用这么费时了 |
-- 作者:ganlan -- 发布时间:2023/10/30 11:12:00 -- 哦,因为看到用excel的countif函数,很快可以,以为这个可以也那么快 |
-- 作者:有点蓝 -- 发布时间:2023/10/30 11:16:00 -- 如果是重置列,可能还触发了其它的代码 |
-- 作者:ganlan -- 发布时间:2023/10/30 14:58:00 -- 恩,我发现如果是A表在A表列查找就会很卡,但是如果去其他表,只要不是本表,就很快,应该是在本表触发新建的可能数据源不确定数据,所以就卡,如果是其他表,数据源数据确定所以很快 |
-- 作者:有点蓝 -- 发布时间:2023/10/30 15:07:00 -- A表的事件代码都发上来看看 |
-- 作者:ganlan -- 发布时间:2023/10/30 18:05:00 -- 不管是什么,涉及到统计的,比如求和,求个数,都是只要是同一个表的都卡,但是复制一个一样的表做B表,跨表去统计,就会很快 If e.DataCol.Name = "订单号" Then e.DataRow("行数") = DataTables("表A").Compute("Count(订单号)", "[订单号] = \'" & e.NewValue & "\'") End If
|
-- 作者:有点蓝 -- 发布时间:2023/10/30 20:04:00 -- 请上传实例测试 |