以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]帮我看看这代码哪错了?怎么不好用呢  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=65979)

--  作者:moxuejiahui
--  发布时间:2015/3/26 20:49:00
--  [求助]帮我看看这代码哪错了?怎么不好用呢
Select Case e.DataCol.Name
    Case "颜色","名称","全半盖"
        Dim dr As DataRow = e.DataRow
        Dim pr As DataRow
        If dr.IsNull("名称") = True OrElse dr.IsNull("颜色") = True Then
            dr("产品编号") = Nothing
        Else
            Dim filter As String
            filter = "名称 = \'" & dr("名称") & "\' And 颜色 = \'" & dr("颜色") & "\' And 全半盖 = \'" & dr("全半盖") & "\'"
            pr = DataTables("订单明细").Find(filter)
            If pr IsNot Nothing Then
                dr("产品编号") = pr("产品编号")
            Else
Dim s1 As String = dr("名称")
Dim s2 As String = dr("颜色")
Dim s3 As String = dr("全半盖")
                dr("产品编号") =""& s1 &" "& s2 &" "& s3 &""
            End If
        End If
End Select

--  作者:有点甜
--  发布时间:2015/3/26 20:51:00
--  

  不好用是什么意思?

 

 你在代码里面加入msgbox,弹出一些值,看是否进入了某些if判断里面


--  作者:moxuejiahui
--  发布时间:2015/3/26 20:54:00
--  
就是说一开始输入这些代码时,能够完成编号,并且改动其中一列会重新编号,但是我把    If dr.IsNull("名称") = True OrElse dr.IsNull("颜色") = True Then变成    If dr.IsNull("名称") = True OrElse dr.IsNull("颜色") = True OrElse dr.IsNull("全半盖") = TrueThen就不好用了,变回原来代码后也还是不能用了
--  作者:有点甜
--  发布时间:2015/3/26 20:55:00
--  
 例子说明,怎么不好用。
--  作者:moxuejiahui
--  发布时间:2015/3/26 21:32:00
--  
找到原因了,因为我是同表索引,所以说会出现混乱改成这样的话会好一点
Select Case e.DataCol.Name
    Case "颜色","名称","全半盖"
        Dim dr As DataRow = e.DataRow
        Dim pr As DataRow
        If dr.IsNull("名称") OrElse dr.IsNull("颜色") OrElse dr.IsNull("全半盖") Then
            dr("产品编号") = Nothing
        Else
            Dim filter As String
            filter = "名称 = \'" & dr("名称") & "\' And 颜色 = \'" & dr("颜色") & "\' And 全半盖 = \'" & dr("全半盖") & "\'"
            pr = DataTables("订单明细").Find(filter)
            Dim wz As Integer = Tables("订单明细").FindRow(pr)
            If wz <> Tables("订单明细").Current.Index Then
                dr("产品编号") = pr("产品编号")
            Else
                Dim s1 As String = dr("名称")
                Dim s2 As String = dr("颜色")
                Dim s3 As String = dr("全半盖")
                dr("产品编号") =""& s1 &" "& s2 &" "& s3 &""
            End If
        End If
End Select
但是这样的话就只能是最后一行才能正确索引,因为PR找到的是符合条件的第一行,也就是说修改行一下的行使不会索引的,各位大大们谁能想象办法呢

--  作者:有点甜
--  发布时间:2015/3/26 21:35:00
--  
 直接说你想做什么,看不懂你代码到底想表达什么。