habilitar menu

oscar
15 de Octubre del 2004
como hago para habilitar o deshabilitar determinados items del menu para un usuario u otro.
o como hago para hacer un menu con datos de una dbf

carlos
15 de Octubre del 2004
*******************************************************************************
*CREACION DE MENUS POR USUARIOS PERSONALIZADO
********************************************************************W
parameter mbasemenu,mbausu
public mdatomenu,PHIDE
mdatomenu = mbasemenu
set message to 24 center
set talk off
close databases
if _WINDOWS .or. _MAC
deactivate window wbode
release window wbode
endif

If Used("&MBaseMenu")
Select &MBaseMenu
else
select 0
Use BDUSUARIO!&MBaseMenu in 0 order CODIGO alias topcion shared
endif


*if (not used("bdusuario!topcion"))
* use bdusuario!topcion in 0 order CODIGO alias topcion shared
*else
* select topcion
*endif

SET FILTER TO CODIGO=MBAUSU
goto top
mfinal = .F.
if _DOS .or. _UNIX
do stand
endif
i = 1
mmenu = "MPad"+alltrim(str(i))
col = 3
set sysmenu to
set sysmenu automatic
scan for len(alltrim(NUMERO))=1
Define Pad &MMenu OF _MSYSMENU PROMPT Alltrim(NOMMENU) Color Scheme 4 Message Padc(Alltrim(Detalle),80) SKIP FOR phide=1
i = i+1
col = col+15
mmenu = "MPad"+alltrim(str(i))
endscan
define pad mpad6 of _MSYSMENU prompt "Salir del Sistema" SKIP FOR phide=1
i = 1
goto top
scan for len(alltrim(NUMERO))=1
mpopup = "MP"+alltrim(NUMERO)
mmenu = "MPad"+alltrim(str(i))
IF NAMEFORM="MENU"&& if .not. ejec
On Pad &MMenu OF _MSYSMENU Activate Popup &MPopup Color Scheme 4
endif
i = i+1
endscan


* on pad mpad6 of _MSYSMENU activate popup mp6
ON SELECTION PAD mpad6 OF _MSYSMENU do SALIROK


i = 1
goto top
scan for len(alltrim(NUMERO))=1
mpopup = "MP"+alltrim(NUMERO)
mmenu = "MPad"+alltrim(str(i))
IF NAMEFORM<>"MENU" &&if ejec
mprograma = nameform
On Selection Pad &MMenu OF _MSYSMENU Do Seleccio With Bar(),Popup(),MDatoMenu
ENDIF
i = i+1
endscan

scan for len(alltrim(NUMERO))=2
mpopup = "MP"+(left(alltrim(NUMERO), 1))
Define Popup &MPopup Margin Relative Shadow Color Scheme 4
endscan

define popup mp6 shadow margin relative color scheme 4
scan for len(alltrim(NUMERO))=2
mpopup = "MP"+(left(alltrim(NUMERO), 1))
mnumbar = val(right(alltrim(NUMERO), 1))
Define Bar MNumbar Of &MPopup Prompt Alltrim(NOMMENU) Message Padc(Alltrim(Detalle),80)
endscan
define bar _MFI_SAVAS of mp6 prompt "Guardar Como" key CTRL+S, "Ctrl+S"
define bar _MED_COPY of mp6 prompt "Copiar" key CTRL+C, "Ctrl+C"
define bar _MED_PASTE of mp6 prompt "Pegar" key CTRL+V, "Ctrl+V"
define bar _MED_SLCTA of mp6 prompt "Seleccionar Todo" key CTRL+A, "Ctrl+A"
define bar _MED_FIND of mp6 prompt "Encontrar" key CTRL+F, "Ctrl+F"
define bar _MED_FINDA of mp6 prompt "Repetir Busqueda" key CTRL+G, "Ctrl+G"


scan for len(alltrim(NUMERO))=2
mpopup = "MP"+(left(alltrim(NUMERO), 1))
mnumbar = val(right(alltrim(NUMERO), 1))
mnum = left(alltrim(NUMERO), 1)+right(alltrim(NUMERO), 1)
msigpop = "MP"+mnum
IF NAMEFORM="MENU" &&if .not. ejec
On Bar MNumbar Of &MPopup Activate Popup &MSigPop
endif
endscan
scan for len(alltrim(NUMERO))=2
mpopup = "MP"+(left(alltrim(NUMERO), 1))
mnumbar = val(right(alltrim(NUMERO), 1))
IF NAMEFORM<>"MENU" &&if ejec
mprograma = nameform
On Selection Bar MNumbar Of &MPopup Do Seleccio With Bar(),Popup(),MDatoMenu
endif
endscan
scan for len(alltrim(NUMERO))=2
mpopup = "MP"+(left(alltrim(NUMERO), 2))
IF NAMEFORM="MENU" &&if .not. ejec
Define Popup &MPopup Margin Relative Shadow Color Scheme 4
endif
endscan
scan for len(alltrim(NUMERO))=3
mpopup = "MP"+(left(alltrim(NUMERO), 2))
IF NAMEFORM="MENU" &&if .not. ejec
Define Popup &MPopup Margin Relative Shadow Color Scheme 4
endif
endscan
scan for len(alltrim(NUMERO))=3
mpopup = "MP"+(left(alltrim(NUMERO), 2))
mnumbar = val(right(alltrim(NUMERO), 1))
if left(alltrim(nameform), 1)="_"
mnombar = alltrim(nameform)
Define Bar &MNombar Of &MPopup Prompt Alltrim(NOMMENU)
else
Define Bar MNumbar Of &MPopup Prompt Alltrim(NOMMENU) Message Padc(Alltrim(Detalle),80)
endif
endscan
scan for len(alltrim(NUMERO))=3
mpopup = "MP"+(left(alltrim(NUMERO), 2))
mnumbar = val(right(alltrim(NUMERO), 1))
mnum = left(alltrim(NUMERO), 2)+right(alltrim(NUMERO), 1)
msigpop = "MP"+mnum
IF NAMEFORM="MENU" &&if .not. ejec
On Bar MNumbar Of &MPopup Activate Popup &MSigPop
endif
endscan
scan for len(alltrim(NUMERO))=3
mpopup = "MP"+(left(alltrim(NUMERO), 2))
mnumbar = val(right(alltrim(NUMERO), 1))
IF NAMEFORM<>"MENU" &&if ejec
mprograma = nameform
On Selection Bar MNumbar Of &MPopup Do Seleccio With Bar(),Popup(),MDatoMenu
endif
endscan
scan for len(alltrim(NUMERO))=3
mpopup = "MP"+(left(alltrim(NUMERO), 3))
IF NAMEFORM="MENU" &&if .not. ejec
Define Popup &MPopup Margin Relative Shadow Color Scheme 4
endif
endscan
scan for len(alltrim(NUMERO))=4
mpopup = "MP"+(left(alltrim(NUMERO), 3))
IF NAMEFORM="MENU" &&if .not. ejec
Define Popup &MPopup Margin Relative Shadow Color Scheme 4
endif
endscan
scan for len(alltrim(NUMERO))=4
mpopup = "MP"+(left(alltrim(NUMERO), 3))
mnumbar = val(right(alltrim(NUMERO), 1))
Define Bar MNumbar Of &MPopup Prompt Alltrim(NOMMENU) Message Padc(Alltrim(Detalle),80)
endscan
scan for len(alltrim(NUMERO))=4
mpopup = "MP"+(left(alltrim(NUMERO), 3))
mnumbar = val(right(alltrim(NUMERO), 1))
mnum = left(alltrim(NUMERO), 3)+right(alltrim(NUMERO), 1)
msigpop = "MP"+mnum
IF NAMEFORM="MENU" &&if .not. ejec
On Bar MNumbar Of &MPopup Activate Popup &MSigPop
endif
endscan
scan for len(alltrim(NUMERO))=4
mpopup = "MP"+(left(alltrim(NUMERO), 3))
mnumbar = val(right(alltrim(NUMERO), 1))
IF NAMEFORM<>"MENU" &&if ejec
mprograma = nameform
On Selection Bar MNumbar Of &MPopup Do Seleccio With Bar(),Popup(),MDatoMenu
endif
endscan
scan for len(alltrim(NUMERO))=4
mpopup = "MP"+(left(alltrim(NUMERO), 4))
IF NAMEFORM="MENU" &&if .not. ejec
Define Popup &MPopup Margin Relative Shadow Color Scheme 4
endif
endscan
scan for len(alltrim(NUMERO))=5
mpopup = "MP"+(left(alltrim(NUMERO), 4))
IF NAMEFORM="MENU" &&if .not. ejec
Define Popup &MPopup Margin Relative Shadow Color Scheme 4
endif
endscan
scan for len(alltrim(NUMERO))=5
mpopup = "MP"+(left(alltrim(NUMERO), 4))
mnumbar = val(right(alltrim(NUMERO), 1))
Define Bar MNumbar Of &MPopup Prompt Alltrim(NOMMENU) Message Padc(Alltrim(Detalle),80)
endscan
scan for len(alltrim(NUMERO))=5
mpopup = "MP"+(left(alltrim(NUMERO), 4))
mnumbar = val(right(alltrim(NUMERO), 1))
mnum = left(alltrim(NUMERO), 4)+right(alltrim(NUMERO), 1)
msigpop = "MP"+mnum
IF NAMEFORM="MENU" &&if .not. ejec
On Bar MNumbar Of &MPopup Activate Popup &MSigPop
endif
endscan
scan for len(alltrim(NUMERO))=5
mpopup = "MP"+(left(alltrim(NUMERO), 4))
mnumbar = val(right(alltrim(NUMERO), 1))
IF NAMEFORM<>"MENU" &&if ejec
mprograma = nameform
On Selection Bar MNumbar Of &MPopup Do Seleccio With Bar(),Popup(),MDatoMenu
endif
endscan
scan for len(alltrim(NUMERO))=5
mpopup = "MP"+(left(alltrim(NUMERO), 4))
IF NAMEFORM="MENU" &&if .not. ejec
Define Popup &MPopup Margin Relative Shadow Color Scheme 4
endif
endscan
mvolver = .F.
*endproc