Foxtable(狐表)用户栏目专家坐堂 → 箱号数据会大了 2


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

主题:箱号数据会大了 2

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


加好友 发短信
等级:六尾狐 帖子:1470 积分:9536 威望:0 精华:0 注册:2014/12/18 16:12:00
箱号数据会大了 2  发帖心情 Post By:2021/11/25 11:54:00 [只看该作者]

If e.DataCol.Name = "piao号年月客户" 
    Dim idx As Integer = Tables(e.DataTable.Name).FindRow(e.DataRow)
    If idx > 0 Then
        e.DataRow("piao号年月客户") = DataTables(e.DataTable.Name).dataRows(idx - 1)("piao号年月客户")
        e.DataRow("箱号") = e.DataTable.compute("max(箱号)","piao号年月客户='" & e.DataRow("piao号年月客户")  & "'") + 1
    End If
End If

上面的代码是放在 datacolchanged 里面的,执行之后, 新的箱号比旧的箱号数据会大了2,比如前面一行是 1,新的一行就是 3, 再加一行就是 5。请问是哪里的问题呢?

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


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

检查代码是不是触发了2次,其它表事件是不是也有设置箱号的代码?

If e.DataCol.Name = "piao号年月客户" 
    Dim idx As Integer = Tables(e.DataTable.Name).FindRow(e.DataRow)
    If idx > 0 Then
        e.DataRow("piao号年月客户") = DataTables(e.DataTable.Name).dataRows(idx - 1)("piao号年月客户")
dim max as integer = e.DataTable.compute("max(箱号)","piao号年月客户='" & e.DataRow("piao号年月客户")  & "'")
msgbox(max)
        e.DataRow("箱号") = max + 1
msgbox(e.DataRow("箱号"))
    End If
End If

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


加好友 发短信
等级:六尾狐 帖子:1470 积分:9536 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2021/11/25 12:53:00 [只看该作者]

当前一行的箱号为5时,执行上述代码后,分别出现 5、6、6、7 四次警告,最后结果箱号为7。

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


加好友 发短信
等级:六尾狐 帖子:1470 积分:9536 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2021/11/25 13:11:00 [只看该作者]

找到原因了。

 回到顶部