No vídeo de hoje, vamos demonstrar em como habilitar a edição de um campo se um usuário estiver em um grupo específico.
A dúvida de hoje, nos perguntaram, se seria possível liberar a edição de um campo (através do X3_WHEN) somente se os usuários pertencerem a determinados grupos.
Pensando nisso, montamos um exemplo, onde vamos mostrar como fazer essa lógica usando a função FWSFUsrGrps.
Segue abaixo o vídeo exemplificando:
E abaixo o código fonte desenvolvido:
//Bibliotecas #Include "TOTVS.ch" /*/{Protheus.doc} User Function zVid0176 Função para que só permita editar campos caso o usuário esteja num determinado grupo @type Function @author Atilio @since 03/07/2024 @example u_zVid0176() @obs Deve ser colocado no X3_WHEN (modo de edição) da seguinte forma: Iif(ExistBlock("zVid0176"), u_zVid0176(), .F.) /*/ User Function zVid0176() Local aArea := FWGetArea() Local cGrpsPodem := SuperGetMV("MV_X_GRTST", .F., "000001;000004;") Local cCodUsr := RetCodUsr() Local aGrpsUsr := FWSFUsrGrps(cCodUsr) //a FWSFUsrGrps é uma forma mais nova de usar a antiga UsrRetGrp Local lPodeEdit := .F. Local nGrpAtu := 0 //Percorre os grupos For nGrpAtu := 1 To Len(aGrpsUsr) //Se for o grupo atual, estiver nos grupos que podem editar, altera a flag e encerra o laço If aGrpsUsr[nGrpAtu] $ cGrpsPodem lPodeEdit := .T. Exit EndIf Next FWRestArea(aArea) Return lPodeEdit
Bom pessoal, por hoje é só.
Abraços e até a próxima.