以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]增加行出现在第一行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=77995)

--  作者:huhu
--  发布时间:2015/11/30 11:38:00
--  [求助]增加行出现在第一行
增加行出现在第一行。
tables(“表A”).addnew()出现在第一行,光标定位到一个单元格怎么弄来着。
之前会做来着,现在忘了,

--  作者:大红袍
--  发布时间:2015/11/30 12:09:00
--  
Dim nr As Row = tables("表A").addnew()
nr.move(0)
nr.Table.Select(nr.Index, nr.Table.cols("第三列").index)

--  作者:huhu
--  发布时间:2015/12/1 11:02:00
--  
假如,输入的序列号SN在配货单存在3行,希望待入库也能自动增加3行。----这个如何能做到自动增加3行,且这3行的序列号都一致。
待入库的datacolchange代码如下
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 dr As DataRow
        dr = DataTables("配货单").Find("[SN] = \'" & e.NewValue & "\'")
        If dr IsNot Nothing
            If dr("提示") = "扫描完成" Then
                For Each nm As String In nms
                    e.DataRow(nm) = dr(nm)
                Next
                e.DataRow("提示") = "重复扫描"
                dr("提示") = "扫描完成"
            Else
                For Each nm As String In nms
                    e.DataRow(nm) = dr(nm)
                Next
                If e.DataRow("预入库单号") <> e.DataRow("入库单号")  Then
                    e.DataRow("提示") = "非本入库单物料"
                Else
                    e.DataRow("提示") = "扫描完成"
                    dr("提示") = "扫描完成"
                    e.DataRow("收货结束时间") = Date.now
                End If
            End If
        Else
            e.DataRow("提示") = "序列号不存在"
        End If
    End If
End If

--  作者:大红袍
--  发布时间:2015/12/1 11:04:00
--  

Dim drs As List(Of DataRow) = DataTables("配货单").Select("[SN] = \'" & e.NewValue & "\'")

For each dr As DataRow In drs

 

Next


--  作者:huhu
--  发布时间:2015/12/1 11:35: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
            For Each dr As DataRow In drs
                If dr("提示") = "扫描完成" Then
                    For Each nm As String In nms
                        e.DataRow(nm) = dr(nm)
                    Next
                    e.DataRow("提示") = "重复扫描"
                    dr("提示") = "扫描完成"
                Else
                    For Each nm As String In nms
                        e.DataRow(nm) = dr(nm)
                    Next
                    If e.DataRow("预入库单号") <> e.DataRow("入库单号")  Then
                        e.DataRow("提示") = "非本入库单物料"
                    Else
                        e.DataRow("提示") = "扫描完成"
                        dr("提示") = "扫描完成"
                        e.DataRow("收货结束时间") = Date.now
                    End If
                End If
            Next
        Else
            e.DataRow("提示") = "序列号不存在"
        End If
    End If
End If
这样不能实现自动增加3行数据的效果吧

--  作者:大红袍
--  发布时间:2015/12/1 11:38:00
--  

Dim drs As List(Of DataRow) = DataTables("配货单").Select("[SN] = \'" & e.NewValue & "\'")

SystermReady = False

For each dr As DataRow In drs

    Dim ndr As DataRow = e.DataTable.AddNew

   

Next

e.DataRow.Delete

SystemReady = True


--  作者:huhu
--  发布时间:2015/12/1 11:55: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
                If dr("提示") = "扫描完成" Then
                    For Each nm As String In nms
                        e.DataRow(nm) = dr(nm)
                    Next
                    e.DataRow("提示") = "重复扫描"
                    dr("提示") = "扫描完成"
                Else
                    For Each nm As String In nms
                        e.DataRow(nm) = dr(nm)
                    Next
                    If e.DataRow("预入库单号") <> e.DataRow("入库单号")  Then
                        e.DataRow("提示") = "非本入库单物料"
                    Else
                        e.DataRow("提示") = "扫描完成"
                        dr("提示") = "扫描完成"
                        e.DataRow("收货结束时间") = Date.now
                    End If
                End If
            Next
            e.DataRow.Delete
            SystemReady = True
        Else
            e.DataRow("提示") = "序列号不存在"
        End If
    End If
End If
还是没有自动增加行

--  作者:大红袍
--  发布时间:2015/12/1 11:58:00
--  

          For Each dr As DataRow In drs

                Dim ndr As DataRow = e.DataTable.AddNew
                If dr("提示") = "扫描完成" Then
                    For Each nm As String In nms
                        ndr(nm) = dr(nm)
                    Next
                    ndr("提示") = "重复扫描"
                    dr("提示") = "扫描完成"
                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
                    End If
                End If
            Next

--  作者:huhu
--  发布时间:2015/12/1 12:09:00
--  
要哭了,死活不能自动增加行啊。
--  作者:大红袍
--  发布时间:2015/12/1 12:11:00
--  
不可能啊,加入msgbox看进入了没有啊