Descrição:
É possível fechar um Viewer remoto através de um comando, isto é, sem a necessidade de acessar o computador onde ele está aberto?
Solução:
Sim, é possível. O E3 Viewer é a interface de operação com o usuário do Elipse E3. Permite visualizar e operar em qualquer computador a aplicação que está no servidor, podendo ser executado tanto na intranet quanto na internet, via browser. Já o objeto Viewer configura o modo como o E3 Viewer será visualizado, tanto in loco quanto remotamente.
Para fechar um Viewer remoto através de um comando, utilize o método Exit() do objeto Viewer em um evento de usuário. O acionamento desse evento será o comando enviado pelo usuário, ou então por uma outra lógica.
Para isto, siga o exemplo abaixo:
- Crie dois tags internos (um com a propriedade Value do tipo booleano, e o outro como string) no servidor. Por exemplo: AutoClose(Boolean) e ViewerName(String).
- Crie um setpoint na tela, e então associe-o com uma conexão do tipo bidirecional/reversa com o tag ViewerName.
- Na mesma tela, crie um botão de comando que envie o valor True para o tag AutoClose.
- No Viewer, crie um evento de usuário (eventClose) que aponte para a propriedade Value do tag AutoClose do servidor, cuja ocorrência seja “Sempre que a propriedade for uma condição verdadeira”.
- Logo após, no evento acima, crie um script que compare a propriedade Value do tag ViewerName com o nome do computador de onde deseja fechar o Viewer; utilize o método GetComputerName() do E3Globals para coletar o nome da máquina.
Caso sejam iguais, execute o método Exit do Viewer. Por exemplo:
Sub Viewer_eventClose() IF Application.GetObject("Data.ViewerName").Value = GetComputerName() THEN Application.Exit() END IF Application.GetObject("Data.AutoClose").Value = False End Sub
otima dica, muito boa!
Me ajudou a resolver uma necessidade antiga.