* *modify date: 2002.06.04 mender: Niko 满足菜单打开多个窗口,窗口已打开则Activate,工具条及权限随激活窗口而改变
* *modify date: 2002.06.21 mender: Niko 增加文件,编辑,帮助三项,文件项中内容随工具条内按钮相应变更
* * 该程序动态生成 菜单根据 全局变量表 global_right
* *global_right(program_id c(6),descr c(40) null,search logic ,amend logic,new logic,candele logic)
* * 主菜单固定 (new)
* * 1.市场管理 M (Market)
* * 2.生产计划 P (Production)
* * 3.工程管理 E (Engineer)
* * 4.品质(管理) Q (Quantity)
* * 5.财务(系统) A (Account)
* * 6.报关(系统) C (Custom)
* * 7.车间(管理) W (Workshop)
* * 8.采购(管理) B (Workshop)
* * 9.仓库(管理) S (Workshop)
* * 10.其它(功能) O (Other)
* * 11.帮助 H (Help)
* * 12.退出 X (eXit)
LPARAMETERS oFormRef, getMenuName, lUniquePopups
LOCAL cMenuName, nTotPops, a_menupops, cTypeParm2, cSaveFormName,i,macro1,programid,loginsucc
*!* IF TYPE("m.oFormRef") # "O" OR ;
*!* LOWER(m.oFormRef.BaseClass) # 'form' OR ;
*!* m.oFormRef.ShowWindow # 2
*!* MESSAGEBOX([只能从顶层表单调用该菜单。请确认您表单的 ShowWindow 属性已设为 2。阅读此菜单 MPR 文件的头部分,可以获得详细信息。])
*!* RETURN
*!* ENDIF
m.cTypeParm2 = TYPE("m.getMenuName")
m.cMenuName ='MAINFORM' &&& SYS(2015)
m.cSaveFormName = m.oFormRef.Name
IF m.cTypeParm2 = "C" OR (m.cTypeParm2 = "L" AND m.getMenuName)
m.oFormRef.Name = m.cMenuName
ENDIF
IF m.cTypeParm2 = "C" AND !EMPTY(m.getMenuName)
m.cMenuName = m.getMenuName
ENDIF
i=0
&& select * from global_right where len(alltrim(program_id))>3 into cursor temp &&第三级菜单
select distinct left(program_id,3) as program_id from global_right where len(alltrim(program_id))>3 into cursor temp
i=_tally &&得到有有多少个第二级菜单有第三级菜单
select * from global_right where exists(select * from temp where global_right.program_id=temp.program_id) and len(alltrim(global_right.program_id))>3 into cursor temp_menu
&&tempp_menu 得到有第三级菜单的程序代号权限表。
select * from global_right where exists(select * from temp where global_right.program_id==temp.program_id) into cursor tempp
&&tempp 得到有第三级菜单的第二级菜单项
DIMENSION a_menupops[i+13]
IF TYPE("m.lUniquePopups")="L" AND m.lUniquePopups
FOR nTotPops = 3 TO ALEN(a_menupops)
a_menupops[m.nTotPops]= SYS(2015)
ENDFOR
ELSE
a_menupops[1]="文件" && F
a_menupops[2]="编辑" && D
a_menupops[3]="报价" && M
a_menupops[4]="生产计划" && P
a_menupops[5]="工程" && E
a_menupops[6]="品质" && Q
a_menupops[7]="车间生产" && W
a_menupops[8]="采购" && B
a_menupops[9]="仓库" && S
a_menupops[10]="报关" && C
a_menupops[11]="财务" && A
a_menupops[12]="系统管理" && O
a_menupops[13]="帮助" && H
j=0
select tempp
scan
j=j+1
a_menupops[13+j]=alltrim(tempp.descr)
endscan
ENDIF
#define m_num 13 &&定义一级菜单个数
dimension m_menu[m_num]
m_menu[1]="F%" && 1.文件 M (Market)
m_menu[2]="D%" && 2.编辑 P (Production)
m_menu[3]="M%" && 3.报价 E (Engineer)
m_menu[4]="P%" && 4.生产计划 Q (Quantity)
m_menu[5]="E%" && 5.工程 A (Account)
m_menu[6]="Q%" && 6.品质 C (Custom)
m_menu[7]="W%" && 7.车间生产 W (Workshop)
m_menu[8]="B%" && 8.采购 B (Workshop)
m_menu[9]="S%" && 9.仓库 S (Workshop)
m_menu[10]="C%" && 10.报关 O (Other)
m_menu[11]="A%" && 11.财务 H (Help)
m_menu[12]="O%" && 12.系统管理 X (eXit)
m_menu[13]="H%" && 13.帮助
** 一级菜单定义 **
DEFINE MENU (m.cMenuName) IN (m.oFormRef.Name) BAR
DEFINE PAD fileobj OF (m.cmenuname) PROMPT "文件(\ KEY ALT+F, "ALT+F" ;
MESSAGE "新建, Store,删除,Restore,关闭窗口, 打印, or 退出系统"
DEFINE PAD editobj OF (m.cmenuname) PROMPT "编辑(\ KEY ALT+E, ""
DEFINE PAD fobobj OF (m.cmenuname) PROMPT "报价(\ KEY ALT+M, ""
DEFINE PAD planwork OF (m.cmenuname) PROMPT "生产计划(\ KEY ALT+P, ""
DEFINE PAD procedobj OF (m.cmenuname) PROMPT "工程(\ KEY ALT+E, ""
DEFINE PAD quality OF (m.cmenuname) PROMPT "品质(\ KEY ALT+Q, ""
DEFINE PAD factwork OF (m.cmenuname) PROMPT "车间生产(\ KEY ALT+W, ""
DEFINE PAD buygoods OF (m.cmenuname) PROMPT "采购(\ KEY ALT+B, ""
DEFINE PAD goods OF (m.cmenuname) PROMPT "仓库(\ KEY ALT+S, ""
DEFINE PAD customs OF (m.cmenuname) PROMPT "报关(\ KEY ALT+C, ""
DEFINE PAD finance OF (m.cmenuname) PROMPT "财务(\ KEY ALT+A, ""
DEFINE PAD defaultsys OF (m.cmenuname) PROMPT "系统管理(\ KEY ALT+O, "" ;
MESSAGE "系统用户权限及基础信息定义"
DEFINE PAD helpobj OF (m.cmenuname) PROMPT "帮助(\ KEY ALT+H, ""
ON PAD fileobj OF (m.cMenuName) ACTIVATE POPUP filepad
ON PAD editobj OF (m.cMenuName) ACTIVATE POPUP editpad
ON PAD fobobj OF (m.cMenuName) ACTIVATE POPUP (a_menupops[3])
ON PAD planwork OF (m.cMenuName) ACTIVATE POPUP (a_menupops[4])
ON PAD procedobj OF (m.cMenuName) ACTIVATE POPUP (a_menupops[5])
ON PAD quality OF (m.cMenuName) ACTIVATE POPUP (a_menupops[6])
ON PAD factwork OF (m.cMenuName) ACTIVATE POPUP (a_menupops[7])
ON PAD buygoods OF (m.cMenuName) ACTIVATE POPUP (a_menupops[8])
ON PAD goods OF (m.cMenuName) ACTIVATE POPUP (a_menupops[9])
ON PAD customs OF (m.cMenuName) ACTIVATE POPUP (a_menupops[10])
ON PAD finance OF (m.cMenuName) ACTIVATE POPUP (a_menupops[11])
ON PAD defaultsys OF (m.cMenuName) ACTIVATE POPUP (a_menupops[12])
ON PAD helpobj OF (m.cMenuName) ACTIVATE POPUP helppad
**** 文件项菜单
DEFINE POPUP filepad MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE BAR 1 OF filepad PROMPT "打开窗口(\ KEY CTRL+O, "CTRL+O"
DEFINE BAR 2 OF filepad PROMPT "\-"
DEFINE BAR 3 OF filepad PROMPT "增加记录(\ KEY CTRL+I, "CTRL+I" ;
SKIP FOR type("bar1") # "O" OR (Bar1.Command1.Enabled=.F.);
MESSAGE "在当前窗口增加新记录"
DEFINE BAR 4 OF filepad PROMPT "修改记录(\ KEY CTRL+E, "CTRL+E" ;
SKIP FOR type("bar1") # "O" OR (Bar1.Command2.Enabled=.F.);
MESSAGE "修改当前窗口记录"
DEFINE BAR 5 OF filepad PROMPT "删除记录(\ KEY CTRL+D, "CTRL+D" ;
SKIP FOR type("bar1") # "O" OR (Bar1.Command3.Enabled=.F.);
MESSAGE "删除当前记录"
DEFINE BAR 6 OF filepad PROMPT "\-"
DEFINE BAR 7 OF filepad PROMPT "保存录入(\ KEY CTRL+S, "CTRL+S" ;
SKIP FOR type("bar1") # "O" OR (Bar1.Command4.Enabled=.F.);
MESSAGE "保存当前窗口记录"
DEFINE BAR 8 OF filepad PROMPT "撤消录入(\ KEY CTRL+R, "CTRL+R" ;
SKIP FOR type("bar1") # "O" OR (Bar1.Command5.Enabled=.F.) ;
MESSAGE "还原当前窗口记录"
DEFINE BAR 9 OF filepad PROMPT "\-"
DEFINE BAR 10 OF filepad PROMPT "查询记录(\ KEY CTRL+F, "CTRL+F" ;
SKIP FOR type("bar1") # "O" OR (Bar1.Command6.Enabled=.F.) ;
MESSAGE "还原当前窗口记录"
DEFINE BAR 11 OF filepad PROMPT "打印机设置(\ KEY CTRL+U, "CTRL+U" ;
MESSAGE "选择打印机并设置纸张"
DEFINE BAR 12 OF filepad PROMPT "打印报表(\ KEY CTRL+P, "CTRL+P" ;
SKIP FOR type("bar1") # "O" OR (Bar1.Command7.Enabled=.F.);
MESSAGE "直接打印"
DEFINE BAR 13 OF filepad PROMPT "确认记录(\ KEY CTRL+K, "CTRL+K" ;
SKIP FOR type("bar1") # "O" OR (Bar1.Command8.Enabled=.F.)
DEFINE BAR 14 OF filepad PROMPT "即时帮助(\ KEY CTRL+H, "CTRL+H" ;
SKIP FOR type("bar1") # "O"
DEFINE BAR 15 OF filepad PROMPT "\-"
DEFINE BAR 16 OF filepad PROMPT "关闭窗口(\ KEY ESC, "ESC" ;
SKIP FOR type("bar1") # "O" OR ( Bar1.activenum = 0) ;
MESSAGE "关闭当前窗口"
DEFINE BAR 17 OF filepad PROMPT "\-"
DEFINE BAR 18 OF filepad PROMPT "第一条记录" ;
KEY HOME ,"Home" ;
SKIP FOR type("bar1") # "O" OR (Bar1.gotop.Enabled=.F.)
DEFINE BAR 19 OF filepad PROMPT "上一条记录" ;
KEY PGUP , "Page Up" ;
SKIP FOR type("bar1") # "O" OR (Bar1.goback.Enabled=.F.)
DEFINE BAR 20 OF filepad PROMPT "下一条记录" ;
KEY PGDN, "Page Down" ;
SKIP FOR type("bar1") # "O" OR (Bar1.gonext.Enabled=.F.)
DEFINE BAR 21 OF filepad PROMPT "末一条记录" ;
KEY End ,"End" ;
SKIP FOR type("bar1") # "O" OR (Bar1.gobottom.Enabled=.F.)
DEFINE BAR 22 OF filepad PROMPT "\-"
DEFINE BAR 23 OF filepad PROMPT "更新组别" KEY CTRL+F9,"CTRL+F9"
DEFINE BAR 24 OF filepad PROMPT "更新权限" KEY CTRL+F10,"CTRL+F10"
DEFINE BAR 25 OF filepad PROMPT "系统信息" KEY CTRL+F11,"CTRL+F11"
*** DEFINE BAR 26 OF filepad PROMPT "重新登录" KEY F9,"F9"
DEFINE BAR 27 OF filepad PROMPT "\-"
DEFINE BAR 28 OF filepad PROMPT "E\ MESSAGE "退出泽冠 MRP II 系统"
责任编辑:小草