以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  关于find与or  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=184294)

--  作者:ygg8310
--  发布时间:2022/12/1 16:12:00
--  关于find与or
tables(表A).find(生产线 = 生产线 and 批次 = 批次 or 产品 = \'PD01\' or 产品 = \'PD02\')
tables表B.addnew()
为何会出错?
Dim Cols1() As String = {"生产线", "批次", "产品"}
Dim Cols2() As String = {"生产线", "批次", "产品"}
For Each dr1 As DataRow In DataTables("生产线列表").datarows
    Dim dr2 As DataRow = DataTables("车间列表").find("生产线 = \'" & dr1("生产线") & "\' And 批次 = \'" & dr1("批次") & "\' or 产品 = \'PD01\' OR 产品 = \'PD02\'")
    If dr2 Is Nothing Then
        dr2 = DataTables("车间列表").AddNew()
    For i As Integer = 0 To Cols1.Length - 1
        dr2(Cols2(i)) = dr1(Cols1(i))
      Next
    End If
Next
这样的话只会列出一条数据
如何正确的使用or?

--  作者:有点蓝
--  发布时间:2022/12/1 16:32:00
--  
按什么逻辑判断条件?

查询结果如果有多条,都要处理吗?

--  作者:ygg8310
--  发布时间:2022/12/1 16:38:00
--  
是这样的在“车间列表中”有产品为“PD01”PD02"PD03"PD04"PD05"
现在我想把产品为pd01/pd02的数据分离出来保存到另一个表中

--  作者:有点蓝
--  发布时间:2022/12/1 16:52:00
--  
For Each v As String() In DataTables("生产线列表").GetValues("生产线|批次")
    For Each s As String In {"PD01", "PD02"}
        Dim dr2 As DataRow = DataTables("车间列表").find("生产线 = \'" & v(0) & "\' And 批次 = \'" & v(1) & "\' and 产品 = \'" & d & "\'")
        If dr2 Is Nothing Then
            dr2 = DataTables("车间列表").AddNew()
            dr2("生产线") = v(0)
            dr2("批次") = v(1)
            dr2("产品") = s
        End If
    Next
Next

--  作者:ygg8310
--  发布时间:2022/12/1 17:12:00
--  
收到,谢谢