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


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

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

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


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

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

 

做个实例发上来测试。


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


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

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

 

tbl.Table.SetColVisibleWidth("")


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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("")

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | 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转换成别的表。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/30 16:02:00 [显示全部帖子]


If e.form.controls.contains("TabC" & id) Then
    e.form.RemoveControl("TabC" & id)
End If


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/30 16:20:00 [显示全部帖子]

sqlTable的名称,是这样的 窗口名_Table名

 

tbl.name的值,是table名,要改成如 Tables(e.form.name & "_" & tbl.name)


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/30 17:11:00 [显示全部帖子]

我测试没问题

 

Dim tab As WinForm.TabControl = e.Form.Controls("TabControl1")
Dim id As Integer = tab.TabPages.Count
Dim tbn As String = "TabMc" & id '改成固定 test 也没问题
Dim p = tab.TabPages.Add("明细" & id, "test" & id)

If e.form.controls.contains(tbn) Then
    msgbox(123)
    e.form.RemoveControl(tbn)
End If

Dim tbl As WinForm.Table

tbl = e.Form.CreateSQLTable(tbn ,"Select * From {表A}","")

tbl.Dock = 5

p.AddControl(tbl)

tab.SelectedPage = p


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/1 18:20:00 [显示全部帖子]

我这样测试没问题

 

Dim tb As Table = CurrentTable
Dim r As Row = tb.Current

 


Dim tab As WinForm.TabControl = e.Form.Controls("TabControl1")
Dim id As Integer = tab.TabPages.Count
Dim tbn As String = "TabMc" & id
Dim p = tab.TabPages.Add("明细" & id,r("第一列"))
tab.SelectedIndex = id
Dim CVS As String = tb.GetColVisibleWidth
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~?
If e.form.controls.contains(tbn) Then
    MessageBox.Show("移除")
    e.form.RemoveControl(tbn)
End If

Dim tbl As WinForm.Table
tbl = e.Form.CreateSQLTable(tbn ,"Select * From {表A} ", "")

tbl.Dock = 5
p.AddControl(tbl)
tbl.Table.SetColVisibleWidth("i|36|序号1|40|子阶代码|141|名称|246|规格型号|175|单位|36|用量|50|总用量|50|车间|36|组别|36|默认仓库名称|53|备注|77|选用料|16|父阶代码|16|序号2|16|阶层|16|排序号|16|物料属性|16|Comment|16|Footprint|16")


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/1 22:09:00 [显示全部帖子]

以下是引用2900819580在2018/4/1 21:01:00的发言:
我测试还是不行,第一次运行是没问题的,关了窗体后,再启动后,有时可以,有时不可以,反正反复关窗体多几次就一定会出现错误!

做过msgbox测试,在以下这行代码中会出现 错误 !
 

 

我测试实例没问题,请上传出错的例子。


 回到顶部