In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Re: Macro de un objeto?

Foro público de Xailer en español
Responder
zeasoftware
Mensajes: 1831
Registrado: Mar Oct 11, 2005 9:53 am

Re: Macro de un objeto?

Mensaje por zeasoftware »

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
jrcsistemas
Mensajes: 180
Registrado: Lun Sep 15, 2008 2:53 pm

Re: Macro de un objeto?

Mensaje por jrcsistemas »

Ramón.
Estoy estudiando tu metodo. Tendria que generar mi menu por codigo.... y en
cada opcion usar una busqueda en mi tabla de permisos....
voy a ver que hago.....
Podria ser algo como:
WITH OBJECT ::mnFactClie := :AddItem( "emisión de facturastF2","Emisión de
facturas de clientes" )
:OnClick := "MenuItem1_1Click"
:OnCheckState := "BuscarHabilitacion('mnFactClie')" // que
retorne .t. o .f. segun el usuario activo.
END
Gracias
Juan
"Ramón Zea" <zeasoftware@hotmail.com> escribió en el mensaje
news:[email=49cfefdb@svctag-j7w3v3j....]49cfefdb@svctag-j7w3v3j....[/email]
> 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
zeasoftware
Mensajes: 1831
Registrado: Mar Oct 11, 2005 9:53 am

Re: Macro de un objeto?

Mensaje por zeasoftware »

Responder