Foxtable(狐表)用户栏目专家坐堂 → 获取列宽BUG?


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

主题:获取列宽BUG?

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


加好友 发短信
等级:婴狐 帖子:50 积分:426 威望:0 精华:0 注册:2012/11/1 18:09:00
获取列宽BUG?  发帖心情 Post By:2012/12/28 22:30:00 [只看该作者]

目的:想获取列标题和列宽(因为我MS SQL数据库表的列名是英文的,有张表记录列名中英文对照)

 

Dim cvs As String =CurrentTable.GetColVisibleWidth()

第一列|98|第二列|98|第三列|98|第四列|98|第五列|98|第六列|98|第七列|98|第八列|98|第九列|98|第十列|98

可以正常获取到,不过GetColVisibleWidth()获取到的是列名(不是列标题)和列宽

 

所以我想这样去获取

Dim lk As String
Dim dn As String =CurrentTable.name
For i As Integer = 0 To Tables(dn).Cols.Count - 1
    lk=lk & Tables(dn).Cols(i).Caption & "|" &  Tables(dn).Cols(i).Width & "|"
Next
output.show(lk)

a|-1|第二列|-1|第三列|-1|第四列|-1|第五列|-1|第六列|-1|第七列|-1|第八列|-1|第九列|-1|第十列|-1|

列宽全是-1,求解


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


加好友 发短信
等级:婴狐 帖子:50 积分:426 威望:0 精华:0 注册:2012/11/1 18:09:00
  发帖心情 Post By:2012/12/28 22:33:00 [只看该作者]

再试,发现调整过的列可以获取到,没动过的就是-1

a|64|第二列|83|第三列|81|第四列|119|第五列|100|第六列|-1|第七列|-1|第八列|-1|第九列|-1|第十列|-1|


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


加好友 发短信
等级:婴狐 帖子:50 积分:426 威望:0 精华:0 注册:2012/11/1 18:09:00
  发帖心情 Post By:2012/12/28 23:07:00 [只看该作者]

Dim cvs As String =CurrentTable.GetColVisibleWidth()
Dim dn As String =CurrentTable.Name
Tables("字段对应").Filter="[TN]='" & dn & "'"
For Each R As Row In Tables("字段对应")
    CVS=CVS.Replace(R("英文"),R("中文"))
Next

 

总算是曲线解决了

不过还是请狐爸关注一下,为什么获取到是-1

窗口中用SQLTABLE表然后设置列宽(本次更新刚加上的功能),碰到这个问题,绕了一圈还是这个,

影响倒是不太,好改下次就更新一下方便用户


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/29 9:26:00 [只看该作者]

 如果列宽是-1的话,就用Tables().DefaultColWidth替换吧。

 -1指的是没有修改过列宽度的标志。

 回到顶部