vfp 表单中引用了某菜单 例如A.mpr 现在要根据登陆的权限QX的值来使某些菜单或者子菜单变灰

具体应该用什么办法看了一些介绍说可以用skip来实现但是这个skip的语句是应该写在表单的init中还是写在a.mpr中呢。如果是写在表单中,那么具体的语句怎么写呢,比如... 具体应该用什么办法 看了一些介绍说可以用skip来实现 但是这个skip的语句是应该写在表单的init中还是写在a.mpr中呢。如果是写在表单中,那么具体的语句怎么写呢,比如某一级菜单叫做 “系统管理” 当QX不等于0时不可用,然后另外一个一级菜单“打印”下面,有个二级菜单叫做 “系统账户管理信息打印”在QX不等于0时也不可用 应该怎么写 展开
 我来答
雁西楼
科技发烧友

2016-06-15 · 有一些普通的科技小锦囊
知道小有建树答主
回答量:1118
采纳率:73%
帮助的人:409万
展开全部

在哪里进行Skip,取决于Skip的条件是在什么时候可用.

如果Skip使用的变量是全局的,并且在加载菜单前就已经建立,那么,就可以在菜单中定义语句中使用Skip子句来完成.

这样的好处是,不需要因为这些变量的值发生变化而去重新对菜单的项进行Skip处理.

例如这句:

DEFINE PAD _4hm0zl0tf OF _MSYSMENU PROMPT C_PROP_销售业务 COLOR SCHEME 3 ;
SKIP FOR Not _Screen.NowUser.CheckLimit(C_LMT_收银台帐, .T.)

这样的语句一般在运行时不需要特别关心,菜单在每次被激活与显示时,都会自动去计算相应的表达式以确定它们是否需要被禁用.


如果在特定情况下需要禁用某个菜单或菜单项,则可以在特定情况发生时通过Skip语句,这样的好处是,不需要考虑Skip的条件作用域,它只在相应的Set Skip Of命令执行时才会被计算,像这样:

*开始编辑
ThisForm.StartEdit()
Set Skip Of Pad _MYMENU_EDIT Of _SYSMENU .F.
...

这样做,一般需要做两个对应的操作,上面这段代码在表单进入编辑模式时启用了自定义菜单_MyMenu_Edit,它提供了一些编辑功能,在结束编辑后(保存或取消或),应当重新禁用这个菜单:

Set Skip Of Pad _MYMENU_EDIT Of _SYSMENU .T.

这样的机制从控制流程与代码结构来看都是比较复杂的.

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式