以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于For Next 及上一行的问题,为什么这样的代码不行呢?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=9064)

--  作者:yankunhao
--  发布时间:2011/1/27 14:47:00
--  关于For Next 及上一行的问题,为什么这样的代码不行呢?

设定一个这样的表,

然后

第四列的代码

DataColChanged

If e.DataCol.Name = "第四列" Then
    Dim drs As List(Of DataRow) = e.DataTable.Select("[_SortKey] > -1", "[_SortKey]")
    For n As Integer = 0 To drs.Count - 1 \'遍历所有行
        If drs(n).Isnull("第一列")  Then
            drs(n)("第一列") = drs(n-1)("第一列")
        Else
            Return
        End If
    Next
End If


图片点击可在新窗口打开查看此主题相关图片如下:13.jpg
图片点击可在新窗口打开查看


--  作者:yankunhao
--  发布时间:2011/1/27 15:15:00
--  

这样的代码也不行:

Select Case e.DataCol.Name
    Case "第四列"
        Dim p1 As Row
        Dim p2 As Row
        For i As Integer = 1  To Tables("表A").Rows.Count -1
            p2 = Tables("表A").Rows(i)
            p1 = Tables("表A").Rows(i-1)
           
            If p2("第一列") Is Nothing Then
                p2("第一列")=p1("第一列")
            End If
        Next
End Select


--  作者:狐狸爸爸
--  发布时间:2011/1/27 16:27:00
--  
呵呵,先说说你的目的是什么?
--  作者:yankunhao
--  发布时间:2011/1/27 16:54:00
--  
就是想当第一列的内容为空的时候,将它的上一行的内容复制过来,这个目的我用其它代码解决了,但现在还不明白为何上面这些方法为何行不通呢?
[此贴子已经被作者于2011-1-27 16:53:49编辑过]