Foxtable(狐表)用户栏目专家坐堂 → 窗口Table列显示代码(改良版)


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

主题:窗口Table列显示代码(改良版)

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


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
窗口Table列显示代码(改良版)  发帖心情 Post By:2009/8/23 13:55:00 [显示全部帖子]

在老六代码的启发下,本人做了一个类似于DataList的显示函数。不仅可以自动隐藏无关列,还可以按照设定的列项目自动显示宽度,列显示顺序为设定的列名顺序。datalist函数代码如下:

'显示列
For Each c As Col In Args(0).Cols
    c.Visible = Args(1).Contains(c.name & ",")
Next
'列宽度及显示位置
Dim i as Integer = 0
Dim ColName as String
Dim Vals As New List(Of String)
Vals.AddRange(Args(1).Split("|"))
Args(0).Redraw = False
For Each Val as String in Vals
    ColName = Val.substring(0,Val.indexof(","))   '取得列名称
    Args(0).Cols(ColName).Move(i)                 '移动位置
    Args(0).Cols(ColName).Width = Val.substring(Val.indexof(",")+1)    '设置宽度
    i = i + 1
Next
Args(0).Redraw = True

[此贴子已经被狐狸爸爸于2009-8-24 15:53:05编辑过]

[本帖被加为精华]
 回到顶部
帅哥哟,离线,有人找我吗?
reachtone
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2009/8/23 13:58:00 [显示全部帖子]

调用方法:
Functions.Execute("DataList",表名,列项目)


如:
Functions.Execute("DataList",Tables("窗口1_Table1"),"规格,100|高,70|宽,70|尺寸,158|面积,70|占版数,50")
[此贴子已经被作者于2009-8-23 14:47:17编辑过]

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


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2009/8/24 11:31:00 [显示全部帖子]

.cols(c.name).move(i)
我试了,这个代码没错,可以正常执行。

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


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2009/8/24 12:23:00 [显示全部帖子]

经测试,简单的加个move是不行的,因为循环里的序号并不是设定的列顺序。如果想同时按顺序显示列,请用一楼修改后的代码。

 回到顶部