Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Descrição:
Esta função retorna as informações de menu do grupo de usuários informado. 
Compatível com as Bases de Dados:Todas

Sistemas Operacionais Suportados:

 Todos
Idioma:Português(Brasil)
Exemplos: 
Bloco de código
languagecpp
firstline1
titleExemplo
linenumberstrue
#include "protheus.ch"
User Function GrpMenu()
    Local aMenu := {{""}}
    Local aAllGrp := AllGroups()
    Local aGrp    := {}
    Local oDlg
    Local oCbx
    Local oList
    Local oBtn
    Local oPanel1, oPanel2
    Local nI
    Local cGrp    := ""           // Armazena os códigos dos grupos de usuários cadastrados
    For nI := 1 to len(aAllGrp)
        aadd(aGrp, aAllGrp[ni][1][1])
    Next
// Monta a janela para exibição dos dados
    DEFINE MSDIALOG oDlg TITLE "Teste AllGroups" FROM 010, 010 TO 600, 600 OF oMainWnd PIXEL
    @00,00 MSPANEL oPanel1 PROMPT "" SIZE 00,35 OF oDlg   
    oPanel1:Align := CONTROL_ALIGN_TOP
    @ 010, 005 COMBOBOX oCbx VAR cGrp ITEMS aGrp SIZE 080, 012 OF oPanel1 PIXEL
    @ 010, 090 BUTTON oBtn PROMPT "Carrega Menu" SIZE 40,11 PIXEL OF oPanel1 ACTION (If(!Empty(cGrp), (LoadMenu(cGrp, @aMenu), RefreshList(@oList, aMenu)), ) )
    @00,00 MSPANEL oPanel2 PROMPT "" SIZE 00,200 OF oDlg   
    oPanel2:Align := CONTROL_ALIGN_ALLCLIENT
    @ 005, 005 LISTBOX oList FIELDS HEADER "Menus"  SIZE 280, 250 OF oPanel2 PIXEL
    oList:SetArray(aMenu)
    oList:bLine := {|| {aMenu[oList:nAt] }}
    ACTIVATE MSDIALOG oDlg CENTERED
Return
// Carrega as informações do menu do grupo informado
Static Function LoadMenu(cGroup, aMenu)
    aMenu := FWGrpMenu(cGroup)
Return
// atualiza a lista de menus no listbox
Static Function RefreshList(oList, aMenu)
    oList:SetArray(aMenu)
    oList:bLine := {|| {aMenu[oList:nAt]} }
    oList:Refresh()
Return
Parâmetros: cGrpID - Código do grupo de usuários
Retorno: aMenu

Exemplo:

aMenu[1] - "01X\\system\\SIGAATF.XNU"

aMenu[2] - "025\\system\\SIGACOM.XNU"

Obs: É verificado se o grupo tem acesso ao modulo, no casoCaso o Grupo não tenha acesso a algum módulo será acrescentado "X" apos o código do módulo,

como mostra o exemplo abaixo.

 
aMenu[1] - "01X\\system\\SIGAATF.XNU"

                   01 - Código do módulo

                    X  -  Mostra que o grupo não tem acesso ao módulo

                    system\\SIGAATF.XNU  -  Diretório do arquivo

 

aMenu[2] - "025\\system\\SIGACOM.XNU"

                   02 - Código do módulo

                    5  -  Mostra nível de acesso

                    system\\SIGAATF.XNU  -  Diretório do arquivo

 

Programa Fonte:
SIGAPSW.PRG