Usando o Viewer no E3: Capítulo 10 – Tags do Viewer.

No objeto Viewer, é possível criar uma pasta e os seguintes tipos de tags: Contador, Demo, Interno e Timer.

As variáveis devem ser criadas separadamente em cada um dos Viewers quando as informações para cada objeto forem distintas entre si.

Exemplo: No horário de verão, o horário do servidor não é ajustado, enquanto que os demais computadores sim. Ao visualizar um tag demo do tipo CurrentTime que foi criado no servidor, o valor terá 1 hora de diferença dessa mesma variável criada no Viewer, pois o tag do Viewer exibirá o horário do micro conectado à aplicação.

Semáforo

Em algumas aplicações, é preciso inserir uma lógica para impedir que uma tela seja aberta por mais de um usuário simultaneamente.

Identificação do computador

O primeiro passo é identificar o nome do computador que está executando o Viewer. Como é possível que vários Viewers estejam conectados, cada um com um nome diferente, essa informação deve ser salva em uma variável no objeto Viewer. Para isto, siga estes passos:

  • No objeto Viewer, crie um tag interno chamado NomeComputador.
  • No evento OnStartRunning do tag NomeComputador, insira um script que busque o nome do computador.

Acesso à Tela Exclusiva

Ao chamar a tela exclusiva, é preciso verificar se ela já está sendo acessada, ou então se permite o acesso. Se o acesso à tela for permitido, devemos salvar em uma variável o nome do computador que possui a exclusividade da tela. Como essa variável é única, e é a mesma para todos conectados a aplicação, ela deve existir no servidor. Para isto, siga estes passos:

  • No servidor de dados, crie um tag interno chamado AcessoTelaExclusiva.
  • No botão que chamará a tela exclusiva, crie o seguinte script:

Sub CommandButton1_Click()
‘Acesso a tela exclusiva

if Application.GetObject(“Dados.AcessoTelaExclusiva”).Value <> “” then   
  ‘Acesso negado
  MsgBox “A tela já está aberta por outro usuario!”, “Aviso”, vbInformation
else   
  ‘Passa o nome do computador para a tela exclusiva
  Application.GetObject(“Dados.AcessoTelaExclusiva”).Value = Application.Item(“NomeComputador”).Value
  ‘Abre a tela
  Application.DoModal “TelaExclusiva”, “”, 0, 0,  ,  , 0, 1+2+64+2048
end if    
       
End Sub

Liberação do acesso

Ao fechar a tela exclusiva, é preciso limpar a variável que armazena o nome do computador que estava conectado. Para isto, insira o seguinte script no evento OnStopRunning:

Sub TelaExclusiva_OnStopRunning()
  ‘Libera o acesso para outro usuario
  Application.GetObject(“Dados.AcessoTelaExclusiva”).Value = “”   
End Sub

Exercícios

  1. Crie uma aplicação que implemente a lógica da tela exclusiva.
Print Friendly, PDF & Email

Este artigo foi útil? Was this helpful?

Classificação média - Average rating 0 / 5. Count: 0

Deixe seu Comentário

Seu endereço de e-mail não será publicado. Campos marcados com asterisco são obrigatórios *