Buscar

e3scripts_ptb (1)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 387 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 387 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 387 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Versão 6.1.90 (26/04/2022)
Manual de Referência e Scripts
do E3
Copyright © 1999 - 2022 Elipse Software Ltda. Todos os direitos reservados.
I
Sumário
1 Introdução ................................................................................................................................................... 1
1.1 Objetos ................................................................................................................................................... 1
1.2 Scripts .................................................................................................................................................... 1
1.3 Picks ....................................................................................................................................................... 4
1.4 Eventos Definidos pelo Usuário ....................................................................................................... 10
2 Programando no E3 ................................................................................................................................. 14
2.1 Ambiente de Programação ............................................................................................................... 14
2.2 Declarando Variáveis ......................................................................................................................... 14
2.3 Obtendo Referências aos Objetos .................................................................................................... 15
2.4 Acessando Objetos ............................................................................................................................. 25
2.5 Trabalhando com Coleções ............................................................................................................... 25
2.6 Comando Set ....................................................................................................................................... 26
2.7 E3Globals ............................................................................................................................................. 26
2.8 Eventos, Métodos e Propriedades Gerais dos Objetos .................................................................. 34
3 Bibliotecas do Usuário ............................................................................................................................. 53
3.1 ElipseX ................................................................................................................................................. 53
4 Visualização .............................................................................................................................................. 58
4.1 Viewer .................................................................................................................................................. 58
4.2 Quadros e Divisores ........................................................................................................................... 82
4.3 Telas e Objetos de Tela ...................................................................................................................... 87
4.4 E3Alarm ............................................................................................................................................. 169
4.5 E3Browser ......................................................................................................................................... 190
4.6 E3Chart .............................................................................................................................................. 196
4.7 E3Playback ........................................................................................................................................ 226
4.8 Relatórios .......................................................................................................................................... 227
4.9 TrendAnalysis ................................................................................................................................... 251
5 Objetos de Servidor ............................................................................................................................... 255
5.1 Propriedades Comuns ..................................................................................................................... 255
5.2 Alarmes ............................................................................................................................................. 257
5.3 Banco de Dados ................................................................................................................................ 275
5.4 Coleção de Campos de Usuário de Alarmes ................................................................................. 278
5.5 Drivers ............................................................................................................................................... 280
5.6 Fórmulas ........................................................................................................................................... 332
5.7 Históricos .......................................................................................................................................... 334
5.8 Informações do Servidor ................................................................................................................. 341
5.9 Objetos em Tempo de Configuração ............................................................................................. 347
5.10 Objetos em Tempo de Execução do Servidor ............................................................................. 350
5.11 Servidor de Dados .......................................................................................................................... 353
5.12 Storage ............................................................................................................................................ 376
6 Dúvidas Mais Frequentes ...................................................................................................................... 383
1 
 
 Introdução
1
Introdução
CAPÍTULO
Os Scripts são módulos de linguagem de programação nos quais se pode criar procedimentos associados a eventos
específicos, permitindo uma maior flexibilidade no desenvolvimento de aplicações. Cada objeto (item de um aplicativo)
do E3 possui uma lista de eventos previamente definidos, mas também é possível definir novos eventos próprios do
usuário.
1.1 Objetos
Os Objetos são componentes de software reutilizáveis que permitem maximizar o uso e aumentar a qualidade e
produtividade em seus aplicativos.
Um objeto no E3 encapsula ou contém três diferentes partes (propriedades, métodos e eventos) que podem ser
manipuladas para a utilização das vantagens de sua funcionalidade na aplicação.
Propriedades definem atributos de um objeto, como a aparência de um objeto de Tela ou o valor inicial de um objeto
quando o aplicativo é iniciado.
Métodos são funções que realizam uma ação específica dentro ou com um objeto.
Eventos são notificações geradas por um objeto em resposta a alguma ocorrência em particular, como um clique de
mouse ou uma mudança no valor de um Tag, entre outros.
Uma das principais características dos objetos e das linguagens orientadas a objeto é a capacidade de herança entre
eles, ou seja, estes podem herdar as características de um ou mais objetos, tendo as mesmas funcionalidades
específicas. Assim, pode se ter vários objetos trabalhando em conjunto para prover características de um outro objeto
derivado.
Tome como exemplo o objeto E3Chart. Ele é composto internamente de vários objetos, como títulos, legendas,
escalas, divisões, consultase penas. Note que cada objeto contribui para a funcionalidade do todo: as escalas ajudam
a localizar os valores dos pontos no E3Chart, as legendas ajudam a identificar a pena e seus valores e a pena realiza
o desenho dos valores no E3Chart.
Através da manipulação de objetos dentro do E3Chart, pode-se criar duas instâncias deste objeto bastante diferentes
entre si. Para se manipular um objeto específico, deve-se acessá-lo através de uma hierarquia. Se os dois objetos
E3Chart estiverem na mesma Tela, deve-se acessar primeiro a Tela, depois o E3Chart desejado, depois uma de suas
propriedades ou objetos filhos. Quando há vários objetos de um mesmo tipo, geralmente eles podem ser acessados
através de uma coleção (collection). Uma coleção é um objeto especial que gerencia um conjunto de objetos
semelhantes. Um exemplo no objeto E3Chart é a coleção Pens, que permite o acesso a todas as penas do E3Chart.
1.2 Scripts
A linguagem que o E3 Studio usa em seus scripts é o VBScript, um subconjunto da linguagem Visual Basic
desenvolvida pela Microsoft. O VBScript possui um interpretador rápido, leve e portável, desenvolvido para uso em
navegadores para a Internet e outras aplicações que usam ActiveX Controls, Automation Servers e Java Applets.
Conforme visto anteriormente, os scripts são associados a eventos de um objeto. Entretanto, para facilitar e aumentar
a velocidade de desenvolvimento, o E3 já incorpora algumas ações mais comuns que poderiam ser realizadas com
scripts, através de assistentes chamados Picks. Pode-se portanto definir que um determinado evento executa um
script, um Pick ou uma combinação deles, em uma sequência também pré-definida.
Cada Editor do E3 Studio apresenta pelo menos duas abas na parte inferior, Design e Scripts, com exceção dos
objetos Banco de Dados e Servidor de Alarmes, que não possuem a aba Design. Os objetos e seus filhos podem ser
manipulados na aba Design. Para manipular seus scripts, utilize a aba Scripts. As opções disponíveis na aba Scripts
estão descritas na tabela a seguir.
Opções disponíveis na aba Scripts
OPÇÃO DESCRIÇÃO
Lista de Objetos 
Seleciona o objeto cujo script é manipulado
Lista de Eventos 
Seleciona o evento a ser aplicado ao objeto
Script Adiciona um script associado ao evento
Pick Abrir Tela Adiciona um Pick Abrir Tela
Introdução 
 
 2
OPÇÃO DESCRIÇÃO
Pick Abrir Tela Modal Adiciona um Pick Abrir Tela Modal
Pick Executar Aplicação Adiciona um Pick Executar Aplicação
Pick Carregar Valor Adiciona um Pick Carregar Valor
Pick Inverter Valor Adiciona um Pick Inverter Valor
Pick Imprimir Relatório Adiciona um Pick Imprimir Relatório
Remover script ou Pick selecionado Remove o script ou o Pick selecionado na
Lista de Ações
Mover script ou Pick selecionado para cima Move a ação selecionada para cima na
ordem da Lista de Ações para o evento
Mover script ou Pick selecionado para baixo Move a ação selecionada para baixo na
ordem da Lista de Ações para o evento
AppBrowser Abre a janela do AppBrowser
Procurar Busca por ocorrências de um determinado
texto
Procurar anterior Seleciona na lista de resultados a ocorrência
anterior
Procurar próxima Seleciona na lista de resultados a ocorrência
seguinte
Substituir Substitui as ocorrências encontradas por
outro texto especificado
Compila o script selecionado Compila o script selecionado, mostrando os
erros no painel Mensagens
Compila todos os scripts deste evento Compila todos os scripts associados ao
evento
Compila todos os eventos deste objeto Compila todos os eventos associados ao
objeto
A ordem de execução das ações é de cima para baixo. Para alterar a ordem, pode-se utilizar as opções Mover script
ou Pick selecionado para cima e Mover script ou Pick selecionado para baixo . Utilize a opção Compila o
script selecionado para verificar se não há erros no script especificado para o evento. As mensagens de erro do
compilador são apresentadas no painel Mensagens, que pode estar em uma janela flutuante ou ancorado na parte
inferior ou superior da aba Scripts. Clique duas vezes no erro para selecioná-lo no script.
3 
 
 Introdução
Mensagem do compilador
1.2.1 Adicionando um Script
Para adicionar um script a um objeto, siga estes procedimentos:
1. Selecione o objeto para criar o script e clique na aba Scripts.
Aba Scripts
2. Clique em Script . O Editor de Scripts é aberto, conforme a figura a seguir.
Adicionando um script ao objeto
3. Digite os comandos em VBScript na caixa de edição de texto.
Introdução 
 
 4
NOTA
Utilize o caractere de sublinhado para acrescentar uma quebra de linha e deixar o código mais legível. O caractere
de sublinhado indica que o código continua na linha subsequente.
Por exemplo:
If intTemperaturaCaldeira3 > 120 and _
 intTemperaturaCaldeira4 > 120 Then
 bEnviarAlarme = True
 bAlarmeLigado = True
End If
Cada evento pode ter vários scripts e vários Picks associados, chamados Ações do Evento. A lista das ações pode ser
vista na parte superior da janela de edição de scripts. Cada objeto pode ter qualquer quantidade de eventos com
scripts ou Picks associados.
NOTA
Ao clicar com o botão direito do mouse em qualquer uma das ações descritas anteriormente, abre-se um menu
contextual que possibilita recortar, copiar ou colar scripts e Picks entre eventos.
1.3 Picks
Os Picks implementam uma forma mais amigável de realizar procedimentos mais comuns, poupando tempo de
configuração. Entre estes procedimentos estão ações como trocas de Tela ou atribuição de valores, bastante comuns
na criação de um projeto. Os tópicos a seguir descrevem os Picks disponíveis na aba Scripts.
NOTA
Todas as opções dos Picks que estão disponíveis via menu contextual (através do clique com o botão direito do
mouse) também estão disponíveis utilizando o atalho de teclado SHIFT + F10, que corresponde à tecla de aplicação
ou de menu .
5 
 
 Introdução
1.3.1 Abrir Tela
Abre uma determinada Tela ou Quadro.
Configurações do Pick Abrir Tela
Opções disponíveis no Pick Abrir Tela
OPÇÃO DESCRIÇÃO
Abrir a tela Indica qual Tela deve ser aberta
No quadro Indica o Quadro onde a Tela é visualizada. Se estiver em
branco, é o Quadro principal (_top)
Zoom inicial Define o zoom da Tela, quando mostrada
Alinhamento da Tela Define o alinhamento da Tela em relação à área visível.
Os valores possíveis são Utilizar padrão, Forçar
Esquerdo Superior ou Forçar Centralizado
Parâmetro Indica um parâmetro a ser passado na chamada da Tela
Habilitar scroll da tela Habilita o uso das barras de rolagem na Tela
Especificar posição da tela Indica a posição da Tela, em pixels
Especificar tamanho da tela Indica o tamanho da Tela, em pixels ou em Himetric
Estilo da janela Abre a caixa de diálogo Estilo de janela
1.3.1.1 Caixa de Diálogo Estilo de Janela
Permite configurar o estilo da janela a ser mostrada, definindo título e a disponibilidade das bordas e botões de
fechar, maximizar e minimizar, entre outras opções. Se a opção Usar configuração padrão das janelas está
Introdução 
 
 6
selecionada, a aplicação desabilita as opções desta janela e assume a configuração padrão do Viewer, conforme as
opções configuradas na aba Visualizador das propriedades do Viewer.
Caixa de diálogo Estilo da janela
1.3.2 Abrir Tela Modal
Abreuma Tela Modal, isto é, uma Tela que não permite a interação do usuário com outras Telas enquanto esta estiver
ativa.
7 
 
 Introdução
Configurações do Pick Abrir Tela Modal
Opções disponíveis no Pick Abrir Tela Modal
OPÇÃO DESCRIÇÃO
Abrir a tela Seleciona a Tela a ser aberta
Título Define o título da janela. Este texto é concatenado com o
nome da Tela
Zoom inicial Define o zoom da Tela, quando mostrada
Alinhamento da Tela Define o alinhamento da Tela em relação à área visível.
Os valores possíveis são Utilizar padrão, Forçar
Esquerdo Superior ou Forçar Centralizado
Parâmetro Indica um parâmetro a ser passado na chamada da Tela
Habilitar scroll da tela Habilita o uso das barras de rolagem na Tela
Especificar a posição da tela Determina a posição, em pixels, do quadro na Tela, a
partir do canto superior esquerdo da Tela
Especificar o tamanho da tela Determina a largura e a altura, em pixels ou em Himetric,
da Tela
Estilo da janela Abre a caixa de diálogo Estilo de Janela
Introdução 
 
 8
1.3.3 Executar Aplicação
Executa uma aplicação específica.
Configurações do Pick Executar Aplicação
Opções disponíveis no Pick Executar Aplicação
OPÇÃO DESCRIÇÃO
Aplicação Clicando-se em pode-se navegar no disco para indicar
o arquivo da aplicação a ser executada
Argumentos Permite especificar argumentos para a chamada da
aplicação
Executar no diretório Determina o diretório de trabalho da aplicação que é
executada
Modo de exibição Determina o tipo de janela de execução da aplicação. Os
valores possíveis são Normal, Maximizado ou
Minimizado
1.3.4 Carregar Valor
Carrega um valor em um Tag.
Configurações do Pick Carregar Valor
9 
 
 Introdução
Opções disponíveis no Pick Carregar Valor
OPÇÃO DESCRIÇÃO
Nome do tag Especifica o nome do Tag no qual é carregado o valor.
Pode-se selecionar o Tag no AppBrowser clicando em 
Valor Determina o valor que é carregado no Tag. Pode-se
selecionar o tipo de dados clicando na caixa de seleção
1.3.5 Inverter Valor
Permite inverter o valor de um Tag. Se o valor do Tag é igual a Valor1, então o Tag recebe Valor2. Se o valor do Tag
é igual a Valor2, então o Tag recebe Valor1. Se o valor do Tag não é igual a Valor1 nem Valor2, o Tag recebe
Valor1.
É possível colocar tantos Picks Inverter Valor quantos se desejar. Isto permite a verificação de múltiplos valores para
um mesmo Tag ou até mesmo para diversos Tags em um mesmo evento.
Configurações do Pick Inverter Valor
Opções disponíveis no Pick Inverter Valor
OPÇÃO DESCRIÇÃO
Nome do tag Clique em para abrir o AppBrowser e selecionar um
Tag
Valor 1 Determina o primeiro valor a comparar. Se o valor do Tag
é igual a Valor1, então o Tag recebe Valor2
Valor 2 Determina o segundo valor a comparar. Se o valor do Tag
é igual a Valor2, então o Tag recebe Valor1
Introdução 
 
 10
1.3.6 Imprimir Relatório
Permite imprimir um Relatório em uma impressora ou mostrar em tela.
Configurações do Pick Imprimir Relatório
Opções disponíveis no Pick Imprimir Relatório
OPÇÃO DESCRIÇÃO
Imprimir relatório Permite selecionar um Relatório para impressão
Saída Determina o tipo de saída do Relatório. Os valores
possíveis são Impressora: Envia o Relatório para a
impressora, que corresponde ao método Print, ou Tela:
Executa uma prévia de impressão do Relatório na tela,
que corresponde ao método PrintPreview
Especificar a posição da tela Determina a posição da prévia de impressão, em pixels,
a partir do canto superior esquerdo da tela. Se estes
valores não são definidos, a prévia de impressão é
mostrada na posição (0, 0)
Especificar o tamanho da tela Especifica o tamanho da prévia de impressão na tela, em
pixels ou em Himetric. Se estes valores não são
definidos, a prévia de impressão é criada com o
tamanho de 500 por 500 pixels e a janela é aberta
maximizada. Se apenas uma das dimensões é definida,
largura ou altura, a outra dimensão é configurada para
500 pixels e a janela não é aberta maximizada
1.4 Eventos Definidos pelo Usuário
Apesar do E3 vir com uma extensa gama de eventos, muitas vezes o usuário pode querer criar um evento específico
para uma aplicação.
Um exemplo para a utilização de eventos definidos pelo usuário seria a realização de um cálculo ou tarefa mais
complexa em um objeto quando o evento gerador vem de um outro Tag ou propriedade.
Apesar de se poder criar e executar este mesmo tipo de tarefa a partir do próprio Tag ou da propriedade geradora
do evento, existem vantagens em manter-se um script junto ao objeto que sofre a ação. Dentre elas, pode-se citar o
trabalho adicional necessário para que um objeto aponte para outro, além de facilidades de manutenção, pois se por
11 
 
 Introdução
algum motivo é necessário modificar ou apagar o Tag ou a propriedade que seja o evento gerador, não é necessário
modificar um segundo objeto.
Outra vantagem é o fato de que se o Tag gerador do evento é apagado, o objeto não perde o script, só é necessário
indicar uma outra fonte geradora daquele evento.
A geração de eventos internos facilita ainda a criação de bibliotecas, pois cada vez que um componente de biblioteca
é inserido em uma aplicação, traz consigo os scripts e cálculos que podem ser necessários, diminuindo o trabalho de
configuração. Para gerar um novo evento interno em um objeto, siga estes procedimentos:
1. Clique em Criar novo evento na lista de eventos da aba Scripts para abrir a janela Novo Evento de Usuário,
mostrada na figura a seguir.
Janela Novo Evento de Usuário
2. Digite um nome para o evento e clique em OK para abrir o Editor do evento de usuário, conforme as figuras a
seguir, que descrevem as opções possíveis para a condição de ocorrência deste evento.
Opção Sempre que a expressão alterar seu valor
Opção Sempre que a expressão for verdadeira
3. As opções disponíveis neste Editor estão descritas na tabela a seguir.
Introdução 
 
 12
Opções disponíveis no Editor de eventos de usuário
OPÇÃO DESCRIÇÃO
Nome Nome que identifica este evento. Esta opção não é
editável, portanto clique em Renomear Evento de
Usuário para modificar o nome do evento
Renomear Evento de Usuário Abre uma janela para modificar o nome do evento
Expressão Expressão geradora deste evento. Clique em para
abrir o AppBrowser para selecionar um Tag ou
propriedade, por exemplo
Remover Evento de Usuário Remove este evento da Lista de Eventos. NOTA: Ao
remover um evento de usuário, todos os scripts
associados a este evento são perdidos
Condição da Ocorrência Especifica qual a condição para que este evento ocorra.
As opções possíveis são Sempre que a expressão for
verdadeira ou Sempre que a expressão alterar seu
valor. No primeiro caso o evento é do tipo etOnEvent (o
evento ocorre no momento em que a expressão é
verdadeira) ou do tipo etWhileEvent (o evento ocorre
ciclicamente, em intervalos pré-definidos). No segundo
caso o evento é do tipo etOnValueChanged (o evento
ocorre sempre que a expressão muda o valor)
Repetir o evento Quando disponível, indica que o evento é do tipo
etWhileEvent, ou seja, o evento se repete enquanto a
expressão é verdadeira. Esta opção só estádisponível
quando a opção Condição de Ocorrência está
configurada como Sempre que a expressão for
verdadeira. O intervalo de repetição é configurado na
opção Período (ms)
Período (ms) Intervalo de repetição, em milissegundos, do evento. Esta
opção só está disponível quando a opção Condição de
Ocorrência está configurada como Sempre que a
expressão for verdadeira e a opção Repetir o evento
está selecionada
Tratar desconexão como mudança Indica que a conexão ou desconexão da expressão
geradora do evento deve ser tratada como mudança.
Esta opção só está disponível quando a opção Condição
de Ocorrência está configurada como Sempre que a
expressão alterar seu valor
4. Para alterar este evento usando a aba Scripts do objeto, selecione-o na lista de eventos. Um evento de usuário
também pode ser editado usando a opção Editar Associações do menu contextual de um objeto. Na janela Editar
Associações, clique na coluna Conexão correspondente a este evento e, no menu contextual, selecione a opção
Editar para abrir a janela da figura a seguir.
13 
 
 Introdução
Janela Editar Eventos
Programando no E3 
 
 14
2
Programando no E3
CAPÍTULO
Apesar de a maioria dos aspectos do VBScript se aplicarem à programação de scripts no E3, algumas
particularidades devem ser destacadas no que diz respeito às implementações do conceito de orientação a objetos.
O VBScript é uma linguagem baseada no Visual Basic que traz a capacidade de scripting (roteirização) para aplicações
que executam no sistema operacional Windows.
O VBScript troca informações com as aplicações utilizando a tecnologia ActiveX Scripting. Com o ActiveX Scripting,
navegadores e outras aplicações cliente, como o E3 Viewer, podem compilar scripts e chamar funções, dentre outros
procedimentos. Isto possibilita que scripts desenvolvidos para uma aplicação ou biblioteca, que devam ser executados
na interface gráfica, possam ser executados tanto no Viewer quanto em um navegador de Internet, sem a necessidade
de qualquer adaptação do aplicativo.
Mais informações sobre o VBScript podem ser obtidas no VBScript Language Reference Guide.
2.1 Ambiente de Programação
O ambiente de programação de scripts no E3 Studio pode ser acessado ao clicar com o botão direito do mouse em
qualquer objeto e selecionar a opção Propriedades. Na aba Scripts do Editor do objeto, pode-se definir qual evento
é o gerador do script. Como visto no capítulo anterior, os tipos de eventos em um objeto do E3 são os Pré-Definidos
e os Definidos pelo Usuário.
Os eventos pré-definidos variam de objeto para objeto, dependendo da utilização e funcionalidade. Um objeto de
Tela, por exemplo, possui eventos relacionados à interface gráfica, tais como Click (utilizado ao clicar em um objeto)
ou DblClick (utilizado com um duplo clique do mouse). Já um objeto como um Driver de Comunicação possui eventos
relacionados à comunicação, tal como OnCommError (utilizado quando há um erro de comunicação). Pode-se
também definir outros eventos para o objeto, como visto anteriormente.
Quando um script é associado a um evento em um objeto, o campo de digitação apresenta uma declaração de
procedimento (procedure), cuja definição é automática e composta do texto a seguir.
Sub NomeDoObjeto_NomeDoEvento()
End Sub
Nesta definição, NomeDoObjeto é o nome do objeto associado e NomeDoEvento é o nome do evento. Os comandos
do script devem estar entre estas duas linhas.
Para ajudar na digitação do script, pode-se utilizar o AppBrowser. Ao selecionar um método ou propriedade, pode-se
utilizar a opção Copiar. O Tag, propriedade ou método selecionado é inserido na posição do cursor na área de
edição do script. O local do cursor é mostrado através de uma animação com seta piscante.
2.2 Declarando Variáveis
É possível declarar variáveis implicitamente ou explicitamente.
Para declarar uma variável implicitamente, use o nome no script. Automaticamente, a variável é criada e inicializada
com o valor da atribuição ou permanece com o valor EMPTY, ou seja, vazia ou sem nenhum valor, caso não receba
nenhum valor antes de ser utilizada.
Esta é uma prática rápida, porém se o script é muito extenso, pode causar confusão e a criação de mais de uma
variável com o mesmo nome, gerando erros no script.
Para declarar variáveis explicitamente, utilize o comando Dim, como no exemplo a seguir.
Dim Temperatura
Pode-se declarar múltiplas variáveis separando cada nome de variável com uma vírgula, como no exemplo a seguir.
Dim Esquerda, Direita, Topo, Base
Em virtude de os scripts no E3 serem todos associados a um objeto em particular, as variáveis são sempre locais,
válidas apenas para o escopo do script. Para ter-se variáveis públicas ou globais, deve-se criar um Tag Interno e
utilizá-lo para armazenar o valor desejado.
https://docs.microsoft.com/pt-br/office/vba/language/reference/user-interface-help/visual-basic-language-reference
15 
 
 Programando no E3
2.3 Obtendo Referências aos Objetos
Uma das características mais importantes ao se trabalhar com scripts dentro do E3 é considerar a separação existente
entre os processos que são executados no servidor e aqueles executados na interface do cliente (E3 Viewer). Para se
trabalhar com scripts, pode-se manipular:
· Objetos do servidor através do servidor
· Objetos do servidor através do E3 Viewer
· Objetos do Viewer através do mesmo E3 Viewer
No entanto, não se pode manipular diretamente:
· Objetos do Viewer através do servidor, pois isto só é possível através da criação de eventos no Viewer, ligados a
variáveis que estão no servidor
· Objetos de um Viewer a partir de outro Viewer, pois isto só é possível através da criação de eventos ligados a
variáveis que estão no servidor
Tais limitações são decorrentes do fato de que, por definição, existe uma independência entre o que cada uma das
estações E3 Viewer está executando ou visualizando e o servidor, e vice-versa. Por isto, todas as atividades, tanto do
servidor como do E3 Viewer, necessitam ser coordenadas de forma assíncrona ou através de eventos para operarem
de forma harmoniosa.
Logo, devido a esta independência ao se criar um script, primeiro deve-se obter uma referência correta dos objetos
que se deseja manipular, ou seja, é necessário que o objeto seja primeiramente encontrado nos vários módulos do
E3.
Vale repetir que, ao se editar um script, o usuário pode utilizar o AppBrowser, que permite copiar para o script o
caminho de um método ou propriedade de forma completa, auxiliando-o na criação de scripts.
Portanto, para acessar os objetos externos que estão sendo manipulados em um script, são utilizadas algumas
diretivas básicas. Por exemplo, para se manipular o valor de um Tag de Comunicação, o caminho é Servidor - Driver -
Pasta (se houver) - Tag. Já se o objetivo é manipular um botão em uma Tela, o caminho é Viewer - Quadro (se
houver) - Tela - Botão.
As localizações de origem de scripts, do ponto de vista da metodologia para acesso dos objetos, são as seguintes:
· Servidor
· Telas e Quadros (E3 Viewer)
· ElipseX (bibliotecas): podem ser XFolders, XObjects, que executam no servidor, ou XControls, que executam no E3
Viewer
2.3.1 Acessando Propriedades do Servidor
Para se acessar um objeto em execução no servidor a partir de um objeto de Tela ou um ElipseX, deve-se usar o
método Application.GetObject.
A palavra Application retorna o objeto de aplicação relacionado ao contexto atual do objeto, e o método GetObject
procura no servidor por um objeto dentro de Application com o nome fornecido, conforme o exemplo a seguir.
Sub Button1_Click()
 Application.GetObject("Driver1")._Item("tag001").AllowRead = False
End Sub
Ou ainda conforme o exemplo a seguir.
Sub Button1_Click()
 Application.GetObject("Driver1.tag001").AllowRead = False
End Sub
O método Item foi utilizado para, a partir da referência de Driver1, localizar o tag001, pois um Driver é uma coleção
de Tags. Depois de localizado o objeto, as propriedades e métodos podem ser acessados livremente.
Caso alguma outra operação tivesse que ser realizada com Driver1 ou tag001, outra alternativa para o script anterior
seria a do exemplo a seguir.
Sub Retangulo1_Click()
 Set obj = Application.GetObject("Driver1")
 obj.Item("tag001").AllowRead = False
 obj.Item("tag002").AllowRead = False
End Sub
Programando no E3 
 
 16
Neste caso, a variável obj está apontando para o objeto Driver1 e, na próxima vez que se quiser acessar algum
objeto que descende de Driver1 dentro do script, pode-se utilizar a variável obj diretamente. Isto traz um ganho de
performance, já que cada chamada do método GetObject executa um acesso ao servidor. Através desta técnica,
chamadas desnecessárias ao servidor são evitadas. Este exemplo usa o comando Set, que é explicado mais adiante.
Note que a utilização de variáveis também torna o código mais claro e de modificação mais fácil. Caso seja necessário
alterar o objeto para executar comandos, mude a linha de atribuição desta variável.
A palavra Application nos scripts pode indicar tanto funções que são executadas no E3 Viewer quanto no servidor.
Neste caso, o objeto Application sabe de antemão quais funções devem ser executadas tanto para um quanto para o
outro caso. Não é possível, entretanto, executar funções de E3 Viewer dentro do servidor, assim como também não é
possível executar funções de servidor dentro do E3 Viewer.
2.3.2 Acessando Propriedades do E3 Studio
Para acessar um objeto de servidor qualquer em um script que executa no E3 Studio, pode-se usar a diretiva
Application.GetObject. A palavra Application retorna o objeto de aplicação relacionado ao contexto atual do objeto,
e o método GetObject procura no Domínio carregado no E3 Studio por um objeto da aplicação ou do Domínio com
o caminho fornecido. No exemplo a seguir, o evento CustomConfig é disparado no E3 Studio.
Sub XControl1_CustomConfig
 Application.GetObject("Dados.TagDemo1").DocString = "Documentação"
End Sub
2.3.3 Acessando Propriedades do Servidor de dentro do Servidor
Caso seja necessário acessar as propriedades de um Tag a partir de outro, origem e destino estão no servidor
ligados via um módulo pai, que é Driver1.
Nesta situação, deve ser usada a propriedade Parent. Isto permite que seja acessado primeiro o objeto pai onde está
o script, para depois descer-se na hierarquia em busca de outro elemento, conforme a figura e o exemplo a seguir.
Driver1 é o objeto pai de Tag1 e de
Tag2
Sub Tag1_OnRead()
 Parent.Item("Tag2").AllowRead = False
End Sub
Estando-se dentro de um grupo, e desejando-se acessar o mesmo Tag2, pode-se aninhar vários comandos Parent,
conforme a figura e o exemplo a seguir.
17 
 
 Programando no E3
Pasta1 é o objeto pai de Tag1
Sub Tag1_OnRead()
 Parent.Parent.Item("Tag2").AllowRead = False
End Sub
2.3.4 Acessando Objetos de uma Tela a partir de um Script na Tela
Deve-se usar somente o método Item, já que os objetos são filhos da Tela, conforme o exemplo a seguir.
Sub Tela1_OnPreShow(vArg)
 Item("Retangulo1").Visible = True
End Sub
Retangulo1 é um item da TelaInicial
Programando no E3 
 
 18
2.3.5 Acessando Objetos de uma Tela a partir de um Script em outro
Objeto na Tela
Pode-se usar a propriedade Parent ou o método Screen, conforme a figura e o exemplo a seguir.
TelaInicial é o objeto pai de
Retangulo1 e Retangulo2
Sub Retangulo1_Click()
 Parent.Item("Retangulo2").Visible = True
End Sub
2.3.6 Modificando a Tela ou Objetos de Tela a partir do Servidor
A modificação de um comportamento qualquer em uma Tela só pode ser executada a partir de Associações, em que
o servidor reporta automaticamente para os E3 Viewers todas as mudanças das variáveis selecionadas, ou através de
uma busca explícita do E3 Viewer por informações no servidor. Toda a operação de associação da interface gráfica é
realizada do cliente para o servidor, e não do servidor para o cliente. Assim, não é possível modificar Telas ou objetos
de Tela a partir do servidor via scripts, pois cada cliente de dados tem uma cópia diferente das Telas.
Um exemplo prático é mudar a cor de um Texto na Tela para verde quando um Tag é ligado, ou seja, o valor é
alterado para 1 (um), e para vermelho quando é desligado, ou seja, o valor é alterado para 0 (zero). Neste caso,
deve-se simplesmente criar uma Associação Digital entre a propriedade TextColor de Texto1 com Tag1. Associações
são preferíveis devido à rapidez de execução e simplicidade de manutenção e construção da aplicação.
Associando a cor do texto ao valor de Tag1
Uma outra forma de executar o procedimento anterior é criar um script no Viewer que verifique constantemente se
Tag1 mudou ou não de valor, para então mudar a cor do Texto. Este tipo de script é possível de ser realizado, mas
degrada muito a performance da aplicação. Por isto, esta prática não é aconselhável.
19 
 
 Programando no E3
2.3.7 Acessando Objetos de um ElipseX a partir do próprio ElipseX
Na criação de um ElipseX, pode-se declarar propriedades (XProperties) e inserir objetos, que podem ser objetos de
Tela (XControl) ou objetos do servidor (XFolder e XObject). Para se acessar as XProperties através de scripts, acesse o
nome da propriedade diretamente.
Aba Design
Aba Propriedades
Por exemplo, na figura anterior tem-se o objeto XControl1 com a propriedade Propriedade1, e os objetos Texto1 e
Retangulo1.
A propriedade Propriedade1, do tipo Booleano, pode ser acessada com o script a seguir.
Sub XControl1_OnStartRunning()
 XControl1.Propriedade1 = True
End Sub
Ou ainda com o script a seguir.
Sub XControl1_OnStartRunning()
 Propriedade1 = True
End Sub
Se o ElipseX possui objetos internos, então é possível utilizar o método Item para obter uma referência destes
objetos, como no script a seguir.
Sub XControl1_OnStartRunning()
 Item("Texto1").Value = "motor"
 Item("Retangulo1").ForegroundColor = RGB(212, 208, 20)
End Sub
Programando no E3 
 
 20
2.3.8 Acessando Objetos de um ElipseX Externamente
O acesso externo a um objeto ElipseX só pode ser realizado através de suas propriedades, utilizando suas instâncias
criadas. Não é possível acessar objetos internos diretamente.
Se o ElipseX em questão é um XControl, este se comporta como um objeto de Tela. Por exemplo, considere a
aplicação da figura a seguir.
Exemplo de XControl
Para alterar a propriedade Propriedade1 do XControl pode-se executar o script a seguir no evento Click de um Botão
de Comando.
Sub CommandButton1_Click()
 Screen.Item("XControl11").Propriedade1 = True
End Sub
Ou ainda executar o script a seguir no evento Click de um Botão de Comando.
Sub CommandButton1_Click()
 Parent.Item("XControl11").Propriedade1 = True
End Sub
No caso de um XFolder ou XObject, deve-se inseri-lo em um Servidor de Dados, conforme o exemplo da figura a
seguir.
21 
 
 Programando no E3
Exemplo de XObject
Para alterar a propriedadeValor do XObject, use o script a seguir.
Sub CommandButton1_Click()
 Application.GetObject("Dados.XObject11").Valor = 123
End Sub
Ou ainda o script a seguir.
Sub CommandButton1_Click()
 Application.GetObject("Dados").Item("XObject11").Valor = 123
End Sub
Pode-se ainda ter um XControl acessando um XFolder ou XObject, através de uma XProperty. Por exemplo, a figura a
seguir mostra um XControl chamado XControl1 que possui uma propriedade XValor do tipo XObject1, que é o
nome do XObject criado.
XObject
XControl
Programando no E3 
 
 22
Cria-se, por exemplo, uma Associação do valor do objeto Texto1 com a propriedade Valor do XObject1. Isso é
realizado através da propriedade XValor, criada no XControl1. Assim, o valor da propriedade Valor do XObject1 é
mostrada no objeto Texto1 do XControl1.
Propriedade Valor
No projeto, o vínculo da instância XObject11 à instância XControl11 pode ser realizado através de uma Associação
na propriedade XValor.
Associação na Propriedade XValor
2.3.8.1 Exemplo de Criação de um ElipseX
Suponha que determinada aplicação necessite supervisionar e comandar 10 motores. Cada motor precisa ser
representado por um desenho na Tela, que exibe a cor verde quando em operação e vermelho quando desligado.
Também deve ser permitido o comando do motor na Tela, enviando instruções para ligar e desligar, além de exibir a
velocidade.
Uma possibilidade é a criação de um XControl chamado MotorA com as propriedades Estado igual a Boolean e
Velocidade igual a Double, conforme a figura a seguir.
23 
 
 Programando no E3
Aba Design
Aba Propriedades
1. Para a indicação da cor, a propriedade OverrideFillColor do motor deve estar associada à propriedade Estado
do XControl, através de uma Associação Digital. Configure a propriedade OverrideFillMode para 2 - SolidFill.
2. Para exibir a velocidade, a propriedade Value do Display deve ser associada à propriedade Velocidade do
XControl.
3. O Botão Liga-Desliga troca o valor da propriedade Estado através de uma Associação Simples.
Note que:
· As Associações dentro da biblioteca são internas, e seu formato é Nome_do_Controle.Nome_da_Propriedade
· O objeto, depois de inserido na Tela, deve ter estas propriedades associadas aos Tags verdadeiros, para cada
um dos motores
· Uma Associação de um Tag para a propriedade Estado tem que ser realizada para cada objeto MotorA
Programando no E3 
 
 24
E3 Viewer
Outra possibilidade, mais abrangente, utiliza um XObject para o motor. Desta forma, todas as informações relativas
aos motores residem em objetos que estão no servidor. Assim, pode-se construir vários tipos de interface para o
motor (XControls) que trazem do servidor, através do XObject, somente as informações necessárias.
Desta maneira, o objeto MotorA teria que ser modificado para apontar para um XObject, ao invés de declarar em si
mesmo todas as propriedades.
1. Crie um XObject chamado MotorADados e declare neste objeto as propriedades Estado e Velocidade.
2. Crie um XControl MotorA que possua apenas uma propriedade, chamada MeusDados, do tipo MotorADados.
3. MotorADados deve ser inserido em uma Pasta de Dados no servidor e corresponde a cada um dos motores.
MotorA, por sua vez, aponta para o MotorADados desejado, não sendo necessária a criação de novos Tags.
Configuração no Editor do XObject
Configuração no Editor do XControl
4. A propriedade Estado, associada à propriedade OverrideFillColor do motor, seria MotorA.MeusDados.Estado.
5. A propriedade Velocidade, associada ao Display, seria MotorA.MeusDados.Velocidade.
25 
 
 Programando no E3
2.4 Acessando Objetos
Seguindo o conceito de encapsulamento de programação orientada a objetos, os métodos e propriedades são
associados aos objetos de origem. Isto significa que sempre se deve indicar o objeto do qual se está acessando o
método ou propriedade.
2.4.1 Propriedades
Para referenciar as propriedades de um objeto, deve-se usar o método GetObject. A sintaxe é a seguinte:
Application.GetObject("<objeto>").<propriedade>
Neste caso, <objeto> é o nome do objeto e <propriedade> é o nome da propriedade, conforme o exemplo a seguir.
Application.GetObject("Dados.TempTanque2").Type
Para facilitar a digitação, é aconselhável sempre utilizar o AppBrowser, que já traz a sintaxe correta.
2.4.1.1 Propriedade Value
No E3, muitos objetos possuem uma propriedade em comum chamada Value. Neste caso específico, pode-se acessar
esta propriedade utilizando se o próprio nome do objeto, conforme o exemplo a seguir.
Button1 = False
Que é equivalente ao exemplo a seguir.
Button1.Value = False
2.4.2 Métodos
A sintaxe a seguir exemplifica a chamada de um método que não precisa de parâmetros.
Application.GetObject("<objeto>").<metodo>
Neste caso, <objeto> é o nome do objeto e <metodo> é o nome do método.
Se o método aceita parâmetros, use a sintaxe a seguir.
Application.GetObject("<objeto>").<metodo>(<parametro>)
Neste caso, <parametro> é o parâmetro a ser passado para o método. Quando houver mais de um parâmetro, utilize
vírgulas para separá-los.
Se o método retorna um resultado, e for desejável guardá-lo, então os parâmetros devem ser colocados
obrigatoriamente entre parênteses, conforme o exemplo a seguir.
<V> =Application.GetObject("<objeto>").<metodo>(<parametro>)
Neste caso, <V> é a variável que recebe o resultado do método.
2.5 Trabalhando com Coleções
Uma Coleção, ou Collection, é um objeto que gerencia um conjunto de objetos similares. Os objetos contidos em uma
coleção são referenciados por índices, semelhante à referência de arrays. Pode-se adicionar ou remover objetos
individuais de uma coleção, conforme o exemplo a seguir.
Sub CommandButton1_Click()
 ' Adiciona uma Pena no objeto E3Chart1
 Screen.Item("E3Chart1").Pens.AddPen "Pena"
End Sub
Sub CommandButton2_Click()
 ' Remove a primeira Pena
 Screen.Item("E3Chart1").Pens.Remove 0
End Sub
NOTA
O primeiro objeto em uma coleção possui o índice 1 (um).
Todas as coleções possuem uma propriedade em comum chamada Count, que é o número de objetos ou filhos
existentes, conforme o exemplo a seguir.
Programando no E3 
 
 26
Sub CommandButton1_Click()
 ' Mostra uma caixa de diálogo com o número de Penas
 MsgBox Screen.Item("E3Chart1").Pens.Count
End Sub
2.5.1 Acessando Objetos com o Método Item
Toda coleção possui um método Item, que pode ser usado para acessar qualquer objeto dentro da coleção. Este
método aceita um parâmetro Item, que pode ser um número inteiro positivo ou o nome do objeto dentro da coleção.
O exemplo a seguir é um ajuste da cor da segunda Pena de um objeto E3Chart.
Sub CommandButton1_Click()
 ' Modifica a cor da segunda pena
 Screen.Item("E3Chart1").Pens.Item(2).Color = RGB(212, 208, 20)
End Sub
O mesmo ajuste pode ser obtido com o exemplo a seguir.
Sub CommandButton1_Click()
 ' Modifica a cor da pena com nome "Pena2"
 Screen.Item("E3Chart1").Pens.Item("Pena2").Color = RGB(212, 208, 20)
End Sub
Os comandos anteriores são equivalentes, o primeiro indicando o índice da Pena na coleção e o segundo indicando o
nome da Pena.
2.6 Comando Set
O VBScript implementa o conceito de polimorfismo das linguagens orientadas a objeto, permitindo que uma variável
do tipo Variant assuma a forma de um objeto qualquer através do comando Set. Deste modo, a variável funciona
como um ponteiro para o objeto desejado, permitindoacessar seus métodos e propriedades, conforme o exemplo a
seguir.
Sub CommandButton1_Click()
 Set E3Chart = Screen.Item("E3Chart1")
 E3Chart.Pens.Item(2).Color = RGB(212, 208, 20)
End Sub
Neste exemplo foi executada a mesma tarefa da seção anterior, porém a parte referente a como chegar até o objeto
específico havia sido omitida. Sem o comando Set, a mesma chamada teria que ser escrita conforme o exemplo a
seguir.
Screen.Item("E3Chart1").Pens.Item(2).Color = RGB(212, 208, 20)
Aparentemente não existe vantagem neste caso, pois pode-se realizar todo o procedimento em uma única linha de
código. Porém, se logo adiante no mesmo script outras operações forem necessárias, o processo se torna mais
simples e rápido se a chamada ao método Item não tiver sido colocada em todas as linhas.
Sub CommandButton1_Click()
 'Exemplo ruim
 Screen.Item("E3Chart1").Pens.Item(0).Color = RGB(212, 208, 20)
 Screen.Item("E3Chart1").Pens.Item(1).Color = RGB(200, 208, 20)
 Screen.Item("E3Chart1").Pens.Item(2).Color = RGB(100, 208, 20)
End Sub
Sub CommandButton2_Click()
 'Exemplo melhor
 Set Penas = Screen.Item("E3Chart1").Pens
 Penas.Item(0).Color = RGB(212, 208, 20)
 Penas.Item(1).Color = RGB(200, 208, 20)
 Penas.Item(2).Color = RGB(100, 208, 20)
End Sub
2.7 E3Globals
O E3Globals é um módulo do E3 que contém métodos de uso global. Os métodos GetCurrentWindowsUserName,
GetLocalTime e GetLocalTimeUTC não podem ser utilizados em Associações, somente em scripts. O restante dos
métodos pode ser utilizado tanto em scripts quanto em Associações.
A forma de utilização destes métodos admite as sintaxes E3Globals.<método> ou simplesmente <método>, exceto
no caso do objeto Relatório, onde a sintaxe E3Globals.<método> é obrigatória.
https://docs.microsoft.com/pt-br/office/vba/language/reference/user-interface-help/set-statement
27 
 
 Programando no E3
2.7.1 Métodos
Esta seção contém informações sobre os métodos do módulo E3Globals.
2.7.1.1 BShl
BShl(Value, Bits)
Retorna o valor passado no parâmetro Value deslocado à esquerda o número de bits especificado no parâmetro Bits.
Este método retorna um erro caso o parâmetro Bits esteja fora da faixa permitida (entre zero e 31). Este método está
disponível tanto em Associações quanto em scripts.
NOTA
Este método permite passar um valor de 32 bits sem sinal, no intervalo entre zero e 4.294.967.296, no parâmetro
Value, mas seu valor de retorno é sempre um valor de 32 bits com sinal, no intervalo entre -2.147.483.648 e
2.147.483.647. Caso seja utilizado um valor de ponto flutuante, somente a parte inteira deste valor é utilizada.
2.7.1.2 BShr
BShr(Value, Bits, [PreserveSign])
Retorna o valor passado no parâmetro Value deslocado à direita o número de bits especificado no parâmetro Bits.
Este método retorna um erro caso o parâmetro Bits esteja fora da faixa permitida (entre zero e 31). O parâmetro
PreserveSign é um Booleano que permite preencher ou não os bits à esquerda com uma cópia do bit de sinal. Se
omitido, preenche os bits à esquerda com zeros. Este método está disponível tanto em Associações quanto em
scripts.
NOTA
Este método permite passar um valor de 32 bits sem sinal, no intervalo entre zero e 4.294.967.296, no parâmetro
Value, mas seu valor de retorno é sempre um valor de 32 bits com sinal, no intervalo entre -2.147.483.648 e
2.147.483.647. Caso seja utilizado um valor de ponto flutuante, somente a parte inteira deste valor é utilizada.
2.7.1.3 Choose
Choose(Index, Values)
Retorna um dos itens especificados em Values, baseado no parâmetro Index, iniciando em 0 (zero). Este método
retorna Null caso o valor de Index seja menor que 0 (zero) ou maior ou igual ao número de valores em Values. Este
método está disponível tanto em Associações quanto em scripts.
NOTA
O método Choose não propaga a qualidade nem a estampa de tempo dos valores. Se uma Associação contém a
expressão Choose(TagIndex, Tag1.Value, Tag2.Value, Tag3.Value), o resultado é o valor selecionado, porém com
qualidade Boa (192) e estampa de tempo atual. Para que estas informações sejam preservadas, é necessário
especificar somente o objeto, como por exemplo Choose(TagIndex, Tag1, Tag2, Tag3).
2.7.1.4 DwordToLong
DwordToLong(Value)
Converte um valor de 32 bits sem sinal, no intervalo entre zero e 4.294.967.296, passado no parâmetro Value para um
valor de 32 bits com sinal, no intervalo entre -2.147.483.648 e 2.147.483.647, no mesmo padrão de bits. Se o valor
estiver no intervalo entre zero e 2.147.483.647, o valor é retornado sem mudanças.
NOTA
Caso o valor passado no parâmetro Value seja um valor de ponto flutuante, somente a parte inteira deste valor é
utilizada.
Programando no E3 
 
 28
2.7.1.5 E3Format
E3Format(Value, [Format])
Formata a expressão em Value utilizando o formato especificado em Format. Este formato utiliza as mesmas definições
da propriedade Format de objetos Texto, Display e SetPoint. Se omitido, mostra a expressão em Value formatada
conforme as configurações de região e idioma do Windows. Este método está disponível tanto em Associações
quanto em scripts.
2.7.1.6 E3ProductString
E3ProductString()
Este método retorna uma String contendo o nome e a versão do componente onde é invocado, como por exemplo
"E3 6.1.90" ou "E3 (64-bits) 6.1.90".
2.7.1.7 E3ProductVersionBuild
E3ProductVersionBuild()
Este método retorna o número de build da versão do componente onde é invocado. Por exemplo, se a versão do
componente é a 6.1.90, este método retorna o valor 90.
2.7.1.8 E3ProductVersionMajor
E3ProductVersionMajor()
Este método retorna o número principal da versão do componente onde é invocado. Por exemplo, se a versão do
componente é a 6.1.90, este método retorna o valor 6.
2.7.1.9 E3ProductVersionMinor
E3ProductVersionMinor()
Este método retorna o número secundário da versão do componente onde é invocado. Por exemplo, se a versão do
componente é a 6.1.90, este método retorna o valor 1.
2.7.1.10 GetBit
GetBit(Value, BitIndex)
Retorna o valor (verdadeiro ou falso) do bit de Value especificado em BitIndex. Este método retorna um erro caso o
parâmetro BitIndex esteja fora da faixa permitida (entre zero e 31). Este método está disponível tanto em Associações
quanto em scripts.
NOTA
Este método permite passar um valor de 32 bits sem sinal, no intervalo entre zero e 4.294.967.296, no parâmetro
Value. Caso seja utilizado um valor de ponto flutuante, somente a parte inteira deste valor é utilizada.
2.7.1.11 GetComputerName
GetComputerName()
Retorna uma String contendo o nome do computador atual. Este método está disponível tanto em Associações
quanto em scripts.
2.7.1.12 GetCurrentWindowsUserName
GetCurrentWindowsUserName()
Retorna uma String contendo o nome do usuário logado no processo corrente. Este método não está disponível em
Associações, somente em scripts.
2.7.1.13 GetLocalTime
GetLocalTime()
Retorna a data e hora do computador local, com precisão de milissegundos e no fuso horário local. Este método não
está disponível em Associações, somente em scripts.
29 
 
 Programando no E3
2.7.1.14 GetLocalTimeUTC
GetLocalTimeUTC()
Retorna a data e hora do computador local, com precisão de milissegundos e no fuso horário UTC (Tempo Universal
Coordenado). Este método não está disponível em Associações, somente em scripts.
2.7.1.15 IIf
IIf(Condition, ExprTrue, ExprFalse)
Retorna a expressão contida em ExprTrue se a condição avaliada em Condition é verdadeira, e a expressão contida em
ExprFalse se a condição avaliada é falsa. Este método está disponível tanto em Associações quanto em scripts.
NOTA
O método IIf não propagaa qualidade nem a estampa de tempo dos valores. Se uma Associação contém a
expressão IIf(Tag1.Value = 0, Tag2.Value, Tag3.Value), o resultado é o valor de Tag2 ou Tag3, porém com
qualidade Boa (192) e estampa de tempo atual. Para que estas informações sejam preservadas, é necessário
especificar somente o objeto, como por exemplo IIf(Tag1.Value = 0, Tag2, Tag3).
2.7.1.16 LongToDword
LongToDword(Value)
Converte um valor de 32 bits com sinal, no intervalo entre -2.147.483.648 e 2.147.483.647, passado no parâmetro Value
para um valor de 32 bits sem sinal, no intervalo entre zero e 4.294.967.296, no mesmo padrão de bits. Se o valor
estiver entre zero e 2.147.483.647, o valor é retornado sem mudanças.
NOTA
Caso o valor passado no parâmetro Value seja um valor de ponto flutuante, somente a parte inteira deste valor é
utilizada.
2.7.1.17 MsgBoxEx
MsgBoxEx(prompt, [buttons], [title], [PosX], [PosY])
Este método permite mostrar uma caixa de diálogo padrão do Windows e especificar a posição na tela. Os
parâmetros disponíveis neste método são os seguintes:
· prompt: Texto a ser mostrado na caixa de diálogo. O tamanho máximo deste texto é de aproximadamente 1024
caracteres, dependendo da largura dos caracteres usados. Para inserir quebras de linha no texto, separe as linhas
usando a função Chr do VBScript com os valores 10 (avanço de linha), 13 (retorno de carro) ou uma combinação
destes valores entre cada linha
· buttons: Uma expressão numérica opcional que representa a soma dos valores especificando a quantidade e o
tipo dos botões mostrados, o estilo, o botão padrão e se a caixa de diálogo é modal ou não. O valor padrão
deste parâmetro é 0 (zero), ou seja, mostra apenas o botão OK. Consulte a tabela a seguir para mais informações
sobre este parâmetro
· title: Texto opcional mostrado na barra de título da caixa de diálogo. Se este parâmetro é omitido, a caixa de
diálogo não mostra nenhum título
· PosX: Indica a posição, em pixels, da caixa de diálogo em relação à margem esquerda da janela. Caso este
parâmetro seja omitido, a respectiva coordenada da caixa de diálogo é centralizada na janela
· PosY: Indica a posição, em pixels, da caixa de diálogo em relação à margem superior da janela. Caso este
parâmetro seja omitido, a respectiva coordenada da caixa de diálogo é centralizada na janela
NOTA
Caso os valores indicados nos parâmetros PosX e PosY posicionem a caixa de diálogo fora da área visível da janela,
estes valores são ajustados automaticamente para garantir que a caixa de diálogo esteja visível.
Os valores possíveis para o parâmetro buttons estão descritos na tabela a seguir.
Programando no E3 
 
 30
Valores possíveis para o parâmetro buttons
VALOR DESCRIÇÃO CONSTANTE NO VBSCRIPT
TIPO DE BOTÃO
0 Mostra apenas o botão OK vbOKOnly
1 Mostra os botões OK e Cancelar
(Cancel)
vbOKCancel
2 Mostra os botões Abortar (Abort),
Repetir (Retry) e Ignorar (Ignore)
vbAbortRetryIgnore
3 Mostra os botões Sim (Yes), Não
(No) e Cancelar (Cancel)
vbYesNoCancel
4 Mostra os botões Sim (Yes) e Não
(No)
vbYesNo
5 Mostra os botões Repetir (Retry) e
Cancelar (Cancel)
vbRetryCancel
ESTILO DOS ÍCONES
16 Mostra um ícone indicando uma
mensagem crítica
vbCritical
32 Mostra um ícone indicando uma
pergunta
vbQuestion
48 Mostra um ícone indicando uma
afirmação
vbExclamation
64 Mostra um ícone indicando uma
informação
vbInformation
BOTÃO PADRÃO
0 Indica que o primeiro botão é o
padrão de retorno
vbDefaultButton1
256 Indica que o segundo botão é o
padrão de retorno
vbDefaultButton2
512 Indica que o terceiro botão é o
padrão de retorno
vbDefaultButton3
768 Indica que o quarto botão é o
padrão de retorno
vbDefaultButton4
TIPO DE JANELA MODAL
0 Indica que o usuário deve responder
esta caixa de diálogo antes de
continuar trabalhando na aplicação
vbApplicationModal
4096 Indica que todas as aplicações estão
suspensas até que o usuário
responda esta caixa de diálogo
vbSystemModal
Este método retorna um valor numérico que representa o botão clicado na caixa de diálogo, conforme a tabela a
seguir.
Valores de retorno do método MsgBoxEx
VALOR BOTÃO CONSTANTE NO VBSCRIPT
1 OK vbOK
2 Cancelar (Cancel) vbCancel
3 Abortar (Abort) vbAbort
4 Repetir (Retry) vbRetry
5 Ignorar (Ignore) vbIgnore
31 
 
 Programando no E3
VALOR BOTÃO CONSTANTE NO VBSCRIPT
6 Sim (Yes) vbYes
7 Não (No) vbNo
2.7.1.18 OPCGetLimit
OPCGetLimit(Quality)
Retorna a informação de Limite de uma Qualidade OPC especificada no parâmetro Quality. Este método está
disponível tanto em Associações quanto em scripts. Os valores possíveis de retorno deste método são os seguintes:
· 0: Livre
· 1: Baixo
· 2: Alto
· 3: Constante
2.7.1.19 OPCGetQuality
OPCGetQuality(Quality)
Retorna a informação de Qualidade de uma Qualidade OPC especificada no parâmetro Quality. Este método está
disponível tanto em Associações quanto em scripts. Os valores possíveis de retorno deste método são os seguintes:
· 0: Ruim
· 1: Incerta
· 2: Não utilizada
· 3: Boa
2.7.1.20 OPCGetSubStatus
OPCGetSubStatus(Quality)
Retorna a informação de Substatus (de 0 a 15) de uma Qualidade OPC especificada no parâmetro Quality. Este
método está disponível tanto em Associações quanto em scripts. O Padrão OPC especifica os seguintes valores:
· Qualidade Boa:
· 0: Não especificado
· 1: Sobrescrita local
· Qualidade Ruim:
· 0: Não especificado
· 1: Erro de configuração
· 2: Não conectado
· 3: Falha no dispositivo
· 4: Último valor conhecido
· 5: Falha de comunicação
· 6: Fora de serviço
· Qualidade Incerta:
· 0: Não especificado
· 1: Último valor utilizável
· 4: Sensor não confiável
· 5: Unidade de engenharia excedida
· 6: Subnormal
2.7.1.21 OPCGetVendor
OPCGetVendor(Quality)
Retorna a informação de Reservado para o Fabricante (de 0 a 255) de uma Qualidade OPC especificada em Quality.
Este método está disponível tanto em Associações quanto em scripts.
Programando no E3 
 
 32
2.7.1.22 OPCIsBad
OPCIsBad(Quality)
Retorna verdadeiro se a Qualidade OPC é Ruim, ou falso caso contrário. Este método está disponível tanto em
Associações quanto em scripts.
2.7.1.23 OPCIsGood
OPCIsGood(Quality)
Retorna verdadeiro se a Qualidade OPC é Boa, ou falso caso contrário. Este método está disponível tanto em
Associações quanto em scripts.
2.7.1.24 OPCIsUncertain
OPCIsUncertain(Quality)
Retorna verdadeiro se a Qualidade OPC é Incerta, ou falso caso contrário. Este método está disponível tanto em
Associações quanto em scripts.
2.7.1.25 OPCMakeQuality
OPCMakeQuality(QualityFlag, [SubStatus], [Limit], [Vendor])
Retorna um novo valor de Qualidade OPC utilizando os valores passados nos parâmetros QualityFlag, SubStatus, Limit
e Vendor. Este método está disponível tanto em Associações quanto em scripts. Os valores possíveis para cada um
dos parâmetros são os seguintes:
· QualityFlag: Especifica a qualidade do valor
· 0: Ruim
· 1: Incerta
· 3: Boa
· SubStatus: Especifica o substatus do valor (entre 0 e 15, veja o método OPCGetSubStatus para os valores
possíveis). Se este parâmetro é omitido, assume o valor 0 (zero)
· Limit: Especifica o limite do valor. Se este parâmetro é omitido, assume o valor 0 (zero)
· 0: Livre
· 1: Baixo
· 2: Alto
· 3: Constante
· Vendor: Valor específico do fabricante (entre 0 e 255). Se este parâmetro é omitido, assume o valor 0 (zero)
2.7.1.26 OPCSetLimit
OPCSetLimit(Quality, Limit)
Modifica a informação de Limite de uma Qualidade OPC e retorna o valor modificado. Este método está disponível
tanto em Associações quanto em scripts. Os valores possíveis para o parâmetro Limitsão os seguintes:
· 0: Livre
· 1: Baixo
· 2: Alto
· 3: Constante
2.7.1.27 OPCSetQuality
OPCSetQuality(Quality, QualityFlag)
Modifica a informação de Qualidade de uma Qualidade OPC e retorna o valor modificado. Este método está
disponível tanto em Associações quanto em scripts. Os valores possíveis para o parâmetro QualityFlag são os
seguintes:
· 0: Ruim
· 1: Incerta
· 2: Não utilizada
33 
 
 Programando no E3
· 3: Boa
2.7.1.28 OPCSetSubStatus
OPCSetSubStatus(Quality, SubStatus)
Modifica a informação de Substatus de uma Qualidade OPC (de 0 a 15) e retorna o valor modificado. Este método
está disponível tanto em Associações quanto em scripts. O Padrão OPC especifica os seguintes valores:
· Qualidade Boa:
· 0: Não especificado
· 1: Sobrescrita local
· Qualidade Ruim:
· 0: Não especificado
· 1: Erro de configuração
· 2: Não conectado
· 3: Falha no dispositivo
· 4: Último valor conhecido
· 5: Falha de comunicação
· 6: Fora de serviço
· Qualidade Incerta:
· 0: Não especificado
· 1: Último valor utilizável
· 4: Sensor não confiável
· 5: Unidade de engenharia excedida
· 6: Subnormal
2.7.1.29 OPCSetVendor
OPCSetVendor(Quality, Vendor)
Modifica a informação de Reservado para o Fabricante (de 0 a 255) de uma Qualidade OPC e retorna o valor
modificado. Este método está disponível tanto em Associações quanto em scripts.
2.7.1.30 SetBit
SetBit(Value, BitIndex, BitValue)
Ajusta o valor de Value (verdadeiro ou falso) do bit especificado em BitIndex para BitValue. Este método retorna um
erro caso o parâmetro BitIndex esteja fora da faixa permitida (entre zero e 31). Este método está disponível tanto em
Associações quanto em scripts.
NOTA
Este método permite passar um valor de 32 bits sem sinal, no intervalo entre zero e 4.294.967.296, no parâmetro
Value, mas seu valor de retorno é sempre um valor de 32 bits com sinal, no intervalo entre -2.147.483.648 e
2.147.483.647. Caso seja utilizado um valor de ponto flutuante, somente a parte inteira deste valor é utilizada.
2.7.1.31 SourceTypeName
SourceTypeName(SourceType)
Retorna uma String com a descrição da Fonte de Medida ativa (propriedade ActiveSource dos objetos Medida
Analógica e Medida Discreta do E3). Este método está disponível tanto em Associações quanto em scripts. Os valores
possíveis para o parâmetro SourceType são os seguintes:
· -1: String vazia
· 0: Fonte Ativa
· 1: SCADA
· 2: Operador
· 3: Centro de Comando
· 4: Faturamento
Programando no E3 
 
 34
· 5: Calculada
· 6: Banco de Dados
· 100: Processador Topológico
· 101: Fluxo de Potência
· 102: Estimador de Estados
· 103: Descarte de Cargas
· 104: Modelagem de Cargas para Distribuição
· 105: Autorrecuperação
· 106: Leitor Externo
NOTA
Caso o valor passado no parâmetro SourceType não esteja entre os valores possíveis, este método retorna a String
"???".
2.8 Eventos, Métodos e Propriedades Gerais dos Objetos
Esta seção contém informações sobre os eventos, métodos e propriedades gerais dos objetos.
2.8.1 Eventos
Eventos são ocorrências relacionadas a um objeto que permitem disparar ações programadas. Existem, basicamente,
eventos Físicos ou Externos e Internos. Os Eventos Físicos são, por exemplo, ações do usuário. No caso do usuário
digitar algo no teclado, a informação relevante pode ser a tecla pressionada, ou se o usuário apontar e clicar com o
mouse, a informação relevante pode ser a posição do cursor e o status dos botões. Os Eventos Internos são, por
exemplo, mudanças de valor de uma variável ou Tag na aplicação. Como o Tag pode ser associado a um dispositivo
externo, diz-se que os eventos internos podem ter associações físicas, como a mudança da temperatura de uma
câmara, por exemplo.
2.8.1.1 Variáveis de Evento
Variáveis de Evento são criadas quando um evento inicia. Para serem utilizadas, devem ser associadas a parâmetros
na chamada do script do evento. O exemplo a seguir é a chamada de um procedimento associado ao evento
KeyDown de AlgumObjeto.
Sub AlgumObjeto_KeyDown(KeyCode, Shift)
Note que a chamada contém as variáveis KeyCode e Shift. O E3 atribui valores a estas variáveis automaticamente no
momento da ocorrência do evento. Neste caso, KeyCode recebe o código da tecla pressionada e Shift recebe
Verdadeiro ou Falso, conforme a tecla SHIFT esteja pressionada ou não.
2.8.1.2 OnStartRunning
OnStartRunning()
Ocorre tão logo um objeto seja iniciado. No exemplo a seguir, Meses é um Tag Interno e utiliza este evento para
inicializar o vetor.
Sub Meses_OnStartRunning()
 Value = Array("Janeiro", "Fevereiro", "Março", "Abril",_
 "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro",_
 "Novembro", "Dezembro")
End Sub
NOTA
Para acessar este array, é necessário copiar a propriedade Value para uma variável local.
2.8.1.3 OnStopRunning
OnStopRunning()
Ocorre quando termina a execução de uma instância de um objeto. Utilize este evento para realizar operações de
finalização para um objeto. Exemplo:
Sub TagInterno1_OnStopRunning()
 ' Quando finaliza o objeto TagInterno1
35 
 
 Programando no E3
 ' atribui False ao TagInterno2
 Set tag2 = Application.GetObject("Dados.TagInterno2")
 tag2.Value = False
End Sub
2.8.2 Métodos
Esta seção contém informações sobre os métodos comuns aos objetos do E3. Cada tópico mostra o nome do
método com os respectivos parâmetros, na sintaxe correta, e um exemplo de utilização.
2.8.2.1 Chamadas de Métodos
Muitos métodos pré-definidos possuem parâmetros, que podem ou devem ser passados na chamada do método.
Para isto, o VBScript possui uma regra que deve ser seguida. Se um método é utilizado em uma atribuição, os
parâmetros devem estar entre parênteses, como neste exemplo de chamada do método GetObject.
obj = Application.GetObject("dados.tag001")
Já se um método é chamado sozinho, deve-se retirar os parênteses, como neste exemplo de chamada do método
SetVariableValue.
Screen.Item("Consulta").SetVariableValue Valor, 12
Os parênteses usados nas citações de métodos neste documento servem apenas como indicativo para diferenciá-los
das propriedades. Nos scripts, deve-se seguir esta mesma regra.
2.8.2.2 Activate
Activate()
Ativa um objeto que está inativo no momento. Exemplo:
Sub CommandButton1_Click()
 Dim obj, tag
 Set obj = Application.GetObject("Dados")
 ' Cria um novo objeto e o desativa (False)
 Set tag = obj.AddObject("DemoTag", False)
 ' Inicializa os parâmetros do novo objeto
 tag.Name = "tag001"
 tag.Type = 3
 ' Ativa o objeto (coloca em execução)
 tag.Activate()
End Sub
NOTA
Ativar um objeto usando este método configura a propriedade IsObjectActive deste objeto para Verdadeiro.
2.8.2.3 AddObject
AddObject(ClassName, [Activate], [ObjectName])
Este método adiciona um novo objeto à aplicação. Este método possui o parâmetro ClassName, que indica o tipo de
objeto que é criado. Por exemplo, para se criar um retângulo na Tela, o parâmetro ClassName deve ser igual a
"DrawRect". O objeto criado está contido no objeto que chamou este método e pode ser acessado através do
método Item.
O parâmetro Activate é opcional e indica se o objeto é ativado após a criação. Se o objeto é ativado, as Associações e
scripts são habilitados. Se o objeto é criado com o parâmetro Activate em Falso, mais tarde pode ser ativado pelo
método Activate. Se este parâmetro é omitido, o objeto é ativado após a criação. O valor configurado neste
parâmetro é usado para configurar a propriedade IsObjectActive do objeto criado.
O parâmetro ObjectName também é opcional e indica um nome para o objeto criado. Caso o nome já exista, o novo
nome é automaticamente incrementado. Seeste parâmetro é omitido, o novo objeto é nomeado a partir do nome da
classe definida no parâmetro ClassName. Consulte a propriedade geral Name para mais informações sobre os
caracteres permitidos nos nomes de objetos.
O objeto só é criado se é de um tipo compatível com o objeto que o contém. Para se ter certeza que o objeto foi
criado, pode-se utilizar o método IsObject do VBScript.
https://docs.microsoft.com/pt-br/office/vba/language/reference/user-interface-help/isobject-function
Programando no E3 
 
 36
NOTA
Apenas objetos que possuem a opção Inserir no seu menu contextual podem acessar este método.
2.8.2.4 Context
Context(ContextName)
Retorna o objeto que implementa o contexto indicado pelo parâmetro ContextName, que deve ser uma String entre
aspas duplas. Este método falha se nenhum objeto na hierarquia superior do objeto que está chamando este método
implementar o contexto indicado. Os seguintes contextos estão disponíveis:
· Container: Objetos de servidor e do Viewer, ou seja, objetos inseridos em arquivos de projeto ou em pastas
dentro de projetos
· Area: Áreas de Alarme, ou qualquer objeto de servidor cuja propriedade IsAlarmArea esteja configurada para
Verdadeiro
NOTA
Os nomes dos contextos estão sempre em inglês, e não diferenciam maiúsculas de minúsculas. Para verificar o
contexto a que um objeto pertence, abra sua Janela de Propriedades, selecione a aba Item e verifique os contextos
válidos no quadro Contextos. Caso um objeto defina mais de um contexto, os nomes são apresentados em ordem
alfabética, separados por vírgulas.
2.8.2.5 Deactivate
Deactivate()
Este método desativa um objeto criado ou previamente ativado pelo método Activate. Pode-se desativar um objeto
quando é necessário realizar uma configuração prévia, como por exemplo na inicialização de propriedades, ou
quando é necessário realizar testes nos quais o objeto não pode estar presente e ativo. Exemplo:
Sub CommandButton1_Click()
 Dim obj, novo
 Set obj = Application.GetObject("Dados")
 Set novo = obj.AddObject("DemoTag", True)
 ' Desativa o objeto
 novo.Deactivate()
End Sub
NOTA
Desativar um objeto usando este método configura a propriedade IsObjectActive deste objeto para Falso.
2.8.2.6 DeleteObject
DeleteObject(ChildName)
Apaga do projeto o objeto especificado. O parâmetro ChildName é uma String (ignora maiúsculas e minúsculas) que
indica o objeto filho que se deseja apagar. O método retorna Verdadeiro caso a operação de apagar o objeto tenha
sido bem-sucedida, ou Falso caso o objeto filho não exista.
Para se apagar um objeto a partir de uma referência a um elemento, utilize este método no objeto pai. Exemplo:
Sub CommandButton1_Click()
 Set obj = Application.GetObject("Dados")
 If obj.DeleteObject("Tag001") Then
 MsgBox("Tag apagado com sucesso!")
 Else
 MsgBox("Falha ao apagar: o Tag não existe.")
 End If
End Sub
NOTA
Apenas objetos que possuem a opção Inserir no seu menu contextual podem acessar este método.
37 
 
 Programando no E3
2.8.2.7 GetChildObject
GetChildObject(ObjectPath)
Este método retorna uma referência para o objeto filho apontado pelo parâmetro ObjectPath. Com isto é possível
acessar todas as propriedades e métodos deste objeto, semelhante ao funcionamento do método GetObject. Este
método falha se o caminho apontado por ObjectPath contiver uma propriedade ou método ao final. O caminho
apontado pelo objeto filho não é um caminho desde a raiz (o arquivo .prj) e sim um caminho sempre a partir do
objeto onde o método é chamado.
NOTA
Este método NÃO existe no objeto Application do Servidor e nem nas Pastas de Aplicativo, porém existe no objeto
Application do Viewer e é acessível mesmo em um E3 Viewer em modo Somente Leitura.
2.8.2.8 GetObject
GetObject(ObjectPath)
Este método retorna a referência do objeto especificado em ObjectPath. Isto permite acessar todas as propriedades
ou métodos do objeto. Esta é uma prática bastante comum na programação de scripts no E3, facilita a manipulação
de objetos e deixa o código mais inteligível. Exemplo:
Sub CommandButton1_Click()
 ' Atribui o valor 20 à propriedade Value do objeto
 ' TagInterno1 que está em Dados.
 Set tag = Application.GetObject("Dados.TagInterno1")
 tag.Value = 20
End Sub
2.8.2.9 Item
Item(ItemId)
Retorna a referência para o objeto filho ItemId do objeto que chamou este método. Este método pode buscar um
objeto tanto pelo nome quanto pelo índice, um inteiro entre 1 (um) e o valor especificado na propriedade Count. Se o
índice ou o nome especificado é válido, este método retorna a referência ao objeto. Caso contrário, o método retorna
um erro de "Parâmetro Inválido". Exemplo:
Sub Tela1_Click()
 ' Atribui a obj a referência para o objeto filho Botao1
 ' de Tela1.
 Set obj = Item("Botao1")
 ' Configura a propriedade BackColor de obj, ou seja,
 ' de Botao1.
 obj.BackColor = RGB(255, 0, 0)
End Sub
2.8.2.10 RunEvent
RunEvent(EventName, [Arguments])
Executa o script ou scripts associados ao evento indicado pelo parâmetro EventName, que deve ser uma String. O
parâmetro Arguments é opcional e deve ser usado nos casos em que o evento necessite de argumentos. Estes
argumentos devem estar separados por vírgulas. Este método falha caso o evento indicado não tenha nenhum script
a ser executado.
2.8.2.11 RunProcedure
RunProcedure(ProcedureName, [Arguments])
Executa o script ou scripts associados ao procedimento (procedure) ou função (function) indicado pelo parâmetro
ProcedureName, que deve ser uma String. O parâmetro Arguments é opcional e deve ser usado nos casos em que o
procedimento ou função necessitem de argumentos. Estes argumentos devem estar separados por vírgulas. Este
método falha caso o procedimento ou função indicados não tenham nenhum script a ser executado. Este método
retorna um valor nos casos em que a função indicada pelo parâmetro ProcedureName também retorne um valor.
Programando no E3 
 
 38
2.8.2.12 Save
Save()
Este método salva o objeto especificado, que foi modificado em tempo de execução (runtime). Os objetos filhos
também são salvos, conforme as especificações do objeto pai. Este método não é válido para os objetos Tela e
Viewer. Exemplo:
Sub CommandButton1_Click()
 Set area = Application.GetObject("ConfigAlarms")._
 AddObject("Area", True)
 Application.GetObject("ConfigAlarms").Save()
End Sub
NOTA
As modificações executadas em tempo de execução e salvas no objeto só são visíveis no E3 Studio após a
atualização do projeto. Para isto, clique com o botão direito do mouse no nome do projeto e selecione a opção
Atualizar.
2.8.3 Propriedades
Todo objeto possui Propriedades, que servem para guardar informações a respeito das características daquele
objeto. Por exemplo, um objeto do tipo Retângulo possui a propriedade Name, que contém o nome, e as
propriedades Width e Height, que guardam a largura e altura, respectivamente, entre outras propriedades.
Neste capítulo são listadas todas as propriedades gerais dos objetos do E3. Cada tópico traz o nome da
propriedade, a descrição e, quando aplicável, um exemplo de uso. As propriedades são identificadas por um ícone
que indica o tipo de dados suportado no conteúdo. Os tipos de dados disponíveis estão descritos na tabela a seguir.
Tipos de dados disponíveis
TIPO DE DADOS DESCRIÇÃO
Booleano Representa os valores Verdadeiro (True) ou Falso (False)
Coleção Representa uma coleção de objetos
Item de Coleção Representa um item de uma coleção de objetos
Cor Representa uma cor no formato RGB
Data e Hora Representa uma data no calendário Gregoriano,
iniciando em 1899
Enumeração Representa

Outros materiais