Foxtable(狐表)用户栏目专家坐堂 → 重置列


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

主题:重置列

帅哥哟,离线,有人找我吗?
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/10/16 9:26:00 [显示全部帖子]

只能说明datacolchanged事件代码的处理逻辑有问题

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


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/10/16 9:29:00 [显示全部帖子]

这个是datacolchanged事件全部代码?

afterload去掉1楼红色的代码就不会慢?

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


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/10/16 9:49:00 [显示全部帖子]

datacolchanged事件的处理逻辑,比如重置一行"记录日期"

1、第一段select case代码会执行,"记录内容"被更改增加
2、第二段select case代码会执行,计算日期更改状态列
3、状态列被更改,程序触发datacolchanged事件,执行第一段select case代码,"记录内容"被更改增加

如果是3000行数据也就是datacolchanged事件会被触发6000次,"记录内容"被更改6000次,随着"记录内容"数据越来越多也就越来越慢

试试重置里的时候不要触发二次事件,在加一个变量判断不要写日志
SystemReady = False
vars("xie")=true
DataTables("table_3").DataCols("记录日期").RaiseDataColChanged()
vars("xie")=false
SystemReady = True


if  vars("xie")=false
Select Case e.DataCol.Name
    Case "状态","记录时间","店铺名称","产品类别","单号","产品SKU","责任方","状况描述 原因","客户姓名","联系方式","寄送地址","处理方式","寄送SKU","配件SKU","数量","备注","发货仓库","系统单号","追踪号","物流公司","发货日期","下单日期","回访","记录日期","结束日期","赠送SKU"
        e.DataRow("记录内容") = user.name & "在" & Date.now & "把【" & e.DataCol.name & "】值【" & e.OldValue & "】修改成【" & e.NewValue & "】" & vbcrlf & e.DataRow("记录内容")
End Select
end if
If e.DataCol.Name = "记录日期" Then
    If e.DataRow.IsNull("记录日期") = False AndAlso e.DataRow("状态")="跟进中"
        If e.DataRow("记录日期")>  Date.Today.AddDays(val(e.DataRow("处理时间")) * -1) Then
            e.DataRow("状态")="跟进中"
        Else
            e.DataRow("状态")="跟进中(已超时)"
        End If
    End If
End If 

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


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/10/16 11:02:00 [显示全部帖子]

不要觉得,行动起来,改代码测试,然后看效果。

 回到顶部