以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  增加字符串判断  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=178382)

--  作者:有点灰3
--  发布时间:2022/7/2 9:37:00
--  增加字符串判断

Select Case e.DataCol.Name
    Case "实际_结束日期", "实际_开始日期", "批准"
        Dim dr As DataRow = e.DataRow
        Dim s1() As String = {"三维", "程序"}
        Dim pr As Integer
        If dr.isnull("实际_结束日期") = False AndAlso dr.isnull("实际_开始日期") = False AndAlso dr("批准") = True AndAlso e.DataRow("任务类型") = " s1()" Then
            pr = Tables("项目开发进度表").FindRow( "详细任务或工序号= \'" & dr("详细任务或工序号") & "\' ")
            If pr > - 1 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("实际_开始日期")
                r("计划_结束日期") = dr("实际_结束日期")
                 End If
        End If
End Select

 

 

我想增加一个判断  就是只有该列内容等于三维或者是检具  才能在另一个表增加


--  作者:有点灰3
--  发布时间:2022/7/2 9:37:00
--  
请问这样写行不行
--  作者:有点蓝
--  发布时间:2022/7/2 9:43:00
--  
判断值是否在数组里使用Array.Indexof:http://www.foxtable.com/webhelp/topics/0216.htm
--  作者:有点灰3
--  发布时间:2022/7/3 9:44:00
--  

If e.DataCol.Name = "任务类型" Then
    Dim s2() As String = {"三维", "程序", "工装", "检具", "刀具"}
        If e.DataRow("任务类型").IndexOf (s2, "三维", "程序") > 0 Then
        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
                    pr = Tables("项目开发进度表").FindRow( "详细任务或工序号= \'" & dr("详细任务或工序号") & "\' ")
                    If pr > - 1 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("实际_开始日期")
                        r("计划_结束日期") = dr("实际_结束日期")
                    End If
                End If
        End Select
    End If
   
End If

 

 

这样写为什么不行


--  作者:有点蓝
--  发布时间:2022/7/3 20:37:00
--  
是Array.Indexof,而不是其它什么对象.Indexof

Dim s2() As String = {"三维", "程序", "工装", "检具", "刀具"}
If Array.Indexof (s2, e.DataRow("任务类型")) > 0 Then