用SPT访问SQL数据表生成动态菜单
来源:优易学  2011-12-9 18:44:52   【优易学:中国教育考试门户网】   资料下载   IT书店

 

 ON SELECTION BAR 1 OF filepad ;
  DO openform ;
  IN LOCFILE("\MRP\mainmenu" ,"MPX;MPR|FXP;PRG" ,"WHERE is MAIN?")
  ON SELECTION BAR 3 OF filepad Bar1.Command1.Click()
  ON SELECTION BAR 4 OF filepad Bar1.Command2.Click()
  ON SELECTION BAR 5 OF filepad Bar1.Command3.Click()
  ON SELECTION BAR 7 OF filepad Bar1.Command4.Click()
  ON SELECTION BAR 8 OF filepad Bar1.Command5.Click()
  ON SELECTION BAR 10 OF filepad Bar1.Command6.Click()
  ON SELECTION BAR 11 OF filepad ;
  DO setupprint ;
  IN LOCFILE("\MRP\mainmenu" ,"MPX;MPR|FXP;PRG" ,"WHERE is MAIN?")
  ON SELECTION BAR 12 OF filepad Bar1.Command7.Click()
  ON SELECTION BAR 13 OF filepad Bar1.Command8.Click()
  ON SELECTION BAR 14 OF filepad bar1.rightclick()
  ON SELECTION BAR 16 OF filepad Bar1.Command9.Click()
  ON SELECTION BAR 18 OF filepad Bar1.gotop.Click()
  ON SELECTION BAR 19 OF filepad Bar1.goback.Click()
  ON SELECTION BAR 20 OF filepad Bar1.gonext.Click()
  ON SELECTION BAR 21 OF filepad Bar1.gobottom.Click()
  ON SELECTION BAR 23 OF filepad release bar1,currselect
  ON SELECTION BAR 24 OF filepad DO program\checkright
  ON SELECTION BAR 25 OF filepad messagebox("当前用户: " + user_no_ +chr(13)+;
  "用户姓名: " + user_name_+ chr(13) + ;
  "本机终端: " + sys(0) + chr(13) + ;
  "登录时间: " + ttoc(login_time_)+chr(13)+;
  "当前客户: " + customer_no_ +" / "+customer_c_abbr_ + chr(13) + ;
  "当前供应商: " + supplier_no_ +" / "+supplier_c_abbr_+ chr(13) + ;
  "当前仓库: " + store_no_ + " / "+ store_name_c_,64,"系统信息")
  ***ON SELECTION BAR 23 OF filepad DO FORM login To loginsucc
  ON SELECTION BAR 28 OF filepad DO proexit ;
  IN LOCFILE("\MRP\mainmenu" ,"MPX;MPR|FXP;PRG" ,"WHERE is MAIN?")

  ***** 编辑项菜单
  DEFINE POPUP editpad MARGIN RELATIVE SHADOW COLOR SCHEME 4
  DEFINE BAR _med_undo OF editpad PROMPT "撤消(\ KEY CTRL+Z, "Ctrl+Z" ;
  MESSAGE "撤消上一次命令或操作"
  DEFINE BAR _med_redo OF editpad PROMPT "重作(\ KEY CTRL+R, "Ctrl+R" ;
  MESSAGE "重复上一次命令或操作"
  DEFINE BAR 3 OF editpad PROMPT "\-"
  DEFINE BAR _med_cut OF editpad PROMPT "剪切(\ KEY CTRL+X, "Ctrl+X" ;
  MESSAGE "移去选定内容并将其放入剪贴板"
  DEFINE BAR _med_copy OF editpad PROMPT "复制(\ KEY CTRL+C, "Ctrl+C" ;
  MESSAGE "将选定内容复制到剪贴板"
  DEFINE BAR _med_paste OF editpad PROMPT "粘贴(\ KEY CTRL+V, "Ctrl+V" ;
  MESSAGE "粘贴剪贴板上的内容"
  DEFINE BAR 7 OF editpad PROMPT "\-"
  DEFINE BAR _med_slcta OF editpad PROMPT "全选(\ KEY CTRL+A, "Ctrl+A" ;
  MESSAGE "选定当前窗口中的所有文本或数据项"

  ******帮助菜单项
  DEFINE POPUP helppad MARGIN RELATIVE SHADOW COLOR SCHEME 4
  DEFINE BAR 1 OF helppad PROMPT "帮助文件"
  DEFINE BAR 2 OF helppad PROMPT "\-"
  DEFINE BAR 3 OF helppad PROMPT "有关泽冠MRP管理系统"
  DEFINE BAR 4 OF helppad PROMPT "\-"

  ON SELECTION BAR 1 OF helppad HtmlHelpA(0,"mrp.chm",0,"weltouse.htm")
  ON SELECTION BAR 3 OF helppad do form aboutinfo

  **** 定义二级菜单 S (System)

  for k=1 to m_num
  i=1
  DEFINE POPUP (a_menupops[k]) MARGIN RELATIVE shadow COLOR SCHEME 4
  select * from global_right where program_id like m_menu[k] and len(alltrim(program_id))<=3 into cursor temp
  &&&temp 为第二级菜单有的项目

  select temp
  scan
  programid=temp.program_id
  if descr="-" then
  DEFINE BAR i OF (a_menupops[k]) PROMPT "\-"
  i=i+1
  loop
  endif
  if forbit=.t.
  define bar i of (a_menupops[k]) prompt alltrim(temp.program_id)+" "+alltrim(temp.descr)
  set skip of bar i of (a_menupops[k]) .t.
  else
  if search=.f. and amend=.f. and new=.f. and candele=.f. then
  define bar i of (a_menupops[k]) prompt alltrim(temp.program_id)+" "+alltrim(temp.descr)
  set skip of bar i of (a_menupops[k]) .t.
  else
  define bar i of (a_menupops[k]) prompt alltrim(temp.program_id)+" "+alltrim(temp.descr)
  endif
  endif
  select tempp &&tempp 有第三级菜单的第二级菜单
  locate for left(program_id,3)=alltrim(programid)
  if found() then && 该菜单有子菜单
  for j=13 to alen(a_menupops)
  if a_menupops[j]=temp.descr then
  on bar i of (a_menupops[k]) activate popup (a_menupops[j])
  i=i+1
  exit
  endif
  endfor
  loop
  endif
  on selection bar i of (a_menupops[k]) do onselectdo in mainmenu with prompt() &&& form ¯o1
  i=i+1
  endscan
  endfor

  && 定义第三级菜单

  for m=m_num+1 to alen(a_menupops)
  define popup (a_menupops[m]) margin relative shadow color scheme 4
  select tempp &&有第三级菜单的第二级菜单项
  locate for alltrim(tempp.descr)=a_menupops[m]
  if not found() then
  messagebox("该系统不存在",0+16+0,"ERROR")
  return
  endif
  programid=tempp.program_id
  select * from temp_menu where left(program_id,3)=programid into cursor temp2
  select temp2
  k=1
  scan
  if descr="-" then
  DEFINE BAR k OF (a_menupops[m]) PROMPT "\-"
  k=k+1
  loop
  endif
  if forbit=.t. then
  define bar k of (a_menupops[m]) prompt alltrim(temp.program_id)+" "+alltrim(temp.descr)
  set skip of bar k of (a_menupops[k]) .t.
  else
  if search=.f. and amend=.f. and new=.f. and candele=.f. then
  define bar k of (a_menupops[m]) prompt temp2.program_id+" "+alltrim(temp2.descr)
  set skip of bar k of (a_menupops[m]) .t.
  else
  define bar k of (a_menupops[m]) prompt temp2.program_id+" "+alltrim(temp2.descr)
  endif
  endif
  on selection bar k of (a_menupops[m]) do onselectdo in mainmenu with prompt() &&& form ¯o1
  k=k+1
  endscan
  endfor
  ACTIVATE MENU (m.cMenuName) NOWAIT

  IF m.cTypeParm2 = "C"
  m.getMenuName = m.cMenuName
  m.oFormRef.Name = m.cSaveFormName
  ENDIF

  if used("temp2") then
  use in temp2
  endif
  if used("temp") then
  use in temp
  endif
  if used("tempp") then
  use in tempp
  endif

  *** 设置打印机 和纸张
  PROCEDURE setupprint
  LOCAL lcOldError
  lcOldError = ON('ERROR')
  ON ERROR *
  =SYS(1037)
  ON ERROR &lcOldError

  PROCEDURE proexit
  if messagebox("确认退出MRPII管理系统?",4+32+256,"系统提示")=6 then
  mainform.release
  endif

  Procedure OnSelectDo
  Parameter Windowname
  Windowname=Left(windowname,At(' ',windowname)-1)
  IF WEXIST(windowname)
  Activate Window &windowname
  _Screen.ActiveForm.WindowState=0
  ELSE
  DO Form &windowname
  ENDIF

  procedure openform
  dimension nheaders(2),nfields(2),ngws(2)
  nlable="程序名:"
  ntable="company_data"
  nheaders[1]="程序名"
  nheaders[2]="程序说明"
  nfields[1]='program_id'
  nfields[2]='program_name'
  ngws[1]=100
  ngws[2]=250
  svalue=''
  nsql="exec get_program_right ?user_no_,2"
  do form search with nsql,nfields[1],nlable,svalue,nheaders,ngws,320,50 to rekey &&
  if empty(rekey)
  return .f.
  else
  rekey=alltrim(rekey)
  IF WEXIST(rekey)
  Activate Window &rekey
  _Screen.ActiveForm.WindowState=0
  ELSE
  DO Form &rekey
  ENDIF
  endif

上一页  [1] [2] 

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训