Foxtable(狐表)用户栏目专家坐堂 → [求助]帮我看看这代码哪错了?怎么不好用呢


  共有3435人关注过本帖树形打印复制链接

主题:[求助]帮我看看这代码哪错了?怎么不好用呢

帅哥哟,离线,有人找我吗?
moxuejiahui
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:105 积分:849 威望:0 精华:0 注册:2015/1/25 23:22:00
[求助]帮我看看这代码哪错了?怎么不好用呢  发帖心情 Post By: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

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/3/26 20:51:00 [只看该作者]

  不好用是什么意思?

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
moxuejiahui
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:105 积分:849 威望:0 精华:0 注册:2015/1/25 23:22:00
  发帖心情 Post By: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就不好用了,变回原来代码后也还是不能用了

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/3/26 20:55:00 [只看该作者]

 例子说明,怎么不好用。

 回到顶部
帅哥哟,离线,有人找我吗?
moxuejiahui
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:105 积分:849 威望:0 精华:0 注册:2015/1/25 23:22:00
  发帖心情 Post By: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找到的是符合条件的第一行,也就是说修改行一下的行使不会索引的,各位大大们谁能想象办法呢

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/3/26 21:35:00 [只看该作者]

 直接说你想做什么,看不懂你代码到底想表达什么。

 回到顶部