用SPT訪問SQL數(shù)據(jù)表生成動態(tài)菜單

字號:

* *modify date: 2002.06.04 mender: Niko 滿足菜單打開多個(gè)窗口,窗口已打開則Activate,工具條及權(quán)限隨激活窗口而改變
    * *modify date: 2002.06.21 mender: Niko 增加文件,編輯,幫助三項(xiàng),文件項(xiàng)中內(nèi)容隨工具條內(nèi)按鈕相應(yīng)變更
    * * 該程序動態(tài)生成 菜單根據(jù) 全局變量表 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.生產(chǎn)計(jì)劃 P (Production)
    * * 3.工程管理 E (Engineer)
    * * 4.品質(zhì)(管理) Q (Quantity)
    * * 5.財(cái)務(wù)(系統(tǒng)) A (Account)
    * * 6.報(bào)關(guān)(系統(tǒng)) 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([只能從頂層表單調(diào)用該菜單。請確認(rèn)您表單的 ShowWindow 屬性已設(shè)為 2。閱讀此菜單 MPR 文件的頭部分,可以獲得詳細(xì)信息。])
    *!* 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 &&得到有有多少個(gè)第二級菜單有第三級菜單
    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 得到有第三級菜單的程序代號權(quán)限表。
    select * from global_right where exists(select * from temp where global_right.program_id==temp.program_id) into cursor tempp
    &&tempp 得到有第三級菜單的第二級菜單項(xiàng)
    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]="報(bào)價(jià)" && M
    a_menupops[4]="生產(chǎn)計(jì)劃" && P
    a_menupops[5]="工程" && E
    a_menupops[6]="品質(zhì)" && Q
    a_menupops[7]="車間生產(chǎn)" && W
    a_menupops[8]="采購" && B
    a_menupops[9]="倉庫" && S
    a_menupops[10]="報(bào)關(guān)" && C
    a_menupops[11]="財(cái)務(wù)" && A
    a_menupops[12]="系統(tǒng)管理" && O
    a_menupops[13]="幫助" && H
    j=0
    select tempp
    scan
    j=j+1
    a_menupops[13+j]=alltrim(tempp.descr)
    endscan
    ENDIF