以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  SetColVisibleWidth不能按预期运行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=153292)

--  作者:rjh4078
--  发布时间:2020/8/6 11:46:00
--  SetColVisibleWidth不能按预期运行
Dim t As Table=Tables("日报.日报明细")
If t.DataTable.DataCols.Contains("-") = False Then
    t.DataTable.DataCols.Add("-",Gettype(String),1)
    t.Cols("-").Width = 24
    t.Cols("-").Move(0)
    t.Cols.Frozen = 1
End If
Functions.Execute("当前操作员表格式",t.name) \'\'加载当前操作员个性化表格式
Dim s as string=t.GetColVisibleWidth()
Messagebox.show(s) \'\'s1
s= "-|24|" & s
Messagebox.show(s) \'\'s2
t.SetColVisibleWidth(s)

这段代码放在了窗口的afterload事件中 目的是在操作员自定义列格式前加一个系统强制列“-” ,s1=“单号|120|填报人|120”,s2="-|24|单号|120|填报人|120" 但是 显示的结果 还是s1的结果
通过代码

For Each c  As Col In Tables("日报明细").cols
If c.name="-" Then
output.show(c.name)
End If
Next
能显示“-“列
但是通过代码1 2 3
1:
For Each c  As Col In Tables("日报.日报明细").cols
If c.name="-" Then
output.show(c.name)
End If
Next
2:
For Each c  As Col In Tables("印刷日报.印刷日报明细").cols
If c.Visible=False then
output.show(c.name)
End If
Next
3:
For Each c  As Col In Tables("印刷日报.印刷日报明细").cols
If c.Visible then
output.show(c.name)
End If
Next
发现不存在”-“列
通过代码 Tables("日报.日报明细").SetColVisibleWidth("-|24") 强制显示 所有列都无法显示

--  作者:rjh4078
--  发布时间:2020/8/6 12:08:00
--  
另外发现 通过DataCols.Add 的列 在tables("日报明细")里有 但是在关联表 x.日报明细 里却没有
--  作者:rjh4078
--  发布时间:2020/8/6 12:14:00
--  
这个地方应该是个BUG  重新把x和日报明细关联一遍  DataCols.Add增加的列就会出现在x.日报明细中 运行上述代码正常 退出项目 又不行 再关联一遍 又OK
--  作者:有点蓝
--  发布时间:2020/8/6 12:28:00
--  
我测试没有问题,请上传实例说明

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