Segue dica para o colega Marcos:
*------------------------------------------------------
* Lendo Permissoes do Usuario que Acessou o Sistema...
*------------------------------------------------------
SELE 18
USE SIG_USU SHARED ALIAS USUA
SET INDEX TO SIG_USU
SET ORDER TO 1
DBSEEK(usuario_m) // Identifica o Nome do Usuario...
ACE01 =U_CLIENTES
ACE02 =U_VEICULOS
ACE03 =U_VENDEDOR
ACE04 =U_DOMINIO
ACE05 =U_PENDENC
ACE06 =U_GASTOS
ACE07 =U_VE_EXCLU
ACE08 =U_ESTOQUE
ACE09 =U_SAIDAS
ACE10 =U_ESTORNO
*...
* Parte do PRG...
// Definindo sub-menus de mCli (Menu de Clientes)...
AddDownItem(mCli, "InclusÆo" , "InclusÆo de Clientes e/ou Fornecedores" , {|| sigcli() })
AddDownItem(mCli, "Consulta" , "Consultar Clientes e/ou Fornecedores" , {|| sigclic() })
AddDownItem(mCli, "Altera‡Æo" , "Altera‡Æo de Clientes e/ou Fornecedores" , {|| sigclia() })
AddDownItem(mCli, "ExclusÆo" , "ExclusÆo de Clientes e/ou Fornecedores" , {|| sigclie() })
*--------------------------------
* Definindo Acessos do Usuario...
*--------------------------------
* MENU CLIENTES
* -------------
IF AT(ALLTRIM("I"),ACE01)=0
SetBarItem( mCli, 01, .F. ) // desabilita item 1 do menu
ENDIF
IF AT(ALLTRIM("C"),ACE01)=0
SetBarItem( mCli, 02, .F. ) // desabilita item 2 do menu
ENDIF
IF AT(ALLTRIM("A"),ACE01)=0
SetBarItem( mCli, 03, .F. ) // desabilita item 3 do menu
ENDIF
IF AT(ALLTRIM("E"),ACE01)=0
SetBarItem( mCli, 04, .F. ) // desabilita item 4 do menu
ENDIF
* Na var ACE01 (que contem tamanho 5 ou mais) no exemplo acima, o primeiro IF testa se encontra o "I", sem sim o Usuario tem acesso aquele menu, o primeiro do Grupo mCli e assim por diante. No caso meu, o "I" sigfica que o usuario pode incluir clientes, o "A" alterar clientes, más tudo são sub-menus. Na verdade qualquer simbolo que voce gravar no DBF e ler pelo comando AT, será usado para assumir o sim ou não de acesso. Só coloquei em meu sistema o C, I, A, E para faciliar a compreensão.
Espero ter ajudado os amigos...
Congratulações.
ERASMO ANDRIOLI
Sorriso-MT
