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


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

主题:窗口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编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/8/23 14:14:00 [只看该作者]

不错,很方便的

 回到顶部
美女呀,离线,留言给我吧!
yangming
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/8/23 14:21:00 [只看该作者]

学习研究!


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


加好友 发短信 F6
等级:狐精 帖子:3036 积分:19223 威望:0 精华:2 注册:2008/9/1 7:50:00
  发帖心情 Post By:2009/8/23 15:05:00 [只看该作者]

 好啊,收藏!


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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/8/23 16:49:00 [只看该作者]

学习!


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


加好友 发短信
等级:一尾狐 帖子:447 积分:4572 威望:0 精华:0 注册:2009/1/11 11:00:00
  发帖心情 Post By:2009/8/23 17:19:00 [只看该作者]

学习一下,今晚再试试

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2009/8/23 20:22:00 [只看该作者]

以下是引用reachtone在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编辑过]

老大能不能做个小例子看看


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/8/24 8:39:00 [只看该作者]

楼主已经给出例子了,注意他的DataList,指的是自定义函数的名称,并非我们通常所说的DataList


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


加好友 发短信
等级:狐精 帖子:3313 积分:23146 威望:0 精华:1 注册:2009/3/31 11:25:00
  发帖心情 Post By:2009/8/24 10:32:00 [只看该作者]

加入一行代码为改变显示列的位置,
With Args(0)   '数据表
    Dim i as Integer = 0
    For Each c As Col In .Cols
        Dim Vals() As String = Args(1).Split("|")
        c.Visible = Args(1).Contains(c.name & ",")      '加逗号可以保证列名完全匹配
        If c.Visible = True
            .cols(c.name).move(i)
            c.Width = Vals(i).substring(Vals(i).indexof(",")+1)
            i = i + 1
        End If
    Next
End With
红色部分,怎么不生效呢?目的为,把显示列的位置进行调整,请老大看看,这样是否写错了?


 回到顶部
总数 17 1 2 下一页