以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 锁定的列保存后再打开项目后无效?(已变通完成). (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=5233) |
-- 作者:yangming -- 发布时间:2009/12/1 18:31:00 -- 锁定的列保存后再打开项目后无效?(已变通完成). 下午外出前,我做的锁定列,保存文件,现在我打开文件,发现原,锁定的列并不能保存,还是没有锁定.原因何在? [此贴子已经被作者于2009-12-2 14:04:14编辑过]
|
-- 作者:czy -- 发布时间:2009/12/1 18:35:00 -- 的确如此。 |
-- 作者:狐狸爸爸 -- 发布时间:2009/12/2 8:43:00 -- 菜单的锁定表和锁定列是临时的 通过表属性或者列属性设置,才是永久的。 |
-- 作者:yangming -- 发布时间:2009/12/2 10:40:00 -- 以下是引用狐狸爸爸在2009-12-2 8:43:00的发言:
菜单的锁定表和锁定列是临时的 通过表属性或者列属性设置,才是永久的。 晕死,动态生成的表,不好设置表属性及列属性啊 [此贴子已经被作者于2009-12-2 10:42:31编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2009/12/2 10:45:00 -- 秀一下:进销存软件 既然是动态生成的表,就应该用代码动态设置的。 |
-- 作者:yangming -- 发布时间:2009/12/2 11:39:00 -- 以下是引用狐狸爸爸在2009-12-2 10:45:00的发言:
既然是动态生成的表,就应该用代码动态设置的。 我就是用代码设置好锁定了,但是想保存下来,但是无法保存啊,总不能每次进入前都再锁定一次吧? |
-- 作者:狐狸爸爸 -- 发布时间:2009/12/2 12:05:00 -- 呵呵,不是每次都设定一次,而是每次都执行一次锁定列的代码。 |
-- 作者:yangming -- 发布时间:2009/12/2 13:05:00 -- 我做了个模板表,专门用于放置锁定列的表名及列名,然后在项目的 AfterOpenProject事件中放入以下的代码,这样每次打开项目后,就会对所有表进行查找,如找到与模板中表名和列名相同的,就锁定 For Each dt As DataTable In DataTablesFor Each dc As DataCol In dt.DataCols For Each dr As Datarow In DataTables("模板").Datarows \'Dim dr As row = Tables("模板").Current IF dt.Name=dr("表名") AndAlso dc.Name = dr("列名") Then dt.DataCols(dc.Name).AllowEdit = False End If Next Next Next |
-- 作者:yangming -- 发布时间:2009/12/2 13:08:00 -- 也可以这样,在窗口节点的事件中加入这样的代码. For Each dc As DataCol In DataTables(Vars("表名")).DataCols For Each dr As Datarow In DataTables("模板").Datarows IF Vars("表名")=dr("表名") AndAlso dc.Name = dr("列名") Then DataTables(Vars("表名")).DataCols(dc.Name).AllowEdit = False DataTables("XC_帐套默认_Table1").DataCols(dc.Name).AllowEdit = False End If Next Next 两种方法各人利弊,放在项目中,只要每次打开表执行一次便可,但是由于在所有表中查找,如果表多,那可能会影响速度,放在窗口的节点中,每次选择节点就要执行一次,好象又太频繁了,我真没想好放在何处更好,狐友帮我出出主意吧,呵呵 [此贴子已经被作者于2009-12-2 13:10:51编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2009/12/2 13:21:00 -- 这种代码运行速度非常快,不用考虑效率。 |