Foxtable(狐表)用户栏目专家坐堂 → 以是否查找到记录作为条件判断


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

主题:以是否查找到记录作为条件判断

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


加好友 发短信
等级:幼狐 帖子:189 积分:1233 威望:0 精华:0 注册:2021/4/17 10:35:00
以是否查找到记录作为条件判断  发帖心情 Post By:2021/6/20 14:52:00 [只看该作者]

If e.DataCol.Name = "销售订单号" Then 
      If e.NewValue Is Nothing Then 
         e.DataRow("主订单号") = e.DataRow("订单号")
Else
  Dim zw As DataRow 
       zw = DataTables("本表").Find("[订单号] = '" & e.NewValue & "'")(自身所在的这个表)
   If zw IsNot Nothing Then 
            e.DataRow("主订单号") = e.DataRow("销售订单号")

Else
    e.DataRow("主订单号") = e.DataRow("订单号")
End If
End If
End If

如果销售订单列空白,就等于本表的订单号,否则在订单号列找到,就等于这条记录所在的销售订单号,否则就等于订单号

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


加好友 发短信
等级:幼狐 帖子:189 积分:1233 威望:0 精华:0 注册:2021/4/17 10:35:00
  发帖心情 Post By:2021/6/20 16:44:00 [只看该作者]

这个弄了,好卡,还会死机不知道哪里出错了

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


加好友 发短信
等级:六尾狐 帖子:1310 积分:9512 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2021/6/20 17:44:00 [只看该作者]

测试没有问题,不会卡,

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


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

如果加载的数据多,重置列肯定会卡的。重置列会逐行重新计算一次。更改代码后可以重置一次,平时使用就不要老重置了

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


加好友 发短信
等级:幼狐 帖子:189 积分:1233 威望:0 精华:0 注册:2021/4/17 10:35:00
  发帖心情 Post By:2021/6/20 21:21:00 [只看该作者]

一样的数据,但是别的列重置的时候就不会卡呀

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


加好友 发短信
等级:幼狐 帖子:189 积分:1233 威望:0 精华:0 注册:2021/4/17 10:35:00
  发帖心情 Post By:2021/6/20 21:25:00 [只看该作者]

没设置之前,导入16000条数据可能就1-2分钟,设置了以后导入1分钟500条,导16000我需要等半小时,有更好的代码可以做到吗,想在主订单列写入,如果销售订单列空白,就等于本表的订单号,否则在订单号列找到,就等于这条记录所在的销售订单号,否则就等于订单号

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


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

导16000条数据,会触发这个事件16000次,使用find查询16000次,说会不会慢咯!

可以考虑导入后使用sql处理,

update {消息表} set 主订单号 = iif(销售订单号 is null,订单号,销售订单号) where 主订单号 is null

如果是指当前行的订单号,销售订单号,没有必要是find查询吧
If e.DataCol.Name = "销售订单号" Then
    If e.DataRow.isnull("销售订单号")  Then
        e.DataRow("主订单号") = e.DataRow("订单号")
    Else
        e.DataRow("主订单号") = e.DataRow("销售订单号")
    End If
End If



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


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

不仅仅判断销售订单号是不是空白的,还要判断销售订单号,在订单号的列是否存在,如果存在就填销售订单号,如果不存在就填订单号

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


加好友 发短信
等级:超级版主 帖子:106603 积分:542186 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/20 22:15:00 [只看该作者]

7楼用法就是

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


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

哦,If e.DataRow.isnull("销售订单号")  Then这个语句是什么意思呀,不是说销售订单号如果是空值,则e.DataRow("主订单号") = e.DataRow("订单号")吗

 回到顶部
总数 29 1 2 3 下一页