É possível abrir o objeto Viewer do Elipse E3 de dois modos diferente: com o Viewer Control ou com o Viewer Only da hardkey. Pode-se, portanto, alternar o modo do Viewer entre Control e Only de acordo com o usuário logado na sessão.
Para criar este mecanismo, siga os passos abaixo:
- Primeiramente, crie uma tela de Login onde seja possível passar os parâmetros nome do usuário e senha através de SetPoints. Nessa tela, teremos um botão de comando para executar o script que veremos mais abaixo. Configure a tela para que seja a tela inicial do objeto Viewer.
- Para criar o Setpoint da senha, utilize o objeto TextBox (Editor de Texto) da MSForm; na propriedade PasswordChar, adicione um caractere de sua preferência, como por exemplo um asterisco (*).
- Então, no script do botão Login, utilizaremos:
- Método LoginUser() do objeto Viewer: realiza o login passando a propriedade Value dos SetPoints.
- Propriedade User do objeto Viewer: verifica qual o usuário logado.
- Método ExecuteExternalApp() do objeto Viewer: abre o novo Viewer no modo Control ou no Only.
- Parâmetros no executável Viewer: passa o nome do Servidor, a Tela a ser aberta no novo Viewer, o modo de abertura do Viewer e os parâmetros utilizados no Login (usuário e senha).
- Método Exit() do objeto Viewer: fecha o Viewer com a tela de Login.
Assim, criamos esse exemplo de script:
Sub CommandButton1_Click() Viewer = "C:\Program Files (x86)\Elipse Software\Elipse Power\Bin\E3Viewer.exe" pServer = "\\." pOnly = " -ReadOnly" pScreen = " -screen ScreenOperation" User = Screen.Item("spUser").Value Pwd = Screen.Item("spPwd").Value pLogin = " -PARAMS p1=" & User & " p2=" & Pwd IF Application.LoginUser(User, Pwd) THEN IF Application.User = "Admin" THEN 'Viewer Control Application.ExecuteExternalApp Viewer, pServer & pScreen & pLogin, "", 3 ELSE 'Viewer Only Application.ExecuteExternalApp Viewer, pServer & pOnly & pScreen & pLogin, "", 3 END IF Application.Exit() END IF End Sub
Finalmente, realizaremos o login novamente na tela que será aberta, usando os parâmetros já utilizados na tela de login. Exemplo:
Sub ScreenOperation_OnStartRunning() 'Login Application.LoginUser Application.Params("p1"), Application.Params("p2") End Sub
Sendo assim, é possível alternar o objeto Viewer entre os modos Control e Only de acordo com o usuário que estiver logado na aplicação.
Artigos Relacionados
- KB-89210: Alternando o Viewer entre os modos Full e Only em tempo de execução.
- KB-29704: Abrindo o Viewer com tela diferente da tela inicial.
- KB-29791: Utilizando parâmetros passados ao Viewer durante comando de abertura.