Foxtable(狐表)用户栏目专家坐堂 → 总分唯一排名代码问题


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

主题:总分唯一排名代码问题

帅哥,在线噢!
有点蓝
  131楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106543 积分:541880 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/3/22 16:56:00 [只看该作者]

没看懂。麻烦详细说说这个代码想干嘛

 回到顶部
帅哥哟,离线,有人找我吗?
jhxb8821
  132楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:632 积分:4630 威望:0 精华:0 注册:2016/4/15 22:24:00
  发帖心情 Post By:2024/3/22 17:39:00 [只看该作者]

老师,也不好说,等有空做个例子发过来

 回到顶部
帅哥哟,离线,有人找我吗?
jhxb8821
  133楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:632 积分:4630 威望:0 精华:0 注册:2016/4/15 22:24:00
  发帖心情 Post By:2024/3/27 17:38:00 [只看该作者]

Select Case e.DataCol.Name

    Case "姓名"

        If e.NewValue > "" Then

            e.DataRow("比对_姓名重复次数") = e.DataTable.compute("count(姓名)", "姓名='" & e.newvalue & "'")

            Dim a As Integer = e.DataTable.compute("count(姓名)", "姓名='" & e.oldvalue & "'")

            e.DataTable.replacefor("比对_姓名重复次数", a, "姓名='" & e.oldvalue & "'")

        Else

            e.DataRow("比对_姓名重复次数") = Nothing

        End If

End Select

这个代码我放在表DataColChanged事件中,行数不多时运行正常的;可是我将此代码放在两三万行的表中,重置姓名列,就运行不知道多长时间,不见程序运行完毕,请问老师这是什么原因?怎么修改代码?


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


加好友 发短信
等级:超级版主 帖子:106543 积分:541880 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/3/27 17:41:00 [只看该作者]

几万行慢是正常的。不要动不动就重置列。

如果要一次性处理所有表格数据,考虑先对表格按姓名做个分组统计,然后根据分组统计的结果更新表格。

 回到顶部
帅哥哟,离线,有人找我吗?
jhxb8821
  135楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:632 积分:4630 威望:0 精华:0 注册:2016/4/15 22:24:00
  发帖心情 Post By:2024/3/27 19:33:00 [只看该作者]

Dim b As New GroupTableBuilder("统计表1",DataTables("表A"))
b.Groups.AddDef("姓名")'添加客户列用于分组
b.Totals.AddDef("姓名",AggregateEnum.Count,"人数")
b.Build '生成统计表
MainTable = Tables("统计表1") '打开生成的统计表
老师,怎么根据分组统计结果更新表格数据,请写一下代码,谢谢

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


加好友 发短信
等级:超级版主 帖子:106543 积分:541880 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/3/28 8:40:00 [只看该作者]

for each r as row in Tables("表A").rows
dim dr as datarow = DataTables("统计表1").find("姓名='" & r("姓名') & "'")
if dr isnot nothing then
r("比对_姓名重复次数") = dr("人数")
end if
next

 回到顶部
帅哥哟,离线,有人找我吗?
jhxb8821
  137楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:632 积分:4630 威望:0 精华:0 注册:2016/4/15 22:24:00
  发帖心情 Post By:2024/3/28 21:15:00 [只看该作者]

谢谢老师,问题解决

 回到顶部
总数 137 1.. 上一页 5 6 7 8 9 10 11 12 13 14