Foxtable(狐表)用户栏目专家坐堂 → [求助]增加行出现在第一行


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

主题:[求助]增加行出现在第一行

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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2015/12/1 12:22:00 [只看该作者]

If e.DataCol.Name = "SN" Then
    Dim nms() As String = {"数量","物料编码","产品型号","类别","配货单号","工单号","订单号","预入库单号","生产完成日期","预计入库日期"}
    If e.NewValue Is Nothing Then
        For Each nm As String In nms
            e.DataRow(nm) = Nothing
        Next
    Else
        Dim drs As List(Of DataRow) = DataTables("配货单").Select("[SN] = '" & e.NewValue & "'")
        If drs.Count > 0 Then
            SystemReady = False
            For Each dr As DataRow In drs
                Dim ndr As DataRow = e.DataTable.AddNew
                msgbox(drs.count)----------没弹出
                msgbox(ndr("SN"))----------没弹出
                If dr("提示") = "扫描完成" Then
                    For Each nm As String In nms
                        ndr(nm) = dr(nm)
                    Next
                    ndr("提示") = "重复扫描"
                    dr("提示") = "扫描完成"
                    msgbox("已执行")-----------没弹出
                Else
                    For Each nm As String In nms
                        ndr(nm) = dr(nm)
                    Next
                    If e.DataRow("预入库单号") <> e.DataRow("入库单号")  Then
                        ndr("提示") = "非本入库单物料"
                    Else
                        ndr("提示") = "扫描完成"-----都正常赋值
                        dr("提示") = "扫描完成"-----都正常赋值
                        ndr("收货结束时间") = Date.now
msgbox("已执行")-----------没弹出
                    End If
                End If
            Next
            e.DataRow.Delete
            SystemReady = True
        Else
            e.DataRow("提示") = "序列号不存在"
        End If
    End If
End If

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/1 14:24:00 [只看该作者]

汗。

 

1、没有触发datacolchanged事件啊;

 

2、触发了没有在配货单找到对应的记录啊。


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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2015/12/1 14:31:00 [只看该作者]

If e.DataCol.Name = "SN" Then
    Dim nms() As String = {"数量","物料编码","产品型号","类别","配货单号","工单号","订单号","预入库单号","生产完成日期","预计入库日期"}
    If e.NewValue Is Nothing Then
        For Each nm As String In nms
            e.DataRow(nm) = Nothing
        Next
    Else
        Dim drs As List(Of DataRow) = DataTables("配货单").Select("[SN] = '" & e.NewValue & "'")
        If drs.Count > 0 Then
            SystemReady = False
            For Each dr As DataRow In drs
                Dim ndr As DataRow = e.DataTable.AddNew
                msgbox(drs.count)----------没弹出
                msgbox(ndr("SN"))----------没弹出
                If dr("提示") = "扫描完成" Then
                    For Each nm As String In nms
                        ndr(nm) = dr(nm)
                    Next
                    ndr("提示") = "重复扫描"
                    dr("提示") = "扫描完成"
                    msgbox("已执行")-----------没弹出
                Else
                    For Each nm As String In nms
                        ndr(nm) = dr(nm)                      -----都正常赋值,执行过,有正确的结果
                    Next                                  
                    If e.DataRow("预入库单号") <> e.DataRow("入库单号")  Then
                        ndr("提示") = "非本入库单物料"
                    Else
                        ndr("提示") = "扫描完成"-----都正常赋值,执行过,有正确的结果
                        dr("提示") = "扫描完成"-----都正常赋值,执行过,有正确的结果
                        ndr("收货结束时间") = Date.now
msgbox("已执行")-----------没弹出
                    End If
                End If
            Next
            e.DataRow.Delete
            SystemReady = True
        Else
            e.DataRow("提示") = "序列号不存在"
        End If
    End If
End If
肯定触发datacolchange事件了,不然蓝色的代码怎么会有结果,表的各个字段值都从配货单取出来了,是正确的。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/1 14:41:00 [只看该作者]

无语,不弹出msgbox就不可能执行啊。

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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2015/12/1 14:58:00 [只看该作者]

可是蓝色的结果正确啊

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/1 15:00:00 [只看该作者]

你写了这么久代码都不懂啊?不可能的事。


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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2015/12/1 15:12:00 [只看该作者]

我也挺苦恼的。可是。配货单sn有005共计5行,那么待入库也应该有同样的005数据5行。
可事实是新增行,输入005,各种赋值也赋了,同样在配货单005的第一行返回了“扫描完成”。可是待入库没有自动增加5行数据。仍然是第一行。同样的配货单005其他行也没有返回结果。


图片点击可在新窗口打开查看此主题相关图片如下:配货单.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:待入库.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/1 15:15:00 [只看该作者]

叫你加入msgbox弹出条件什么看一下啊。不弹出就没有执行到代码啊。

 

 


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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2015/12/1 16:08:00 [只看该作者]

搞定了。一句一句调试,找出问题了。达到我要的效果了,多谢大红袍。
If e.DataCol.Name = "SN" Then
    Dim nms() As String = {"SN","数量","物料编码","产品型号","类别","配货单号","工单号","订单号","预入库单号","生产完成日期","预计入库日期"}
    If e.NewValue Is Nothing Then
        For Each nm As String In nms
            e.DataRow(nm) = Nothing
        Next
    Else
        Dim drs As List(Of DataRow) = DataTables("配货单").Select("[SN] = '" & e.NewValue & "'")
        msgbox(1)
        If drs.Count > 0 Then
            msgbox(2)
            SystemReady = False
            For Each dr As DataRow In drs
                Dim ndr As DataRow = e.DataTable.AddNew
                Dim max As String
                Dim idx As Integer
                max = e.DataTable.Compute("Max(扫描顺序)")                
                If max > "" Then 
                    idx = CInt(max) + 1                     
                Else
                    idx = 1 
                End If
                ndr("扫描顺序") = idx
                ndr("入库单号") = vars("rkdh")
                msgbox(drs.count)
                msgbox(3)
                If dr("提示") = "扫描完成" Then
                    For Each nm As String In nms
                        ndr(nm) = dr(nm)
                    Next
                    ndr("提示") = "重复扫描"
                    dr("提示") = "扫描完成"
                    msgbox("已执行")
                Else
                    msgbox(4)
                    For Each nm As String In nms
                        ndr(nm) = dr(nm)
                    Next
                    msgbox(44)
                    If ndr("预入库单号") <> ndr("入库单号")  Then
                        ndr("提示") = "非本入库单物料"
                        msgbox(ndr("预入库单号"))
                        msgbox(ndr("预入库单号"))
                    Else
                        msgbox(ndr("预入库单号"))
                        msgbox(ndr("预入库单号"))
                        ndr("提示") = "扫描完成"
                        dr("提示") = "扫描完成"
                        ndr("收货结束时间") = Date.now
                        msgbox("已执行")
                    End If
                End If
            Next
            e.DataRow.Delete
            msgbox(6)
            SystemReady = True
        Else
            e.DataRow("提示") = "序列号不存在"
        End If
    End If
End If

 回到顶部
总数 19 上一页 1 2