楼主的问题有三种解决思路:
1. 采用将当前表单定义为全局变量的方法,虽然可行,但我认为是“下策”,原因请参考“开发漫谈(22)”最后一段。
2. 我在三楼给出的方案,是通过将当前表单传递给菜单中的私有变量(Private),可列为“中策”。
3. 如果楼主熟悉相关的菜单处理命令和函数,可直接在RightClick中对菜单进行定义和处理,代码更为简捷,可以直接引用 THISFORM,可列为“上策”。表格右键代码参考如下:
程序代码:
[ 本帖最后由 liuxingang28 于 2014-5-19 12:02 编辑 ]
1. 采用将当前表单定义为全局变量的方法,虽然可行,但我认为是“下策”,原因请参考“开发漫谈(22)”最后一段。
2. 我在三楼给出的方案,是通过将当前表单传递给菜单中的私有变量(Private),可列为“中策”。
3. 如果楼主熟悉相关的菜单处理命令和函数,可直接在RightClick中对菜单进行定义和处理,代码更为简捷,可以直接引用 THISFORM,可列为“上策”。表格右键代码参考如下:
程序代码:* 定义菜单
DEACTIVATE POPUP mnuPrint
DEFINE POPUP mnuPrint SHORTCUT RELATIVE FROM MROW(),MCOL()
DEFINE BAR 1 OF mnuPrint PROMPT '预览当前户家庭档案卡'
DEFINE BAR 2 OF mnuPrint PROMPT '打印当前户家庭档案卡'
DEFINE BAR 3 OF mnuPrint PROMPT '打印查询结果家庭档案卡'
DEFINE BAR 4 OF mnuPrint PROMPT '批量打印家庭档案卡'
* 激活菜单
ON SELECTION POPUP mnuPrint DEACTIVATE POPUP mnuPrint
ACTIVATE POPUP mnuPrint
RELEASE POPUPS mnuPrint
* 根据选择的菜单项,做相应处理
LOCAL nBar
nBar = BAR()
DO CASE
CASE nBar = 1 && 预览当前户
THISFORM.Image6.Visible = .f.
THISFORM.Check7.Value = 0
* ……
CASE nBar = 2 && 打印当前户
* ……
CASE nBar = 3 && 打印查询结果
* ……
CASE nBar = 4 && 批量打印
* ……
ENDCASE[ 本帖最后由 liuxingang28 于 2014-5-19 12:02 编辑 ]

泉城飞狐









,经过代码测试,第二种和第三种的处理速度一样的。