以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]按钮控制窗口权限  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=89441)

--  作者:cd_tdh
--  发布时间:2016/8/22 10:43:00
--  [求助]按钮控制窗口权限

表A有20列,我用一个窗口完成数据录入,

点“按钮一”打开窗口A时,能完成1-10列的数据录入,11-20列的控件为可见,不可用;

点“按钮二”打开窗口A时,能完成11-13列的数据录入,1-10列,14-20列控件为可见,不可用;

点“按钮三”打开窗口A时,能完成14-16列的数据录入,1-13列,17-20列控件为可见,不可用;

点“按钮四”打开窗口A时,能完成17-20列的数据录入,1-16列的控件为可见,不可用;


--  作者:大红袍
--  发布时间:2016/8/22 10:47:00
--  

参考代码

 

Dim r As Row = Tables("表A").Current

r("第一列") = e.Form.Controls("TextBox1").Text

r("第二列") = e.Form.Controls("TextBox2").Text

 

e.Form.Controls("Button2").Visible = True

e.Form.Controls("Button2").Enabled = False


--  作者:cd_tdh
--  发布时间:2016/8/22 11:41:00
--  
大红袍老师,按照你刚的思路,列太多写出来很复杂,我把控件放在了4个面板上,直接用面板控制,这个怎么写啊?我按钮在主窗口上,分区控制面板在独立窗口A上。
--  作者:大红袍
--  发布时间:2016/8/22 11:57:00
--  

 你的控件直接用列名来命名吧,这样编写代码会比较简单。不然,肯定要一列一列的赋值啊。

 

 不会做,具体上传实例。


--  作者:cd_tdh
--  发布时间:2016/8/22 12:37:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb

把对应的控件放在了面板中。
--  作者:大红袍
--  发布时间:2016/8/22 14:47:00
--  

比如按钮1代码

 

Forms("窗口2").Open()
Forms("窗口2").controls("panel2").Enabled = False
Forms("窗口2").controls("panel3").Enabled = False
Forms("窗口2").controls("panel4").Enabled = False


--  作者:cd_tdh
--  发布时间:2016/8/22 15:13:00
--  
以下是引用大红袍在2016/8/22 14:47:00的发言:

比如按钮1代码

 

Forms("窗口2").Open()
Forms("窗口2").controls("panel2").Enabled = False
Forms("窗口2").controls("panel3").Enabled = False
Forms("窗口2").controls("panel4").Enabled = False

搞定,谢谢大红袍老师,还发现了一个新问题,在做窗口的时候,我先做控件,后做面板,直接把面板至于最底层时,如果面板停靠不是Fill形式,必须移动了控件后,面板上面的控件才生效,又没办法解决,如果面板直接置于底层,面板区域内控制直接生效,这个我在做权限控制的时候,用得很多。

[此贴子已经被作者于2016/8/22 15:13:10编辑过]

--  作者:大红袍
--  发布时间:2016/8/22 15:15:00
--  
 你要移动一下控件,才会把控件放入panel里面的。
--  作者:cd_tdh
--  发布时间:2016/8/22 15:24:00
--  
这个可以在下次更新的时候,处理一下,对于新手应该很多都是后期处理权限,每次加了面板都要移动一下控件,虽然不是很麻烦,但如果直接置于底层能解决,也更方便,而且用面板确实很方便。
--  作者:大红袍
--  发布时间:2016/8/22 15:27:00
--  
 直接至于底层有别的用途,你如果要实现之间的关系,必须稍微移动一下。