Foxtable(狐表)用户栏目专家坐堂 → 帮忙改下用select case


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

主题:帮忙改下用select case

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


加好友 发短信
等级:小狐 帖子:365 积分:3493 威望:0 精华:0 注册:2016/5/25 21:31:00
帮忙改下用select case  发帖心情 Post By:2020/10/21 22:27:00 [只看该作者]

列太多了,用if写太长,请大神帮忙改下select case,写在CurrentChanged事件
If Tables("A").Current("第一列")= "/" Then
     'Tables("B").Current("第一列")= "/"
else 
    Return
End If

If Tables("A").Current("第二列")= "/" Then
     'Tables("B").Current("第二列")= "/"
else 
    Return
End If

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107472 积分:546639 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/10/22 8:49:00 [只看该作者]

这个逻辑不关select case的事

dim r as row = e.table.current
dim r2 as row = Tables("B").current
if r is nothing orelse r2 is nothing  then return
dim cls() as string = {"第一列","第二列"}
for each c as string in cls
    if r(c) = "/" then 
r2(c) = "/" 
    end if
next

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


加好友 发短信
等级:小狐 帖子:365 积分:3493 威望:0 精华:0 注册:2016/5/25 21:31:00
  发帖心情 Post By:2020/10/22 22:03:00 [只看该作者]

以下是引用有点蓝在2020/10/22 8:49:00的发言:
这个逻辑不关select case的事

dim r as row = e.table.current
dim r2 as row = Tables("B").current
if r is nothing orelse r2 is nothing  then return
dim cls() as string = {"第一列","第二列"}
for each c as string in cls
    if r(c) = "/" then 
r2(c) = "/" 
    end if
next

蓝老师,如果列名不相同要怎么写

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107472 积分:546639 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/10/22 22:06:00 [只看该作者]

参考:http://www.foxtable.com/webhelp/topics/1533.htm,看第二段代码

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


加好友 发短信
等级:六尾狐 帖子:1325 积分:9627 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2020/10/23 8:08:00 [只看该作者]

Dim r As Row = e.Table.current
Dim r2 As Row = Tables("B").current
If r Is Nothing OrElse r2 Is Nothing  Then Return
'dim cls() as string = {"第一列","第二列"}
For Each c As Col In e.Table.cols
    If r(c.name) = "/" AndAlso Tables("B").cols.Contains(c.Name) Then

        r2(c.name) = "/"
    End If
Next

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107472 积分:546639 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/10/23 8:23:00 [只看该作者]

以下是引用2900819580在2020/10/23 8:08:00的发言:
Dim r As Row = e.Table.current
Dim r2 As Row = Tables("B").current
If r Is Nothing OrElse r2 Is Nothing  Then Return
'dim cls() as string = {"第一列","第二列"}
For Each c As Col In e.Table.cols
    If r(c.name) = "/" AndAlso Tables("B").cols.Contains(c.Name) Then

        r2(c.name) = "/"
    End If
Next

这种仅适合列名一样的情况

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


加好友 发短信
等级:小狐 帖子:365 积分:3493 威望:0 精华:0 注册:2016/5/25 21:31:00
  发帖心情 Post By:2020/10/23 23:27:00 [只看该作者]

以下是引用有点蓝在2020/10/22 22:06:00的发言:
参考:http://www.foxtable.com/webhelp/topics/1533.htm,看第二段代码

蓝老师 ,不知道怎么改


Dim Cols1() As String = {"第一列","第二列","第三列","第四列"}
Dim 
Cols2() As String = {"
第一列值","第二列值","第三列值","第四列值"}
For Each 
dr1 As DataRow In DataTables("表A").Select("[金额] > 100")  
此项条件要怎么改,Cols1的各列值如果为“/",才复制到Cols2()对应列,否则不复制
    Dim dr2 As DataRow = DataTables("表B").AddNew()
    For 
i As Integer = 0 To Cols1.Length -1
        
dr2(Cols2(i)) = dr1(Cols1(i
))
    Next
Next

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107472 积分:546639 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/10/24 8:56:00 [只看该作者]

dim r as row = e.table.current
dim r2 as row = Tables("B").current
if r is nothing orelse r2 is nothing  then return
Dim Cols1() As String = {"第一列","第二列","第三列","第四列"}
Dim 
Cols2() As String = {"
第一列值","第二列值","第三列值","第四列值"}
For i As Integer = 0 To Cols1.Length -1
    if r(Cols1(i)) = "/" then 
r2(Cols2(i)) = "/" 
    end if
next

 回到顶部