以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  表Load后在事件中自动设置 行宽度的疑问  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=126994)

--  作者:蓝色理想
--  发布时间:2018/11/2 12:49:00
--  表Load后在事件中自动设置 行宽度的疑问
目的: 想用事件实现 在表显示后,自动设置 行宽度

在  AfterLoadTableSetting 事件录入如下代码,发现 messagebox 提示事件运行了,但表的列宽度没按 参数设置。(设置参数代码将E参数直接修改为表名,运行没问题没问题)


   
MessageBox.Show(e.Table.Name & "AfterLoadTablesetting run !")

Tables(e.Table.Name).SetColVisibleWidth("账套期间|98|所属表名|111|所属ID|57|合同编号|112|附件名称|179|扩展名|52|附件大小|61|备注|98|申报用户|98|用户分组|98|申报日期|98|审核人员|98|审核日期|98|编辑者|98|是否结账|98")

请问如何解决?

--  作者:蓝色理想
--  发布时间:2018/11/2 13:00:00
--  
刚才又做了测试,把 用E参数提供的表名,直接用 字符串 “公用_附件”,填写上,就正常了。
用 if 函数 判断 E参数提供的表名 与 “公用_附件” 是否相等,提示也相等,但就是 设置无法正常运行。。。。。。

\'e.Table.Cols("附件名称").AllowEdit = False
MessageBox.Show(e.Table.Name & "AfterLoadTablesetting run !")

\'Tables("公用_附件").SetColVisibleWidth("账套期间|98|所属表名|111|所属ID|57|合同编号|112|附件名称|179|扩展名|52|附件大小|61|备注|98|申报用户|98|用户分组|98|申报日期|98|审核人员|98|审核日期|98|编辑者|98|是否结账|98")
If e.Table.Name = "公用_附件" Then
    MessageBox.Show(e.Table.Name & "= 公用_附件 !")
Else
    MessageBox.Show(e.Table.Name & "<> 公用_附件 !")
End If

Tables(e.Table.Name).SetColVisibleWidth("账套期间|98|所属表名|111|所属ID|57|合同编号|112|附件名称|179|扩展名|52|附件大小|61|备注|98|申报用户|98|用户分组|98|申报日期|98|审核人员|98|审核日期|98|编辑者|98|是否结账|98")


--  作者:蓝色理想
--  发布时间:2018/11/2 13:07:00
--  
还有就是刚编辑好 事件代码,按确认保存后,可以看到代码正确的设置了列宽度。
我就在想,难道是用E 参数传递名字的必须要表已加载完毕?而 直接写 表名,不需要表加载完毕?
真是一个奇怪的问题啊


--  作者:蓝色理想
--  发布时间:2018/11/2 13:56:00
--  
这个问题还真需要解决,不然不方便用于自动载入 各用户设置
--  作者:有点甜
--  发布时间:2018/11/2 15:36:00
--  

测试了一下,这个问题无法解决。

 

在这个事件无法设置显示隐藏列。请换到其它地方变通处理。


--  作者:蓝色理想
--  发布时间:2018/11/2 15:52:00
--  
好的,若是有可能,请修复一下,这个事件用于载入  用户的表显示设置还是挺方便的,仔细研究了,表事件中要实现这个功能,只有这个事件才有可能