Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

Objetivo

O objetivo deste material é implementar alguns pequenos exemplos de uso VsScripter em rotinas que, conforme o usuário, ou grupo de usuário, ou até estabelecimento selecionado, o usuário receba uma advertência ou erro informando da restrição cadastrada.

O “Script” será criado no aplicativo Folha, no cadastro de Pessoa.

Criação da tabela personalizada

O exemplo inicial mostra como bloquear a inclusão de dados na aba “Personalizada”, para a tabela Pessoas, quando o usuário não tiver permissão dada pelo supervisor nesta tabela personalizada. O nome da tabela será “U_DIREITOSUSUARIO” e a mesma terá dois campos, a saber:

Campo: NOMEUSUARIO

Descrição completa/reduzida: Nome do usuário

Dica para o usuário: Nome que o usuário usa para autenticação

Tipo do campo: Texto

Tamanho: 20

Campo: PERSONALIZADOS

Descrição completa/reduzida: Acessa abas personalizadas? / Personalizadas?

Dica para o usuário: Usuário tem acesso a abas personalizadas?

Tipo: Sim/Não

Após a criação da tabela personalizada, criar o campos acima de depois aplicá-los.

Caso o usuário tenha alguma dúvida de como criar uma tabela personalizada, deverá recorrer à documentação /wiki/spaces/TD/pages/1991213070  

Criando o código do ‘Script

Para criar o ‘Script’, acessar o aplicativo Folha. Em seguida, com o atalho “CTRL+SHIFT+P” ou no menu Cadastros Gerais -> Pessoas -> Pessoas. 

Em seguida, acessar o menu “Eventos via Script” -> “Ao Iniciar Inclusão”. O editor de ‘scripts’, VsScripter, será executado, conforme figura abaixo: 

Entendendo o código do ‘Script

Na área de edição do ‘script’, digitar/colar o código abaixo: 

// carrega biblioteca necessária para uso da função dmConexao3c
uses
   db;

// função "Autorizado" para verificação se o usuário tem permissão ou não para edição
// dos campos da aba Personalizados

function Autorizado(usuario: String):boolean;
var
  // declara variável que receberá o valor da coluna "PERSONALIZADOS"
  sPerson: Char;  

begin
  // atribui valores padrões para Result e sPerson
  Result := True;
  sPerson:= '';

  // inicia o ciclo da pesquisa
  try
     // atribui a variável sPerson o resultado da pesquisa abaixo.
     // a função QueryPegaCampo pesquisará na tabela U_DIREITOSUSUARIO o valor do
     // campo PERSONALIZADOS, que pode ser "SIM ou NÃO", para o usuário autenticado
     // no sistema, identificado pela variável (oDadosSis.UserId) passada como
     // parâmetro na chamada da função
     sPerson := (dmConexao3c.QueryPegaCampo('SEL_PESQUISAFILTRO', 'PERSONALIZADOS',     
                                ['?', '1:s', 'U_DIREITOSUSUARIO',          
                                 '?', '2:s', 'NOMEUSUARIO = :USUARIO',
                                 'P', 'USUARIO', usuario],         
                                [ftString, ftString, ftString], [17, 30, 30]));

     // atribui à variável Result “False” se sPerson for igual a “N”.
     // caso sPerson for igual a “S” ou vazio, quando a busca não retorna registro 
     // encontrado, o valor padrão “True” é mantido.
     if sPerson = 'N' then
        Result := False;

  except
     // se houver algum erro na execução da pesquisa na tabela, é gerada uma
     // mensagem de erro e a função retorna 'True' para a variável Result.
     // Assim, nennhum usuário é bloqueado para preencher os campos da
     // aba "Personalizadas"
     showMessage('Houve um erro na execução da pesquisa de dados.');
     Result := True;  
  end;                                  
end;                       

// a execução do 'Script' começa por aqui
begin
    // Se o retorno da função "Autorizado" for 'true', habilita a aba 'TabPersonal'
    // estará disponível para o usuário poder interagir com os campos dela.
    // Caso contrário, a aba estará visível, porém, seus campos estarão desativados.
    // Ou seja, o usuário não poderá alterar os valores dos campos. Além disso, o
    // usuário será avisado da falta de permissão para edição dos campos da aba
    // "Personalizada".
    if (Autorizado(oDadosSis.UserId)) then
       FRhPessoa.TabPersonal.Enabled := True;
    else                           
    begin
        ShowMessage(Format('Você não tem permissão de uso da aba %s',
                           [FRhPessoa.TabPersonal.Caption]));
        FRhPessoa.TabPersonal.Enabled := False;
    end;
end;

Salvando o código digitado/colado

Este é um exemplo simples, que não requer a criação de um formulário. Após sua digitação, é necessário salvá-lo. Para tanto, executar o atalho “CTRL+S” ou clicar no ícone que representa um disquete preto.

 Em seguida, o VsScripter dever ser fechado.

Testando o “script”

Antes do teste efetivo do “script”, é necessário incluir um ou mais usuários na tabela “U_DIREITOSUSUARIO”. Preferencialmente, um com o valor “S” para o campo “PERSONALIZADOS” e outro com o valor “N”. Lembrando que o nome do usuário deve ser exatamente igual ao nome utilizado pelo usuário para autenticação no sistema.

Assim, o teste pode ser feito tanto com um usuário “sem permissão” para uso da aba Personalizada, quando com um que tenha a permissão.

Para executar os testes, executar o sistema FOLHA com um dos usuárioss de teste. Em seguida, abrir o Cadastro de Pessoas, conforme mostrado acima. Com o cadastro aberto, bastará clicar no ícone de inserção de dados que é representado por uma folha pautada, e um sinal de “+” verde, ou executar o atalho “CTRL+INS”.

Se o usuário usado para autenticação no sistema estiver registrado na tabela “U_DIREITOSUSUARIO” com o campo “PERSONALIZADOS” igual a “N”, o mesmo receberá a mensagem abaixo: 

 

A aba Personalizada estará disponível, porém, com seus campos desativados. Ou seja, o usuário poderá ver os campos, porém, não poderá alterar seus valores.

Caso o usuário tenha o campo “PERSONALIZADOS” igual a “S”, o mesmo não receberá qualquer mensagem de erro e os campos da aba Personalizada estarão disponíveis para terem seus valores alterados.

  • No labels