Re: Macro de un objeto?
Publicado: Lun Mar 30, 2009 12:01 am
Yo hice algo asi:
MENUITEM "&Utilerías"
MENU
MENUITEM "&Reindexar" ACTION TFrmReindex():New(
Self ):ShowModal() ;
When AppData:lConected .And. ;
AppData:TAppUser:ItemEnabled( ID_M_UTILERIAS ) ;
ID ID_M_UTILERIAS
Genero una clase oUser donde guardo los privilegios en un array, y con el
metodo ItemEnabled, sustraigo si tiene permiso en esa opcion (posicion del
arreglo)
el ID . lo uso para un metodo que en automatico me lee todas las opciones
del menu y las barras del programa para hacer una alta o modificacion de los
privilegios de dicho usuario.
Cuando cambio usuario ejecuto un metodo de mi modulo principal, algo como
esto:
METHOD MenuState( oMenu, nStart, nEnd ) CLASS App_ZeaSoftware
Local nItems, oItem, nItem
Default oMenu := ::oMenu
If ( oMenu == Nil )
Return ( Nil )
End
Default nStart := 2
Default nEnd := Len(oMenu:aItems) - 2
With Object oMenu
For nItem := nStart to nEnd
oItem := :aItems[nItem]
If !( oItem:lSeparator )
oItem:requestState()
If ( !( oItem:oSubMenu == Nil ) .And. oItem:lEnabled )
::MenuState(oItem:oSubMenu, 1, Len(oItem:oSubMenu:aItems))
End
End
Next
End With
RETURN ( Nil )
Cualquier cosa, en lo que pueda apoyarte,
Saludos
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
dirza_com@hotmail.com
MENUITEM "&Utilerías"
MENU
MENUITEM "&Reindexar" ACTION TFrmReindex():New(
Self ):ShowModal() ;
When AppData:lConected .And. ;
AppData:TAppUser:ItemEnabled( ID_M_UTILERIAS ) ;
ID ID_M_UTILERIAS
Genero una clase oUser donde guardo los privilegios en un array, y con el
metodo ItemEnabled, sustraigo si tiene permiso en esa opcion (posicion del
arreglo)
el ID . lo uso para un metodo que en automatico me lee todas las opciones
del menu y las barras del programa para hacer una alta o modificacion de los
privilegios de dicho usuario.
Cuando cambio usuario ejecuto un metodo de mi modulo principal, algo como
esto:
METHOD MenuState( oMenu, nStart, nEnd ) CLASS App_ZeaSoftware
Local nItems, oItem, nItem
Default oMenu := ::oMenu
If ( oMenu == Nil )
Return ( Nil )
End
Default nStart := 2
Default nEnd := Len(oMenu:aItems) - 2
With Object oMenu
For nItem := nStart to nEnd
oItem := :aItems[nItem]
If !( oItem:lSeparator )
oItem:requestState()
If ( !( oItem:oSubMenu == Nil ) .And. oItem:lEnabled )
::MenuState(oItem:oSubMenu, 1, Len(oItem:oSubMenu:aItems))
End
End
Next
End With
RETURN ( Nil )
Cualquier cosa, en lo que pueda apoyarte,
Saludos
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
dirza_com@hotmail.com