Foxtable(狐表)用户栏目专家坐堂 → 关于列顺序批量调整的求助(商业版与开发版)


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

主题:关于列顺序批量调整的求助(商业版与开发版)

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2011/9/13 15:08:00 [只看该作者]

ybil 版主的好,上面所有的代码,前面再加上下面的有无敌了。无论怎么打乱列的秩序都没问题了。

Tables("窗口1_Table1").Cols("单号").Move(0)

Tables("窗口1_Table1").Cols("备注").Move(Tables("窗口1_Table1").Cols.count-1)


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


加好友 发短信
等级:超级版主 帖子:521 积分:4910 威望:0 精华:7 注册:2008/9/2 22:22:00
  发帖心情 Post By:2011/9/13 15:16:00 [只看该作者]


Dim t1,t2 As Table
Dim s As String
t1 = Tables("窗口1_Table1")
t2 = Tables("尺码档案")

For Each r As Row In t2.Rows    
    For Each cl As Col In t1.Cols
        If  cl.name <>"单号" AndAlso  cl.name <>"备注"
            If cl.Caption = r("尺码名称") Then
                s+ = "|" & cl.name & "|" & 80
            End If
        End If
    Next
Next
s = "单号|120" & s & "|备注|160"
t1.SetColVisibleWidth(s)
[此贴子已经被作者于2011-9-13 15:19:55编辑过]

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


加好友 发短信 F6
等级:狐精 帖子:3030 积分:19188 威望:0 精华:2 注册:2008/9/1 7:50:00
  发帖心情 Post By:2011/9/13 15:39:00 [只看该作者]

以下是引用ybil在2011-9-13 15:16:00的发言:

Dim t1,t2 As Table
Dim s As String
t1 = Tables("窗口1_Table1")
t2 = Tables("尺码档案")

For Each r As Row In t2.Rows    
    For Each cl As Col In t1.Cols
        If  cl.name <>"单号" AndAlso  cl.name <>"备注"
            If cl.Caption = r("尺码名称") Then
                s+ = "|" & cl.name & "|" & 80
            End If
        End If
    Next
Next
s = "单号|120" & s & "|备注|160"
t1.SetColVisibleWidth(s)
[此贴子已经被作者于2011-9-13 15:19:55编辑过]

很妙,收藏!


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57590 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/9/13 15:59:00 [只看该作者]

妙不可言

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


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

代码没Y版好,只是多一种方法。

 

Dim t As Table = Tables("窗口1_Table1")
Dim s As String
Dim Names(t.Cols.Count - 3) As String
For Each c As Col In t.Cols
    Dim dr As DataRow = DataTables("尺码档案").Find("[尺码名称] = '" & c.Caption & "'")
    Dim wz As Integer = t.FindRow(dr)
    If wz > -1 Then
        Names(wz) = c.Name
    End If
Next
For i As Integer = 0 To Names.Length -1
    s & = "|" & Names(i) & "|-1"
Next
t.SetColVisibleWidth("单号|-1" & s & "|备注|-1")

[此贴子已经被作者于2011-9-14 12:34:37编辑过]

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


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

奇怪,楼上的代码有一处明显是错误的,怎么会得出正确结果?

老六能解其原因吗?


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


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

再顶老六看看。

25楼红色t为Table为“窗口1_Table1”,为什么能返回正确值?百思不得其解。


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


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

另外我认为SetColVisibleWidth还是有瑕疵的,比如分别执行下面的两行代码,就会出现问题。当然这主要原因设置出了问题,设置出问题后出现这种现象正不正常,值得商榷

 

Tables("表A").SetColVisibleWidth("第一列|80||80|第二列|80|第三列|80")

Tables("表A").SetColVisibleWidth("|80|第二列|80|第三列|80")


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


加好友 发短信
等级:超级版主 帖子:521 积分:4910 威望:0 精华:7 注册:2008/9/2 22:22:00
  发帖心情 Post By:2011/9/14 13:13:00 [只看该作者]

Dim t As Table = Tables("窗口1_Table1")
Dim t1 As Table = Tables("尺码档案")
.....
確實耐人尋味:t.FindRow(dr)和t1.FindRow(dr)得到的結果一樣!

請教C版:
t.SetColVisibleWidth("单号|-1|备注|-1")中,"-1"作何解?默認列寬?最小列寬?

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


加好友 发短信
等级:超级版主 帖子:521 积分:4910 威望:0 精华:7 注册:2008/9/2 22:22:00
  发帖心情 Post By:2011/9/14 13:24:00 [只看该作者]

以下是引用czy在2011-9-14 13:04:00的发言:

另外我认为SetColVisibleWidth还是有瑕疵的,比如分别执行下面的两行代码,就会出现问题。当然这主要原因设置出了问题,设置出问题后出现这种现象正不正常,值得商榷

 

Tables("表A").SetColVisibleWidth("第一列|80||80|第二列|80|第三列|80")

Tables("表A").SetColVisibleWidth("|80|第二列|80|第三列|80")



呵呵,C版這個例子特例點,這樣可能好點:

Tables("A").SetColVisibleWidth("|第一列|80|第二列|80|第三列|80")

動態合成SetColVisibleWidth的字符串有時也不是吹灰



 回到顶部
总数 39 上一页 1 2 3 4 下一页