Foxtable(狐表)用户栏目专家坐堂 → [求助]遍历列宽返回-1?【已解决】


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

主题:[求助]遍历列宽返回-1?【已解决】

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


加好友 发短信
等级:一尾狐 帖子:456 积分:7267 威望:0 精华:0 注册:2012/2/6 12:27:00
[求助]遍历列宽返回-1?【已解决】  发帖心情 Post By:2017/6/1 10:19:00 [只看该作者]

For Each dc As Col In Tables("temp_table1").Cols
    Output.Show(dc.Width)
Next

怎么返回的都是-1?


还有就是对此窗口表中的列隐藏后,仍可以遍历出来,如何不出来?
[此贴子已经被作者于2017/6/1 11:35:48编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/1 10:26:00 [只看该作者]

 -1是默认列宽,是98,你也可以直接获取

 

Dim t As Table = Tables("表A")
For Each dc As Col In t.Cols
    Output.Show(t.grid.Cols(dc.name).WidthDisplay)
Next


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


加好友 发短信
等级:六尾狐 帖子:1249 积分:9474 威望:0 精华:0 注册:2013/5/12 9:22:00
  发帖心情 Post By:2017/6/1 10:32:00 [只看该作者]

列宽的默认值本来就是“-1”。

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/1 10:37:00 [只看该作者]

以下是引用狐作非为在2017/6/1 10:19:00的发言:


还有就是对此窗口表中的列隐藏后,仍可以遍历出来,如何不出来?
[此贴子已经被作者于2017/6/1 10:22:07编辑过]

 

加入判断 If c.Visible = True Then


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


加好友 发短信
等级:一尾狐 帖子:456 积分:7267 威望:0 精华:0 注册:2012/2/6 12:27:00
  发帖心情 Post By:2017/6/1 10:38:00 [只看该作者]

我想获取当前表格所有列宽怎么弄?

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


加好友 发短信
等级:一尾狐 帖子:456 积分:7267 威望:0 精华:0 注册:2012/2/6 12:27:00
  发帖心情 Post By:2017/6/1 10:41:00 [只看该作者]

加入判断 If c.Visible = True Then

  

还是会遍历出来,难道副本不行?

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/1 10:44:00 [只看该作者]

Dim t As Table = Tables("表A")
For Each dc As Col In t.Cols

    If dc.Visible=true Then
        Output.Show(t.grid.Cols(dc.name).WidthDisplay)

    End If
Next


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


加好友 发短信
等级:一尾狐 帖子:456 积分:7267 威望:0 精华:0 注册:2012/2/6 12:27:00
  发帖心情 Post By:2017/6/1 11:27:00 [只看该作者]

谢谢,但如果是
For i As Integer =0 To t.Cols.Count-1  
    If t.Cols(i).Visible=True Then
        Output.Show(t.Cols(i).name) & "|" & t.grid.Cols(i).name.Width)  这里应该怎么改?
    End If
Next

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/1 11:31:00 [只看该作者]

Dim t As Table = CurrentTable
For i As Integer =0 To t.Cols.Count-1 
    If t.Cols(i).Visible=True Then
        Output.Show(t.Cols(i).name & "|" & t.grid.Cols(i+1).Width) 
    End If
Next

 

或者

 

Dim t As Table = CurrentTable
For i As Integer =0 To t.Cols.Count-1 
    If t.Cols(i).Visible=True Then
        Output.Show(t.Cols(i).name & "|" & t.grid.Cols(t.Cols(i).name).Width) 
    End If
Next


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


加好友 发短信
等级:一尾狐 帖子:456 积分:7267 威望:0 精华:0 注册:2012/2/6 12:27:00
  发帖心情 Post By:2017/6/1 11:35:00 [只看该作者]

谢谢

 回到顶部