Foxtable(狐表)用户栏目专家坐堂 → [求助]老白,真心求老师指导!


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

主题:[求助]老白,真心求老师指导!

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


加好友 发短信
等级:童狐 帖子:292 积分:1864 威望:0 精华:0 注册:2013/3/16 21:31:00
[求助]老白,真心求老师指导!  发帖心情 Post By:2013/4/11 22:40:00 [只看该作者]

Select Case e.DataCol.Name
    Case "类别"
        Dim drs As List(Of DataRow) = DataTables("表B").Select("[编号] = '" & e.DataRow("编号") & "'")
        If drs.Count > 0
            For i As Integer = 0 To drs.Count-1
                drs(i)("类别") = e.DataRow("类别") & Format(i+1,"00")
            Next
        Else
            For i As Integer = 1 To 30
                Dim dr As DataRow = DataTables("表B").AddNew()
                dr("编号") = e.DataRow("编号")
                dr("类别") = e.DataRow("类别") & Format(i,"00")
            Next
        End If
End Select
老白一个,真的不懂,求老师给个注释学习一下!

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


加好友 发短信
等级:七尾狐 帖子:1695 积分:10725 威望:0 精华:0 注册:2009/10/25 16:45:00
  发帖心情 Post By:2013/4/11 23:17:00 [只看该作者]

呵呵,这个看不懂就得加紧学习帮助文件了!

看看这样解释对不对,你参考吧:::

Select Case e.DataCol.Name   ‘这是说在表中你要编辑哪一列·····
    Case "类别"                       '如果是“类别”列····
        Dim drs As List(Of DataRow) = DataTables("表B").Select("[编号] = '" & e.DataRow("编号") & "'")

        ' 这表B查找与本表当前行的“编号”列相同的记录s(行s)·····
        If drs.Count > 0    '如果找到了-就是记录行超过了0行········
            For i As Integer = 0 To drs.Count-1    '遍历这些行············
                drs(i)("类别") = e.DataRow("类别") & Format(i+1,"00")   '给表B这些行的“类别”列赋值····
            Next
        Else          '如果没有找到····················
            For i As Integer = 1 To 30      '循环30次:::::::::::
               
Dim dr As DataRow = DataTables("表B").AddNew()     '每循环一次在表B中增加一行····
                dr("编号") = e.DataRow("编号")     '将本表的本行的“编号”的值,赋值给表B的新增行的“编号”列中
                dr("类别") = e.DataRow("类别") & Format(i,"00")   ‘同上·····这个 i 是从1-30哦

            Next
        End If
End Select


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


加好友 发短信
等级:童狐 帖子:292 积分:1864 威望:0 精华:0 注册:2013/3/16 21:31:00
  发帖心情 Post By:2013/4/11 23:36:00 [只看该作者]

谢谢!这下清楚了!

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


加好友 发短信
等级:童狐 帖子:292 积分:1864 威望:0 精华:0 注册:2013/3/16 21:31:00
  发帖心情 Post By:2013/4/11 23:48:00 [只看该作者]

 

Select Case e.DataCol.Name
    Case "类别"
        Dim drs As List(Of DataRow) = DataTables("表B").Select("[编号] = '" & e.DataRow("编号") & "'")
        If drs.Count > 0
            For i As Integer = 0 To drs.Count-1
                drs(i)("类别") = e.DataRow("类别") & Format(i+1,"00")
            Next
        Else
            For i As Integer = 1 To 30
                Dim dr As DataRow

                dr = DataTables("产品").Find("[编号] = '" & e.DataRow("编号") & "'")
                dr("类别") = e.DataRow("类别") & Format(i,"00")
            Next
        End If
End Select

由于不需要增加行,我改成了这样,妥不?还有就是开始的那个可能是因为增加行的原因,表B的数据一多,删除行就程序就会卡死!


               


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


加好友 发短信
等级:七尾狐 帖子:1695 积分:10725 威望:0 精华:0 注册:2009/10/25 16:45:00
  发帖心情 Post By:2013/4/12 0:19:00 [只看该作者]


                Dim dr As DataRow

                dr = DataTables("产品").Find("[编号] = '" & e.DataRow("编号") & "'")
                dr("类别") = e.DataRow("类别") & Format(i,"00")

因为上面的select也是找所有与本表当前行的编号相同的行(可能是多行),如果都没有找到,你这个也是找不到的。所以这个Else后面的代码就没有意义了。。。


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


加好友 发短信
等级:童狐 帖子:292 积分:1864 威望:0 精华:0 注册:2013/3/16 21:31:00
  发帖心情 Post By:2013/4/12 10:35:00 [只看该作者]

以下是引用e-png在2013-4-12 0:19:00的发言:

                Dim dr As DataRow

                dr = DataTables("产品").Find("[编号] = '" & e.DataRow("编号") & "'")
                dr("类别") = e.DataRow("类别") & Format(i,"00")

因为上面的select也是找所有与本表当前行的编号相同的行(可能是多行),如果都没有找到,你这个也是找不到的。所以这个Else后面的代码就没有意义了。。。

如果Else后面的代码就没有意义了,那类别的赋值不是就会一直增加下去,超过31了吗!


 回到顶部