以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  提取数据有空白就不能提取  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=154739)

--  作者:DLW77
--  发布时间:2020/9/25 11:45:00
--  提取数据有空白就不能提取
老师,您好,我有两个表,一个生产入库表,一个工单表
图片点击可在新窗口打开查看此主题相关图片如下:生产入库单.png
图片点击可在新窗口打开查看
图片点击可在新窗口打开查看此主题相关图片如下:工单.png
图片点击可在新窗口打开查看,我想在生产入库单中“余料检查”录入检查两字,当6行全部填满时,在工单是能显示“检查”两字在工单的“余料检查”中的,但当生产入库单的“余料检查”有一行是空的,就不能显示,我想生产入库单中“余料检查”中只要任意一行录入检查两字,在工单就能显示出来,您看能帮我改一下这个代码吗?
If e.DataCol.Name = "工单单号" Then
    If e.NewValue Is Nothing Then
        e.DataRow("余料检查") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("生产入库单").Find("[来源单号] = \'" & e.NewValue & "\'")
        If dr IsNot Nothing
            e.DataRow("余料检查") = dr("余料检查")
        End If
    End If
End If

--  作者:有点蓝
--  发布时间:2020/9/25 11:52:00
--  
If e.DataCol.Name = "工单单号" Then
    If e.NewValue Is Nothing Then
        e.DataRow("余料检查") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("生产入库单").Find("[来源单号] = \'" & e.NewValue & "\' and 余料检查 is null")
        If dr IsNot Nothing 
           e.DataRow("余料检查") = Nothing
else
            e.DataRow("余料检查") = "检查"
        End If
    End If
End If


--  作者:DLW77
--  发布时间:2020/9/25 12:22:00
--  测试后,显示的提取的数据不对。
老师,您好,刚测试了,这个代码显示的数据不对,他显示在工单“余料检查”中的数据是,生产入库单中没有这些来源单号的工单,显示了“检查”两字。就是没有生产入库的工单就显示了“检查”两字

[此贴子已经被作者于2020/9/25 12:22:50编辑过]

--  作者:有点蓝
--  发布时间:2020/9/25 13:36:00
--  
If e.DataCol.Name = "工单单号" Then
    If e.NewValue Is Nothing Then
        e.DataRow("余料检查") = Nothing
    Else
        for eac dr as datarow in DataTables("生产入库单").Find("[来源单号] = \'" & e.NewValue & "\'","余料检查 desc")
        If dr.isnull("余料检查")
           e.DataRow("余料检查") = Nothing
return
        End If
next
e.DataRow("余料检查") = "检查"
    End If
End If

--  作者:DLW77
--  发布时间:2020/9/25 14:19:00
--  出现错误信息
老师,您好,我按你的代码改后,保存不了,现了了这个错误信息
图片点击可在新窗口打开查看此主题相关图片如下:1601014560(1).png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2020/9/25 14:28:00
--  
手误:for each dr as datarow
--  作者:DLW77
--  发布时间:2020/9/25 15:36:00
--  还是有错误信息
老师,改后还是有错误信息,帮我看一下?
图片点击可在新窗口打开查看此主题相关图片如下:1601019316(1).png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2020/9/25 15:58:00
--  
for each dr as datarow in DataTables("生产入库单").select("[来源单号] = \'" & e.NewValue & "\'","余料检查 desc")
--  作者:DLW77
--  发布时间:2020/9/25 16:45:00
--  代码显示的还是不对
老师,代码显示的还是不对,我想做的是,无论生产入库单的“余料检查”项中的检查两字,是在中间行,在第一行,或在最后行,只要生产入库单中对应的工单号有检查两字,工单表中对应的工单就能显示“检查“两字。刚我测试了代码,有两个问题,1.他是只有第一行中有”检查“两字,工单中才会显示出来。2.生产入库单中没有的工单号,他也显示出来”检查“两个字。
--  作者:有点蓝
--  发布时间:2020/9/25 16:56:00
--  
理解错了,我以为要全部都检查才行

If e.DataCol.Name = "工单单号" Then
    If e.NewValue Is Nothing Then
        e.DataRow("余料检查") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("生产入库单").Find("[来源单号] = \'" & e.NewValue & "\' and 余料检查 is not null")
        If dr IsNot Nothing 
           e.DataRow("余料检查") = "检查"
else
            e.DataRow("余料检查") = Nothing
        End If
    End If
End If