Foxtable(狐表)用户栏目专家坐堂 → [求助] 动态增加Table的列宽设置


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

主题:[求助] 动态增加Table的列宽设置

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


加好友 发短信
等级:六尾狐 帖子:1353 积分:9868 威望:0 精华:0 注册:2015/6/30 8:46:00
[求助] 动态增加Table的列宽设置  发帖心情 Post By:2018/3/26 16:23:00 [只看该作者]

代码如下,红色代码有问题!

Dim tb As Table = Tables(e.Form.Name & "_Table1")
Dim r As Row = tb.Current

If r("i") = "+" Then
    
    Dim tab As WinForm.TabControl = e.Form.Controls("TabControl1")
    Dim id As Integer = e.Form.Controls("TextID").text
    tab.TabPages.Add("明细" & id,r("名称"))
    
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·
    Dim tbl As WinForm.Table
    tbl = e.Form.CreateSQLTable("TabC" & id ,"Sel ect * From {BOM} where 父阶代码 = '" & r("父阶代码") & "'", "ksg")
    
    tbl.Dock = 5
    tbl.Table.SetColVisibleWidth(tb.GetColVisibleWidth)  ‘’‘ 此行代码无效    
    e.Form.Controls("TabControl1").Tabpages(id).AddControl(tbl)
    e.Form.Controls("TextID").text = id + 1
    tab.SelectedIndex = id
    
End If

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/26 16:39:00 [只看该作者]

你现在执行后的效果是怎样的?你tb和tbl表获取的是不是同一个表【bom】?

 

做个实例发上来测试。


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


加好友 发短信
等级:六尾狐 帖子:1353 积分:9868 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2018/3/26 16:45:00 [只看该作者]

执行的效果是这行代码没有任何动作
我试过以下两行代码都出错。 动态增加的Table 名称是什么?

Tables("TabC" & id).SetColVisibleWidth(tb.GetColVisibleWidth) 
Tables(e.form.name & "TabC" & id).SetColVisibleWidth(tb.GetColVisibleWidth) 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/26 16:53:00 [只看该作者]

那就尝试改成这样,是什么效果?

 

tbl.Table.SetColVisibleWidth("")


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


加好友 发短信
等级:六尾狐 帖子:1353 积分:9868 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2018/3/26 17:17:00 [只看该作者]

没有任何作用。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/26 17:33:00 [只看该作者]

以下是引用2900819580在2018/3/26 17:17:00的发言:
没有任何作用。

 

那显示什么?能否不显示任意列?或者试试

 

e.Form.Controls("TabControl1").Tabpages(id).AddControl(tbl)
tbl.Table.SetColVisibleWidth("")

 

如果还是有问题,实例发出来测试。


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


加好友 发短信
等级:六尾狐 帖子:1353 积分:9868 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2018/3/26 19:07:00 [只看该作者]

e.Form.Controls("TabControl1").Tabpages(id).AddControl(tbl)
tbl.Table.SetColVisibleWidth("")
得到结果如下

图片点击可在新窗口打开查看此主题相关图片如下:无标题1.png
图片点击可在新窗口打开查看

e.Form.Controls("TabControl1").Tabpages(id).AddControl(tbl)
tbl.Table.SetColVisibleWidth(tb.GetColVisibleWidth)
出现以下错误 

图片点击可在新窗口打开查看此主题相关图片如下:无标题.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2018/3/26 19:07:10编辑过]

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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/3/26 20:40:00 [只看该作者]

7楼是重复添加了同一个名称的表。实例发上来测试

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/27 9:20:00 [只看该作者]

这个红色的那个不能重复的

 

Dim tbl As WinForm.Table

tbl = e.Form.CreateSQLTable("TabC" & id ,"Sel ect * From {BOM} where 父阶代码 = '" & r("父阶代码") & "'", "ksg")
 
比如,如果你已经添加过 table1,你就不能再新建 table1 这样的控件的,不然就报错。
 
如果你的table1已经存在,先要移除才能再次添加。或者是,直接使用table1,然后调用fill转换成别的表。

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


加好友 发短信
等级:六尾狐 帖子:1353 积分:9868 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2018/3/30 15:46:00 [只看该作者]

如何判断表是否已经存在?以下代码不动作! 如何移除Table

    If Tables.Contains("TabC" & id) Then
        MessageBox.Show("有")
    End If

 回到顶部
总数 26 1 2 3 下一页