以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  一处不完美的地方  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=24361)

--  作者:Fotable
--  发布时间:2012/10/11 16:45:00
--  一处不完美的地方

帮助中提到:

GetColVisibleWidth

返回一个字符串,包括显示的列及列宽信息,用符号“|”隔开。例如:日期|90|产品|120|客户|120|数量|60
本方法一般和SetColVisibleWidth配合使用。

示例

Dim cvs As String = Tables("订单").GetColVisibleWidth()
Tables(
"产品.订单").SetColVisibleWidth(cvs)

执行上述代码后,关联表Tables("产品.订单")的显示列、列位置、列宽将和主表Tables("订单")完全一致

 

实际操作中,发现并不完全一致。为什么呢?

例如:我用 getcolvisiblewidth   会得到这样的字符串  “编号|43|姓名|61|性别|26|生日|71|身份证|0|偏好|0|照片|0|备注|0|单位_职务|47|联系_手机|78|联系_手机2|0|联系_QQ|71|联系_Email|0|单位_名称|56|单位_固话|0|单位_门号|0|家庭_电话|43|家庭_地址|96”

然后 我用setcolvisiblewidth(cvs) 发现 这些width = 0的列 并没有隐藏 而是显示出来了一点点。

 


图片点击可在新窗口打开查看此主题相关图片如下:2012-10-11_164515.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2012-10-11 17:06:59编辑过]

--  作者:程兴刚
--  发布时间:2012/10/11 17:00:00
--  

1、应该由贺老师改过来,setcolvisiblewidth设置列之时将列宽为0的列直接隐藏;

2、暂时可以用循环语句自己写一个


--  作者:Fotable
--  发布时间:2012/10/11 17:08:00
--  

2.自己写 SetColVisibleWidth函数吗?

另外我觉得 贺老师应该改的是 GetColVisibleWidth 把为零的列 不需要列出来。

[此贴子已经被作者于2012-10-11 17:10:06编辑过]

--  作者:yinyb36
--  发布时间:2012/10/11 17:08:00
--  

你用getcolvisiblewidth得到的列宽为0,说明你并没有隐藏身份证|0|偏好|0|照片|0|备注|0|联系_手机2|0|联系_Email|0|单位_固话|0这些列,如需隐藏,点击数据表->其他->取消隐藏列...,将需要隐藏的列的前面的勾去掉即可。

 


--  作者:yinyb36
--  发布时间:2012/10/11 17:11:00
--  
补充说明,列宽设为-1时,为初始宽度,即新增列时的宽度。
--  作者:Fotable
--  发布时间:2012/10/11 17:11:00
--  
我是隐藏了的 我在列表头 单击右键 隐藏该列 ,这应该也是隐藏列的允许方法吧
--  作者:yinyb36
--  发布时间:2012/10/11 17:15:00
--  
那该列不应该出现在字符串中啊
--  作者:程兴刚
--  发布时间:2012/10/11 17:17:00
--  
用循环语句将cvs包含0的列排除掉再设置列宽就隐藏了!
--  作者:狐狸爸爸
--  发布时间:2012/10/11 17:20:00
--  
我改进一下。
--  作者:程兴刚
--  发布时间:2012/10/11 17:21:00
--  
以下是引用Fotable在2012-10-11 17:08:00的发言:

2.自己写 SetColVisibleWidth函数吗?

另外我觉得 贺老师应该改的是 GetColVisibleWidth 把为零的列 不需要列出来。

[此贴子已经被作者于2012-10-11 17:10:06编辑过]

 

GetColVisibleWidth不能修改的,假如您需要将隐藏的列调用出来,通过代码将为0的参数修改为其他值重新显示部分列办?
故应该在SetColVisibleWidth将为0的列设置为隐藏