以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  再请教一个问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=31759)

--  作者:jiskin
--  发布时间:2013/4/19 22:12:00
--  再请教一个问题

第一列 第五列 第七列 第十列 第十二列

 

如果 第五列,第七列,第十列 有日期数据

需要在第一列中填写 最后一列有数据的列的名称

 

帮帮忙啊亲

 

 


--  作者:y2287958
--  发布时间:2013/4/19 22:16:00
--  
“最后一列”是指哪列?
--  作者:jiskin
--  发布时间:2013/4/20 8:26:00
--  
以下是引用y2287958在2013-4-19 22:16:00的发言:
“最后一列”是指哪列?

 

比如第十二列是没有数据的,第十列是有数据的 那么最后一列有数据列就是第十列了,返回第十列的列名


--  作者:lsy
--  发布时间:2013/4/20 9:07:00
--  

AfterEdit

要数据,用这个:

For i As Integer = e.Table.Cols.Count - 1 To 0 Step - 1
    If e.Row.IsNull(e.Table.Cols(i)) = False Then
        e.Row("第一列") = e.Row(e.Table.Cols(i))
        Exit For
    Else
        Continue For
    End If
Next

 

要列名用这个:

For i As Integer = e.Table.Cols.Count - 1 To 0 Step - 1
    If e.Row.IsNull(e.Table.Cols(i)) = False Then
        e.Row("第一列") = e.Table.Cols(i).Name
        Exit For
    Else
        Continue For
    End If
Next

[此贴子已经被作者于2013-4-20 9:36:40编辑过]

--  作者:jiskin
--  发布时间:2013/4/20 9:21:00
--  
以下是引用lsy在2013-4-20 9:07:00的发言:

AfterEdit

 

For i As Integer = e.Table.Cols.Count - 1 To 0 Step - 1
    If e.Row.IsNull(e.Table.Cols(i)) = False Then
        e.Row("第一列") = e.Row(e.Table.Cols(i))
        Exit For
    Else
        Continue For
    End If
Next

这是所有列

有指定列的吗


--  作者:lsy
--  发布时间:2013/4/20 9:34:00
--  
以下是引用jiskin在2013-4-20 9:21:00的发言:

这是所有列

有指定列的吗

你不就是要最后一列有数据的,显示在第一列吗?看4楼。

[此贴子已经被作者于2013-4-20 9:38:50编辑过]

--  作者:jiskin
--  发布时间:2013/4/20 9:40:00
--  
以下是引用lsy在2013-4-20 9:34:00的发言:

你不就是要最后一列有数据的,显示在第一列吗?

你搞错了亲

我是要指定某几列里寻找最后有数据的那一列的列名称,不是所有的列里


--  作者:程兴刚
--  发布时间:2013/4/20 9:49:00
--  

人家四楼没错,简洁一点可以这样:

 

For i As Integer = e.Table.Cols.Count - 1 To 0 Step - 1
    If e.Row.IsNull(i) = False Then
        e.Row("第一列") = e.Table.Cols(i).Name
        Exit For
    End If
Next


--  作者:lsy
--  发布时间:2013/4/20 10:10:00
--  

他要的效果应该是这样的:

Dim s() As String = {"第五列","第七列","第十列","第十二列"}
For i As Integer = 0 To e.Table.Cols.Count - 1
    For j As Integer = 0 To s.Length - 1
        If e.Table.Cols(i).Name = s(j) Then
            If e.Row.IsNull(e.Table.Cols(i)) = False Then
                e.Row("第一列") = s(j)
                Exit For
            Else
                Continue For
            End If
        End If
    Next
Next


--  作者:jiskin
--  发布时间:2013/4/20 10:42:00
--  
以下是引用lsy在2013-4-20 10:10:00的发言:

他要的效果应该是这样的:

Dim s() As String = {"第五列","第七列","第十列","第十二列"}
For i As Integer = 0 To e.Table.Cols.Count - 1
    For j As Integer = 0 To s.Length - 1
        If e.Table.Cols(i).Name = s(j) Then
            If e.Row.IsNull(e.Table.Cols(i)) = False Then
                e.Row("第一列") = s(j)
                Exit For
            Else
                Continue For
            End If
        End If
    Next
Next

图片点击可在新窗口打开查看