以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  跨表定位行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=177895)

--  作者:有点灰3
--  发布时间:2022/6/8 20:39:00
--  跨表定位行

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

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

我想实现如下功能看那块的帮助下文件
1.在A表格  输入实际接序时间和实际完成时间后 点击接序
2、会在B表格判断是否存在相同的订单号以及工序号
3、如果有的话在该行的下面自动加一行 
4、然后把A表格的信息复制过来 

这块看那块文件

--  作者:cd_tdh
--  发布时间:2022/6/9 7:53:00
--  
跨表引用,find的用法
--  作者:有点蓝
--  发布时间:2022/6/9 8:48:00
--  
类似:http://www.foxtable.com/webhelp/topics/1451.htm
--  作者:有点灰3
--  发布时间:2022/6/9 8:53:00
--  
这个我知道  我不回的是在我找到有这行后   后在这行的下面增加一行而不是图标的最后一行增加    因为我后期想做甘特图  做原始计划跟实际计划的对比
--  作者:有点蓝
--  发布时间:2022/6/9 8:56:00
--  
查找行位置:http://www.foxtable.com/webhelp/topics/0553.htm
--  作者:有点灰3
--  发布时间:2022/6/9 11:03:00
--  
Select Case e.DataCol.Name
    Case "生产流程单_实际接序时间", "生产流程单_实际完工时间"
        Dim dr As DataRow = e.DataRow
        Dim pr As DataRow
        If dr("生产流程单_实际完工时间") = Not Nothing And dr("生产流程单_接序") = Not Nothing Then
            Dim filter As String= "订单号 = \'" & dr("生产流程单_订单编号") & "\' And 加工工序 = \'" & dr("生产流程单_工序") & "\' "
            pr = Tables("客户交付管理系统").FindRow(filter)
            If pr IsNot Nothing Then
                Dim r As Row = Tables("客户交付管理系统").InsertNew()
                r("加工工序") = dr("生产流程单_工序") + "实际"
                r("加工设备") = dr("生产流程单_加工设备")
               
            End If
        End If
End Select

图片点击可在新窗口打开查看此主题相关图片如下:10121.png
图片点击可在新窗口打开查看
麻烦帮着改一下
--  作者:有点蓝
--  发布时间:2022/6/9 11:51:00
--  
空值的判断:http://www.foxtable.com/webhelp/topics/1470.htm

Select Case e.DataCol.Name
    Case "生产流程单_实际接序时间", "生产流程单_实际完工时间","生产流程单_接序"
        Dim dr As DataRow = e.DataRow
        Dim pr As integer
        If dr.isnull("生产流程单_实际接序时间") = false andalso dr.isnull("生产流程单_实际完工时间") = false Andalso dr("生产流程单_接序") = true Then
            Dim filter As String= "订单号 = \'" & dr("生产流程单_订单编号") & "\' And 加工工序 = \'" & dr("生产流程单_工序") & "\' "
            pr = Tables("客户交付管理系统").FindRow(filter)
            If pr > -1 Then
Dim r As Row
if Tables("客户交付管理系统").rows.count = pr +1
r = Tables("客户交付管理系统").addnew
else
Tables("客户交付管理系统").position = pr +1
r = Tables("客户交付管理系统").InsertNew()
end if
                r("加工工序") = dr("生产流程单_工序") + "实际"
                r("加工设备") = dr("生产流程单_加工设备")
               
            End If
        End If
End Select
[此贴子已经被作者于2022/6/9 13:33:36编辑过]

--  作者:有点灰3
--  发布时间:2022/6/9 12:25:00
--  


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

我改了一下  还是不对啊   是不是 Dim pr As DataRow  这句有问题   怎么老是提示相似的报警


--  作者:有点灰3
--  发布时间:2022/6/9 12:25:00
--  
 Select Case e.DataCol.Name
    Case "生产流程单_实际接序时间", "生产流程单_实际完工时间", "生产流程单_接序"
        Dim dr As DataRow = e.DataRow
        Dim pr As DataRow
        If dr.isnull("生产流程单_实际接序时间") = False AndAlso dr.isnull("生产流程单_实际完工时间") = False AndAlso dr("生产流程单_接序") = True Then
           pr = Tables("客户交付管理系统").FindRow( "订单号 = \'" & dr("生产流程单_订单编号") & "\' And 加工工序 = \'" & dr("生产流程单_工序") & "\' ")
            If pr IsNot Nothing Then
                Dim r As Row
                If Tables("客户交付管理系统").rows.count = pr + 1 Then
                    r = Tables("客户交付管理系统").addnew
                Else
                    Tables("客户交付管理系统").position = pr + 1
                    r = Tables("客户交付管理系统").InsertNew()
                End If
                r("加工工序") = dr("生产流程单_工序") + "实际"
                r("加工设备") = dr("生产流程单_加工设备")
               
            End If
        End If
End Select

--  作者:有点蓝
--  发布时间:2022/6/9 13:33:00
--  
Dim pr As integer