zoukankan      html  css  js  c++  java
  • VFP下动态快捷菜单

    NOTE 动态快捷菜单生成
    NOTE 作者:张雁鸿
    NOTE 时间:2004-12-26
    NOTE
    NOTE
    * 要求
    * 提供:快捷菜单数据存放的cursor
    * Cursor格式:id c(10),name c(50),parent c(10)
    * id 必须以字母为开头

    PARAMETERS m.tcurname,m.tnrow,m.tncol

    IF NOT USED(tcurname)
     ERROR [没有提供菜单数据表]
     RETURN ''
    ENDIF

    SELECT (tcurname)

    *!* IF NOT FIELD([id]) OR NOT FIELD([name]) OR NOT FIELD([parent]) OR NOT FIELD([level])
    *!*  ERROR [数据格式不匹配]
    *!*  RETURN ''
    *!* ENDIF

    IF VARTYPE(m.tnrow)<>'N'
     m.tnrow=MROW()
    ENDIF
    IF VARTYPE(m.tncol)<>'N'
     m.tncol=MCOL()
    ENDIF

    m.selid=""

    DEFINE POPUP shtmnu RELATIVE SHORTCUT

    createBar("",[shtmnu])

    ACTIVATE POPUP shtmnu AT m.tnrow,m.tncol

    RETURN m.selid

    FUNCTION createBar(tcp as String,tcpop as String) as Boolean
     LOCAL m.lcur as String,m.llr as Boolean
     m.llr=.f.
     m.lcur=SYS(2015)
     IF NOT (EMPTY(m.tcp) OR ISNULL(m.tcp))
      SELECT * FROM (tcurname) INTO CURSOR (lcur) WHERE parent=m.tcp
      DEFINE POPUP (m.tcp) SHORTCUT RELATIVE
     ELSE
      SELECT * FROM (tcurname) INTO CURSOR (lcur) WHERE EMPTY(parent) OR ISNULL(parent)
     ENDIF
     IF RECCOUNT(m.lcur)>0
      
      SELECT (m.lcur)
      LOCAL m.i
      m.i=0
      SCAN
       m.i=m.i+1
       
       DEFINE BAR (m.i) OF (m.tcpop) PROMPT (ALLTRIM(name))
       
       LOCAL m.lcid
       m.lcid=ALLTRIM(id)
       IF createBar(m.lcid,m.lcid)
        ON BAR (m.i) OF (m.tcpop) ACTIVATE POPUP (m.lcid)
       ELSE
        ON SELECTION BAR (m.i) OF (m.tcpop) shortcutclick('&lcid.')
       ENDIF
       
      ENDSCAN
      m.llr=.t.
     ENDIF
     USE IN (lcur)
     RETURN m.llr
    ENDFUNC

    FUNCTION shortcutclick(mnuid as String)
     m.selid=m.mnuid
    ENDFUNC

  • 相关阅读:
    9.4
    9.3
    9.2
    2016.9.1
    html,body
    prototype
    京东笔试题的一些小细节
    gulp安装过程中的问题。
    json
    双飞翼布局和圣杯布局
  • 原文地址:https://www.cnblogs.com/77543/p/88482.html
Copyright © 2011-2022 走看看