Verso 4.6.162 (03/03/2015)
Manual de Referncia de Scripts
Copyright 1999 - 2015 Elipse Software Ltda. Todos os direitos reservados.
ISumrio................................................................................................................................................. 11 Introduo
.......................................................................................................................................... 11.1 Objetos
.......................................................................................................................................... 21.2 Scripts
.......................................................................................................................................... 71.3 Picks .......................................................................................................................................... 141.4 Eventos Definidos pelo Usurio
................................................................................................................................................. 172 Programando no E3 .......................................................................................................................................... 172.1 Ambiente de Programao .......................................................................................................................................... 182.2 Declarando Variveis .......................................................................................................................................... 182.3 Obtendo Referncias aos Objetos .......................................................................................................................................... 372.4 Acessando Objetos .......................................................................................................................................... 382.5 Trabalhando com Colees .......................................................................................................................................... 392.6 Comando Set .......................................................................................................................................... 402.7 E3Globals .......................................................................................................................................... 482.8 Eventos, Mtodos e Propriedades Gerais dos Objetos
................................................................................................................................................. 713 Bibliotecas do Usurio .......................................................................................................................................... 713.1 XControls e XObjects .......................................................................................................................................... 733.2 Propriedades de um ElipseX
................................................................................................................................................. 764 Visualizao .......................................................................................................................................... 764.1 Viewer
.......................................................................................................................................... 1044.2 Quadros e Divisores
.......................................................................................................................................... 1114.3 Telas e Objetos de Tela
.......................................................................................................................................... 2324.4 E3Alarm
.......................................................................................................................................... 2484.5 E3Browser
.......................................................................................................................................... 2554.6 E3Chart
.......................................................................................................................................... 3004.7 E3Playback
.......................................................................................................................................... 3014.8 Relatrios ................................................................................................................................................. 3425 Objetos de Servidor
.......................................................................................................................................... 3425.1 Propriedades Comuns
.......................................................................................................................................... 3445.2 Coleo de Campos de Usurio de Alarmes
.......................................................................................................................................... 3475.3 Objetos em Tempo de Execuo do Servidor
.......................................................................................................................................... 3505.4 Objetos em Tempo de Configurao
.......................................................................................................................................... 3535.5 Drivers
.......................................................................................................................................... 4135.6 Servidor de Dados
.......................................................................................................................................... 4365.7 Banco de Dados
.......................................................................................................................................... 4395.8 Histricos
.......................................................................................................................................... 4435.9 Storage
II
.......................................................................................................................................... 4515.10 Frmulas
.......................................................................................................................................... 4565.11 Alarmes ................................................................................................................................................. 4826 Dvidas Mais Frequentes
Introduo 1
1 IntroduoCAPTULO
Os Scripts so mdulos de l inguagem de programao nos quais se pode criarprocedimentos associados a eventos especficos, permitindo uma maiorflexibil idade no desenvolvimento de aplicaes. Cada objeto (item de umaplicativo) do E3 possui uma lista de eventos previamente definidos, mas tambm possvel definir novos eventos prprios do usurio.
1.1 ObjetosOs Objetos so componentes de software reutil izveis que permitem maximizar ouso e aumentar a qualidade e produtividade em seus aplicativos.
Um objeto no E3 encapsula ou contm trs diferentes partes (propriedades,mtodos e eventos) que podem ser manipuladas para a util izao das vantagens desua funcionalidade na aplicao.
Propriedades definem atributos de um objeto, como a aparncia de um objeto deTela ou o valor inicial de um objeto quando o aplicativo iniciado.
Mtodos so funes que realizam uma ao especfica dentro ou com um objeto.
Eventos so notificaes geradas por um objeto em resposta a alguma ocorrnciaem particular, como um clique de mouse ou uma mudana no valor de um Tag,entre outros.
Uma das principais caractersticas dos objetos e das l inguagens orientadas aobjeto a capacidade de herana entre eles, ou seja, estes podem herdar ascaractersticas de um ou mais objetos, tendo as mesmas funcionalidadesespecficas. Assim, pode se ter vrios objetos trabalhando em conjunto para provercaractersticas de um outro objeto derivado.
Tome como exemplo o objeto E3Chart. Ele composto internamente de vriosobjetos, como ttulos, legendas, escalas, divises, consultas e penas. Note que cadaobjeto contribui para a funcionalidade do todo: as escalas ajudam a localizar osvalores dos pontos no E3Chart; as legendas, a identificar a pena e seus valores; e apena realiza o desenho dos valores no E3Chart.
Atravs da manipulao de objetos dentro do E3Chart, pode-se criar duasinstncias deste objeto bastante diferentes entre si. Para se manipular um objetoespecfico, deve-se acess-lo atravs de uma hierarquia. Se os dois objetos E3Chartestiverem na mesma Tela, deve-se acessar primeiro a Tela, depois o E3Chartdesejado, depois uma de suas propriedades ou objetos fi lhos. Quando h vriosobjetos de um mesmo tipo, geralmente eles podem ser acessados atravs de umacoleo (collection). Uma coleo um objeto especial que gerencia um conjunto deobjetos semelhantes. Um exemplo no objeto E3Chart a coleo Pens, que permite
2 Introduo
o acesso a todas as penas do E3Chart.
1.2 ScriptsA linguagem que o E3 Studio usa em seus scripts o VBScript, um subconjunto dalinguagem Visual Basic desenvolvida pela Microsoft. O VBScript possui uminterpretador rpido, leve e portvel, desenvolvido para uso em navegadores paraa Internet e outras aplicaes que usam ActiveX Controls, Automation Servers e JavaApplets.
Conforme visto anteriormente, os scripts so associados a eventos de um objeto.Entretanto, para facil itar e aumentar a velocidade de desenvolvimento, o E3 jincorpora algumas aes mais comuns que poderiam ser realizadas com scripts,atravs de assistentes chamados Picks. Pode-se portanto definir que umdeterminado evento executar um script, um Pick ou uma combinao deles, emuma sequncia tambm pr-definida.
Cada view do E3 Studio apresenta pelo menos duas abas na parte inferior: Design eScripts, com exceo dos objetos Banco de Dados e Servidor de Alarmes, que nopossuem a aba Design. Os objetos e seus fi lhos podem ser manipulados na abaDesign; para manipular seus scripts, util ize a aba Scripts. As opes disponveisnesta ltima so:
Opes disponveis na aba Scripts
CONE OPO DESCRIOLista de Objetos Seleciona o objeto
cujo script sermanipulado.
Lista de Eventos Seleciona oevento a serapl icado aoobjeto.
Script Adiciona um scriptassociado aoevento.
Pick Abrir Tela Adiciona um Pick Abrir Tela.
Pick Abrir TelaModal
Adiciona um Pick Abrir Tela Modal.
Pick ExecutarAplicao
Adiciona um Pick Executar Aplicao.
Pick Carregar Valor Adiciona um Pick Carregar Valor.
Pick Inverter Valor Adiciona um Pick Inverter Valor.
Pick ImprimirRelatrio
Adiciona um Pick Imprimir Relatrio.
Introduo 3
CONE OPO DESCRIORemover script ouPick selecionado
Remove o scriptou o Pickselecionado naLis ta de Aes .
Mover script ou Pickselecionado paracima
Move a aoselecionada paracima, na ordem daLis ta de Aespara o evento.
Mover script ou Pickselecionado parabaixo
Move a aoselecionada parabaixo, na ordemda Lis ta de Aespara o evento.
AppBrowser Abre a janela doAppBrowser.
Procurar Busca porocorrncias de umdeterminadotexto.
Procurar anterior
Seleciona na l i s tade resul tados aocorrnciaanterior.
Procurar prxima Seleciona na l i s tade resul tados aocorrnciaseguinte.
Substituir Substi tui asocorrnciasencontradas poroutro textoespeci ficado.
Criar evento dousurio
Cria um evento deusurio.
Remover evento dousurio
Remove o eventode usurioselecionado.
Editar evento dousurio
Edita o evento deusurioselecionado.
Compila o scriptselecionado
Compi la o scriptselecionado,mostrando oserros no pa inelMensagens .
Compilar todos osscripts deste evento
Compi la todos osscripts associadosao evento.
4 Introduo
CONE OPO DESCRIOCompila todos oseventos desteobjeto
Compi la todos oseventosassociados aoobjeto.
A ordem de execuo das aes de cima para baixo. Para alterar a ordem, pode-seutil izar as opes e . Util ize a opo para verificar se no h erros no scriptespecificado para o evento. As mensagens de erro do compilador so apresentadasno painel Mensagens, que pode estar em uma janela flutuante ou ancorado naparte inferior ou superior da aba Scripts. Clique duas vezes no erro caso deseje queele seja selecionado no script.
Mensagem do compilador
1.2.1 Adicionando um ScriptPara adicionar um script a um objeto, siga estes passos:
1. Selecione o objeto para o qual se deseja criar o script e clique na aba Scripts.
Introduo 5
Aba Scripts
2. Clique sobre o cone . O Editor de Scripts aberto, conforme a figura aseguir.
6 Introduo
Adicionando um script ao objeto
3. Digite os comandos VBScript desejados na caixa de edio de texto.
NOTA: Uti l i ze o caractere de subl inhado quando desejar acrescentar uma quebra del inha, para deixar o cdigo mais legvel . O caractere de subl inhado indica que ocdigo continua na l inha subsequente.
Por exemplo:If intTemperaturaCaldeira3 > 120 and _ intTemperaturaCaldeira4 > 120 Then bEnviarAlarme = True bAlarmeLigado = TrueEnd If
Cada evento pode ter vrios scripts e vrios Picks associados, chamados Aes doEvento. A l ista das aes pode ser vista na parte superior da janela de edio descripts. Cada objeto pode ter qualquer quantidade de eventos com scripts ou Picksassociados.
Introduo 7
NOTA: Ao cl i car com o boto di rei to do mouse sobre qualquer destas aesdescri tas anteriormente, abre-se um menu contextual que poss ibi l i ta recortar,copiar e colar scripts e Picks entre eventos .
1.3 PicksOs Picks implementam uma forma mais amigvel de realizar procedimentos maiscomuns, poupando tempo de configurao. Entre eles, esto aes como troca deTela ou atribuio de valores, bastante comuns na criao de um projeto. A seguirso descritos os Picks disponveis na aba Scripts.
1.3.1 Abrir TelaAbre uma determinada Tela ou Quadro.
Configuraes do Pick Abrir Tela
Opes disponveis no Pick Abrir Tela
OPO DESCRIOAbrir a tela Indica qual Tela deve ser aberta .
8 Introduo
OPO DESCRIONo quadro Indica o Quadro onde a Tela ser
visua l i zada. Se estiver em branco, ser oQuadro principa l (_top).
Zoom inicial Define o zoom da Tela , quandomostrada.
Parmetro Indica um parmetro a ser passado nachamada da Tela .
Habilitar scroll da tela Habi l i ta o uso das barras de rolagem naTela .
Especificar posio da tela Indica a pos io da Tela , em pixels .Especificar tamanho da tela Indica o tamanho da Tela , em pixels ou
Himetric.Estilo da janela Abre a ca ixa de di logo Estilo de janela.
1.3.1.1 Caixa de Dilogo Estilo de Janela
Permite configurar o estilo da janela a ser mostrada, definindo ttulo e adisponibil idade das bordas e botes de fechar, maximizar e minimizar, entre outrasopes. Se a opo Usar configurao padro das janelas for marcada, o sistemadesabilita as opes desta janela e assume a configurao padro do Viewer,conforme o que pode ser visto na aba Visualizador das propriedades do objetoViewer.
Introduo 9
Caixa de dilogo Estilo de Janela
1.3.2 Abrir Tela ModalAbre uma Tela Modal, isto , uma Tela que no permite a interao do usurio comoutras Telas enquanto esta estiver ativa.
10 Introduo
Configuraes do Pick Abrir Tela Modal
Opes disponveis no Pick Abrir Tela Modal
OPO DESCRIOAbrir a tela Seleciona a Tela a ser aberta .Ttulo Define o ttulo da janela . Esse texto ser
concatenado com o nome da Tela .Zoom inicial Define o zoom da Tela , quando
mostrada.Parmetro Indica um parmetro a ser passado na
chamada da Tela .Habilitar scroll da tela Habi l i ta o uso das barras de rolagem na
Tela .Especificar a posio da tela Determina a pos io, em pixels , do
quadro na Tela , a parti r do cantosuperior esquerdo da Tela .
Especificar o tamanho da tela Determina a largura e a a l tura , em pixelsou Himetric, da Tela .
Estilo da janela Permite configurar o esti lo da janela aser mostrada, definindo ttulo e adisponibi l idade das bordas e botes defechar, entre outras opes (ver o tpico Caixa de Dilogo Estilo de Janela).
Introduo 11
1.3.3 Executar AplicaoExecuta uma aplicao especfica.
Configuraes do Pick Executar Aplicao
Opes disponveis no Pick Executar Aplicao
OPO DESCRIOAplicao Cl icando-se em pode-se navegar no
disco para indicar o arquivo da apl icaoa ser executada.
Argumentos Permite especi ficar argumentos para achamada da apl icao.
Executar no diretrio Determina o di retrio de trabalho daapl icao que ser executada.
Modo de exibio Determina o tipo de janela de execuoda apl icao: Normal, Minimizado ouMaximizado.
12 Introduo
1.3.4 Carregar ValorCarrega um valor em um Tag.
Configuraes do Pick Carregar Valor
Opes disponveis no Pick Carregar Valor
OPO DESCRIONome do Tag Especi fica o nome do Tag no qual ser
carregado o va lor. Pode-se escolher o Tagno AppBrowser cl i cando em .
Valor Determina o va lor que ser carregado noTag. Pode-se escolher o tipo de dadoscl icando na ca ixa de seleo.
1.3.5 Inverter ValorPermite inverter o valor de um Tag. Se o valor do Tag for igual a Valor1, ento o Tagrecebe Valor2. Se o valor do Tag for igual a Valor2, ento o Tag recebe Valor1. Se ovalor do Tag no for igual a Valor1 nem Valor2, o Tag recebe Valor1.
possvel colocar tantos Picks Inverter Valor quantos se desejar. Isso permite a
Introduo 13
verificao de mltiplos valores para um mesmo Tag ou at mesmo para diversosTags em um mesmo evento.
Configuraes do Pick Inverter Valor
Opes disponveis no Pick Inverter Valor
OPO DESCRIONome do Tag Cl icando em , abre-se o AppBrowser
para a escolha do Tag desejado.Valor 1 Determina o primeiro va lor a ser
comparado. Se o va lor do Tag for igua l a Valor1, ento o Tag recebe Valor2.
Valor 2 Determina o segundo va lor a sercomparado. Se o va lor do Tag for igua l a Valor2, ento o Tag recebe Valor1.
14 Introduo
1.3.6 Imprimir RelatrioPermite imprimir um Relatrio na tela ou na impressora.
Configuraes do Pick Imprimir Relatrio
Opes disponveis no Pick Imprimir Relatrio
OPO DESCRIOImprimir relatrio Permite escolher o relatrio a ser
impresso.Sada Determina o tipo de sa da do relatrio:
Impressora: Envia o relatrio para aimpressora. Corresponde ao mtodo PrintTela: Executa uma prvia de impressodo relatrio na tela . Corresponde aomtodo PrintPreview
1.4 Eventos Definidos pelo UsurioApesar do E3 vir com uma extensa gama de eventos, muitas vezes o usurio podedesejar criar um evento especfico para sua aplicao.
Introduo 15
Um exemplo para a util izao de eventos definidos pelo usurio seria a realizaode um clculo ou tarefa mais complexa em um objeto, quando o evento gerador vemde um outro Tag ou propriedade.
Apesar de se poder criar e executar este mesmo tipo de trabalho a partir do prprioTag ou da propriedade geradora do evento, existem vantagens em manter-se o script junto ao objeto que sofrer a ao. Dentre elas, pode-se citar o trabalhoadicional necessrio para fazer um objeto apontar para outro, alm de facil idadesde manuteno, pois se por algum motivo for necessrio modificar ou apagar o Tagou a propriedade que seja o evento gerador, no necessrio modificar umsegundo objeto.
Outra vantagem o fato de que se o Tag gerador do evento for apagado, o objetono perder o script, basta que se indique uma outra fonte geradora de evento.
A gerao de eventos internos facil ita ainda a criao de bibliotecas, pois cada vezque um componente de biblioteca inserido em uma aplicao, ele traz consigo os scripts e clculos que podem ser necessrios, diminuindo o trabalho deconfigurao.
Para gerar um novo evento interno em um objeto, siga estes procedimentos:
1. Clique em Criar evento do usurio , ou ento em Criar novo evento naLista de Eventos. O E3 abrir uma janela para a definio das propriedades doevento.
Janela para a adio de eventos definidos pelo usurio
16 Introduo
Opes disponveis na janela Eventos
OPO DESCRIONome do Evento Nome que identi fi ca o evento.Propriedade ou expresso Expresso geradora do evento. Pode ser
copiada atravs do AppBrowser, ao cl i carem .
Sempre que a propriedade for uma condioverdadeira
Indica que o evento ser do tipo etOnEvent(o evento ocorre no momento que aexpresso for verdadeira) ou etWhileEvent(o evento ocorre cicl i camente, eminterva los pr-definidos).
Repetir o evento Quando preenchido, indica que o eventoser do tipo etWhileEvent. Indica o ciclo derepetio do evento em mi l i s segundos ,i s to , de quanto em quanto tempo ele i rocorrer, enquanto a expresso geradorafor verdadeira .
Sempre que a propriedade alterar o seuvalor
Indica que o evento ser do tipo etOnValueChanged, i s to , o evento i rocorrer sempre que a expresso geradoramudar de va lor.
Tratar a desconexo como mudana devalor
Indica se a conexo ou desconexo daexpresso geradora do evento dever sertratada como mudana.
2. Clique em OK para completar o processo e inserir o evento. Ele ir aparecer nalista de eventos.
3. Para alterar este evento, selecione-o e clique em Editar evento do usurio . Ajanela anterior ser aberta novamente para a edio de dados do evento.
4. Para apagar este evento, selecione-o e clique em Remover evento do usurio.
IMPORTANTE: Quando se cl i ca em Remover evento do usurio, os scripts deste eventosero perdidos .
Programando no E3 17
2 Programando no E3CAPTULO
Apesar de a maioria dos aspectos do VBScript se aplicarem programao de scripts no E3, algumas particularidades devem ser destacadas no que diz respeitos implementaes do conceito de orientao a objetos no sistema.
O VBScript uma linguagem baseada no Visual Basic que traz a capacidade descripting (roteirizao) para aplicaes que rodam no sistema operacionalWindows.
O VBScript troca informaes com as aplicaes util izando a tecnologia ActiveXScripting. Com o ActiveX Scripting, navegadores e outras aplicaes cliente, como oViewer, podem compilar scripts e chamar funes, dentre outros procedimentos.Isso possibil ita que scripts desenvolvidos para uma aplicao ou biblioteca, quedevam ser executados na interface grfica, possam ser executados tanto no Viewerquanto em um navegador de Internet, sem a necessidade de qualquer adaptao doaplicativo.
Mais informaes sobre o VBScript podem ser obtidas no manual Guia deReferncia do VBScript, no Grupo de Programas Elipse E3.
2.1 Ambiente de ProgramaoO ambiente de programao de scripts no E3 Studio pode ser acessado atravs doclique com o boto direito do mouse sobre qualquer objeto, escolhendo-se a opo Propriedades. Na aba Scripts da view do objeto, pode-se ver a caixa de seleo ondese define qual evento ser o gerador do script. Como visto no captulo anterior,existem dois tipos de eventos em um objeto do E3, os Pr-Definidos e os Definidospelo Usurio.
Os eventos pr-definidos variam de objeto para objeto, dependendo da suautil izao e funcionalidade. Um objeto de Tela, por exemplo, possui eventosrelacionados interface grfica, como Click (chamado ao clicar sobre o objeto) ouDbClick (chamado com um duplo clique do mouse); j um objeto como um Driver deComunicao possui eventos relacionados comunicao, como OnCommError(chamado quando h um erro de comunicao). Pode-se tambm definir outroseventos para o objeto, como visto anteriormente.
Quando um script associado a um evento em um objeto, o campo de digitaoapresenta uma declarao de procedimento (procedure), cuja definio automtica e composta do seguinte texto:
Sub NomeDoObjeto_NomeDoEvento()End Sub
Onde NomeDoObjeto o nome do objeto associado e NomeDoEvento o nome do
18 Programando no E3
evento em questo. Os comandos do script devero estar entre essas duas l inhas.
Para ajudar na digitao do script, pode-se util izar o AppBrowser. Ao se escolher omtodo ou propriedade desejada, pode-se util izar a opo Copiar. O Tag,propriedade ou mtodo escolhidos sero inseridos na posio do cursor na reade edio do script. O local do cursor mostrado atravs de uma animao comseta piscante.
2.2 Declarando Variveis possvel declarar variveis de duas maneiras: implicitamente ou explicitamente.
Para declarar uma varivel implicitamente, basta usar seu nome no script.Automaticamente, a varivel ser criada e inicializada com o valor da atribuio,ou permanecer com o valor EMPTY (vazia, sem nenhum valor), caso no recebanenhum valor antes de ser util izada.
Esta uma prtica rpida, porm se o script for muito extenso, isto pode causarconfuso e a criao de mais de uma varivel com o mesmo nome, gerando bugs noscript.
Para declarar variveis explicitamente, util iza se o comando Dim, como noexemplo:
Dim Temperatura
Pode-se declarar mltiplas variveis separando cada nome de varivel com umavrgula. Por exemplo:
Dim Esquerda, Direita, Topo, Base
Em virtude dos scripts no E3 serem todos associados a um objeto em particular, asvariveis so sempre locais, vlidas apenas para o escopo do script. Para ter-sevariveis pblicas ou globais, deve-se criar um Tag Interno e util iz-lo paraarmazenar o valor desejado.
2.3 Obtendo Referncias aos ObjetosUma das caractersticas mais importantes ao se trabalhar com scripts dentro do E3 considerar a separao existente entre os processos que so executados noservidor e aqueles executados na interface do cliente (Viewer). Para se trabalharcom scripts, pode-se manipular:
Objetos do servidor atravs do servidor
Objetos do servidor atravs do(s) Viewer(s)
Objetos do Viewer atravs do mesmo Viewer
No entanto, no se pode manipular diretamente:
Programando no E3 19
Objetos do Viewer atravs do servidor (s possvel atravs da criao deeventos no Viewer, l igados a variveis que esto no servidor)
Objetos de um Viewer a partir de outro Viewer (s possvel atravs da criaode eventos l igados a variveis que esto no servidor)
Tais l imitaes so decorrentes do fato de que, por definio, existe umaindependncia entre o que cada uma das estaes Viewer est executando ouvisualizando e o servidor, e vice-versa. Por isso, todas as atividades, tanto doservidor como do Viewer, necessitam ser coordenadas de forma assncrona ouatravs de eventos para operarem de forma harmoniosa.
Logo, devido a esta independncia ao se criar um script, primeiro deve-se obteruma referncia correta dos objetos que se deseja manipular, ou seja, necessrioque o objeto seja primeiramente encontrado nos vrios mdulos do E3.
Vale repetir que, ao se editar um script, o usurio poder util izar o AppBrowser,que permite copiar para o script o caminho de um mtodo ou propriedade de formacompleta, auxil iando-o na criao de scripts.
Portanto, para acessar os objetos externos que esto sendo manipulados em um script, so util izadas algumas diretivas bsicas. Por exemplo, para se manipular ovalor de um Tag de Comunicao, o caminho Servidor - Driver - Pasta (se houver) -Tag. J se o objetivo manipular um boto na Tela, o caminho Viewer - Quadro(se houver) - Tela - Boto.
Existem basicamente trs localizaes de origem de scripts, do ponto de vista dametodologia para acesso dos objetos:
Servidor
Telas e Quadros (Viewer)
ElipseX (bibliotecas): podem ser XObjects (rodam no servidor) e XControls(rodam no Viewer)
2.3.1 Acessando Propriedades do ServidorPara se acessar um objeto que est sendo executado no servidor a partir de umobjeto de Tela ou um ElipseX, deve-se usar o mtodo Application.GetObject.
A palavra Application retorna o objeto de aplicao relacionado ao contexto atualdo objeto, e o mtodo GetObject procura no servidor por um objeto dentro deApplication com o nome fornecido. Exemplo:
Sub Button1_Click() Application.GetObject("Driver1")._ Item("tag001").AllowRead = FalseEnd Sub
Ou ainda:
20 Programando no E3
Sub Button1_Click() Application.GetObject("Driver1.tag001").AllowRead = FalseEnd Sub
O mtodo Item foi util izado para, a partir da referncia de Driver1, localizar otag001, pois o Driver uma coleo de Tags. Depois de localizado o objeto, suaspropriedades e funes podem ser acessadas l ivremente.
Caso alguma outra operao tivesse que ser realizada com Driver1 ou tag001,outra alternativa para o script anterior seria:
Sub Retangulo1_Click() Set obj = Application.GetObject("Driver1") obj.Item("tag001").AllowRead = False obj.Item("tag002").AllowRead = FalseEnd Sub
Neste caso, a varivel obj est apontando para o objeto Driver1 e na prxima vezque se quiser acessar algum objeto que descende de Driver1 dentro do script,pode-se util izar a varivel obj diretamente. Isto traz um ganho de performance, jque cada chamada do mtodo GetObject faz um acesso ao servidor. Atravs destatcnica, chamadas desnecessrias ao servidor so evitadas. Este exemplo usa ocomando Set, que ser explicado mais adiante. Note que a util izao de variveistambm torna o cdigo mais claro e de modificao mais fcil. Caso sejanecessrio alterar o objeto no qual queremos executar comandos, basta mudar alinha de atribuio dessa varivel.
A palavra Application nos scripts pode indicar tanto funes que so executadas noViewer quanto no servidor. Neste caso, o objeto Application sabe de antemo quaisfunes devem ser executadas tanto para um quanto para o outro caso. No possvel, entretanto, executar funes de Viewer dentro do servidor, assim comotambm no possvel executar funes de servidor dentro do Viewer.
2.3.2 Acessando Propriedades do StudioPara acessar um objeto de servidor qualquer em um script que roda no Studiopode-se usar a diretiva Application.GetObject. A palavra Application retorna oobjeto de aplicao relacionado ao contexto atual do objeto, e o mtodo GetObjectprocura no Domnio carregado no Studio por um objeto de servidor com o caminhofornecido. Exemplo (o evento CustomConfig disparado no Studio):
Sub XControl1_CustomConfig Application.GetObject("Dados.TagDemo1").DocString ="Documentao"End Sub
Programando no E3 21
2.3.3 Acessando Propriedades do Servidor de dentro doServidorCaso seja necessrio acessar as propriedades de um Tag a partir de outro, origem edestino esto no servidor l igados via um mdulo pai, que Driver1.
Nesta situao, deve ser usada a propriedade Parent. Isto faz com que sejaacessado primeiro o objeto pai onde est o script, para depois descer-se nahierarquia em busca de outro elemento.
Driver1 o objeto pai de Tag1 e de Tag2
Exemplo:Sub Tag1_OnRead() Parent.Item("Tag2").AllowRead = FalseEnd Sub
Estando-se dentro de um grupo, e desejando-se acessar o mesmo Tag2, pode-seaninhar vrios comandos Parent.
22 Programando no E3
Pasta1 o objeto pai de Tag1
Exemplo:Sub Tag1_OnRead() Parent.Parent.Item("Tag2").AllowRead = FalseEnd Sub
2.3.4 Acessando Objetos de uma Tela a partir de um Scriptna TelaDeve-se usar somente o mtodo Item, j que os objetos so fi lhos da Tela. Exemplo:
Sub Tela1_OnPreShow(vArg) Item("Retangulo1").Visible = TrueEnd Sub
Programando no E3 23
Retangulo1 um item da TelaInicial
2.3.5 Acessando Objetos de uma Tela a partir de um Scriptem outro Objeto na TelaPode-se usar a propriedade Parent ou o mtodo Screen.
TelaInicial o objeto pai de Retangulo1 eRetangulo2
Exemplo:Sub Retangulo1_Click() Parent.Item("Retangulo2").Visible = TrueEnd Sub
24 Programando no E3
2.3.6 Modificando a Tela ou Objetos de Tela a partir doServidorA modificao de um comportamento qualquer em uma Tela s pode ser feita apartir de Associaes (o servidor reporta automaticamente para os Viewers todasas mudanas das variveis escolhidas), ou atravs de uma busca explcita doViewer por informaes no servidor. Toda a operao de associao da interfacegrfica feita do cliente para o servidor, e no do servidor para o cliente. Assim,no possvel modificar Telas ou objetos a partir do servidor via scripts, pois cadacliente de dados uma cpia diferente das Telas.
Um exemplo prtico mudar a cor de um texto na Tela para verde quando um Tagfor l igado (valor um) e para vermelho quando for desligado (valor zero). Neste caso,deve-se simplesmente criar uma Associao Digital entre a propriedade TextColorde Texto1 com o Tag1. Associaes so preferveis devido rapidez de execuo esimplicidade de manuteno e construo da aplicao.
Associando a cor do texto ao valor de Tag1
Uma outra forma de executar o procedimento anterior criar um script no Viewerque verifique constantemente se o Tag1 mudou ou no de valor, para ento mudara cor do texto. Este tipo de script possvel de ser realizado, mas degrada muito aperformance da aplicao. Por isto, esta prtica no aconselhvel.
Programando no E3 25
2.3.7 Acessando Objetos de um ElipseX a partir do prprioElipseXNa criao de um ElipseX, pode-se declarar propriedades (XProperties) e inserirobjetos, que podem ser objetos de Tela (XControl) ou objetos do servidor (XObject).Para se acessar as XProperties atravs de scripts, basta acessar o nome dapropriedade diretamente.
Aba Design
26 Programando no E3
Aba Propriedades
Por exemplo, na figura anterior temos o XControl1 com a propriedadePropriedade1, e os objetos Texto1 e Retangulo1.
A propriedade Propriedade1, do tipo Booleano, pode ser acessada com o script aseguir:
Sub XControl1_OnStartRunning() XControl1.Propriedade1 = TrueEnd Sub
Ou ainda:Sub XControl1_OnStartRunning() Propriedade1 = TrueEnd Sub
Se o ElipseX possui objetos internos, ento possvel util izar o mtodo Item paraobter uma referncia destes objetos. Por exemplo:
Sub XControl1_OnStartRunning() Item("Texto1").Value = "motor" Item("Retangulo1").ForegroundColor = RGB(212, 208, 20)End Sub
Programando no E3 27
2.3.8 Acessando Objetos de um ElipseX ExternamenteO acesso externo a um objeto ElipseX s pode ser feito atravs de suaspropriedades, util izando suas instncias criadas. No possvel acessar objetosinternos diretamente.
Se o ElipseX em questo for um XControl, ele se comporta como um objeto de Tela.Por exemplo, considere a aplicao da figura a seguir.
XControl (exemplo)
Para alterar a propriedade Propriedade1 do XControl pode-se fazer o seguintescript no evento Click de um boto:
Sub CommandButton1_Click() Screen.Item("XControl11").Propriedade1 = TrueEnd Sub
Ou ainda:Sub CommandButton1_Click() Parent.Item("XControl11").Propriedade1 = True
28 Programando no E3
End Sub
No caso de um XObject, deve-se inseri-lo em um Servidor de Dados:
XObject (exemplo)
Um script para alterar a propriedade Valor do XObject seria:Sub CommandButton1_Click() Application.GetObject("Dados.XObject11").Valor = 123End Sub
Ou ainda:Sub CommandButton1_Click() Application.GetObject("Dados").Item("XObject11").Valor = 123End Sub
Pode-se ainda ter um XControl acessando um XObject, atravs de uma XProperty.Por exemplo, a figura mostra um XControl chamado "XControl1" que possui umapropriedade XValor do tipo XObject1, que o nome do XObject criado.
Programando no E3 29
XObject
30 Programando no E3
XControl
Faz-se, por exemplo, uma Associao do valor do objeto "Texto1" com apropriedade Valor do "XObject1". Isso feito atravs da propriedade XValor, criadano "XControl1". Assim, o valor da propriedade Valor do "XObject1" mostrada noobjeto "Texto1" do "XControl1".
Programando no E3 31
Propriedade Valor
No projeto, o vnculo da instncia "XObject11" instncia "XControl11" pode serfeito atravs de uma Associao na propriedade XValor.
32 Programando no E3
XValor (Associao)
2.3.8.1 Exemplo de Criao de um ElipseX
Suponha que determinada aplicao necessite supervisionar e comandar 10motores. Cada motor precisa ser representado por um desenho na Tela, que exibe acor verde quando estiver operando, e vermelho quando estiver desligado. Tambmdeve ser permitido o comando do motor na Tela, enviando instrues para l igar edesligar, e sua velocidade tambm deve ser exibida.
Uma possibil idade a criao de um XControl chamado MotorA, com aspropriedades Estado igual a Boolean e Velocidade igual a Double, conforme a figuraa seguir:
Programando no E3 33
Aba Design
34 Programando no E3
Aba Propriedades
1. Para a indicao da cor, a propriedade OverrideFillColor do motor deve estarassociada propriedade Estado do XControl, atravs de uma AssociaoDigital. 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 Boto Liga-Desliga troca o valor da propriedade Estado atravs de umaAssociao Simples.
Note que:
As Associaes dentro da biblioteca so internas, e seu formato Nome_do_Controle.Nome_da_Propriedade
O objeto, depois de inserido na Tela, dever ter essas propriedades associadasaos Tags verdadeiros, para cada um dos motores
Uma Associao de um Tag para a propriedade Estado ter que ser feita paracada MotorA
Programando no E3 35
Viewer
Outra possibil idade, mais abrangente, util iza um XObject para o motor. Destaforma, todas as informaes relativas aos motores residem em objetos que ficamno servidor. Assim, pode-se construir vrios tipos de interface para o motor(XControls) que trazem do servidor, atravs do XObject, somente as informaesnecessrias.
Desta maneira, o objeto MotorA teria que ser modificado para apontar para umXObject, ao invs de declarar em si mesmo todas as propriedades.
1. Crie um XObject chamado MotorADados, e declare nele as propriedades Estadoe Velocidade.
2. Crie um XControl MotorA que possua apenas uma propriedade, chamadaMeusDados, do tipo MotorADados.
3. MotorADados dever ser inserido em uma Pasta de Dados no servidor, ecorresponder a cada um dos motores. MotorA por sua vez ir apontar para oMotorADados desejado, no sendo necessria a criao de novos Tags.
36 Programando no E3
Configurao na view do XObject
Programando no E3 37
Configurao na view do XControl
4. A propriedade Estado, associada propriedade OverrideFillColor do motor,fica MotorA.MeusDados.Estado.
5. A propriedade Velocidade, associada ao Display, ficaMotorA.MeusDados.Velocidade.
2.4 Acessando ObjetosSeguindo o conceito de encapsulamento de programao orientada a objetos, osmtodos e propriedades ficam associados a seus objetos de origem. Isto significaque sempre se deve indicar o objeto do qual se est acessando o mtodo oupropriedade.
2.4.1 PropriedadesPara referenciar as propriedades de um objeto, deve-se usar o mtodo GetObject. Asintaxe a seguinte:
Application.GetObject("").
38 Programando no E3
Onde o nome do objeto e , a propriedade desejada.
Exemplo:Application.GetObject("Dados.TempTanque2").Type
Para facil itar a digitao, aconselhvel sempre util izar o AppBrowser, que j traza sintaxe correta.
2.4.1.1 Propriedade Value
No E3, muitos objetos possuem uma propriedade em comum chamada Value. Nestecaso especfico, pode-se acessar esta propriedade util izando se o prprio nome doobjeto:
Button1 = False
Que equivalente a:Button1.Value = False
2.4.2 MtodosA sintaxe a seguir exemplifica a chamada de um mtodo que no precisa deparmetros:
Application.GetObject("").
Onde o objeto em questo e , o mtodo desejado.
Se o mtodo aceita parmetros, use a sintaxe a seguir:Application.GetObject("").()
Onde o parmetro a ser passado para o mtodo. Quando houvermais de um parmetro, util ize vrgulas para separ-los.
Se o mtodo retorna um resultado, e for desejvel guard-lo, ento os parmetrosdevem ser colocados obrigatoriamente entre parnteses:
=Application.GetObject("").()
Onde a varivel que ir receber o resultado do mtodo.
2.5 Trabalhando com ColeesUma coleo (ou collection) um objeto que gerencia um conjunto de objetossimilares. Os objetos contidos em uma coleo so referenciados por ndices,semelhante referncia de arrays. Pode-se adicionar ou remover objetosindividuais de uma coleo, conforme o exemplo a seguir.
Sub CommandButton1_Click() ' Adiciona uma pena no objeto E3Chart1
Programando no E3 39
Screen.Item("E3Chart1").Pens.AddPen "Pena"End Sub
Sub CommandButton2_Click() ' Remove a primeira pena Screen.Item("E3Chart1").Pens.Remove 0End Sub
NOTA: o primeiro objeto em uma coleo possui ndice 1 (um).
Todas as colees possuem uma propriedade em comum chamada Count, que onmero de objetos (ou fi lhos) existentes. Exemplo:
Sub CommandButton1_Click() ' Mostra uma caixa de dilogo com o nmero de penas MsgBox Screen.Item("E3Chart1").Pens.CountEnd Sub
2.5.1 Acessando Objetos com o Mtodo ItemToda coleo possui um mtodo Item, que pode ser usado para acessar qualquerobjeto dentro da coleo. O mtodo Item aceita um parmetro Item, que pode serum nmero (inteiro positivo) ou o nome do objeto dentro da coleo que se desejaacessar. Os exemplos a seguir so de ajustes da cor da segunda Pena do objetoE3Chart:
Sub CommandButton1_Click() ' Modifica a cor da terceira pena Screen.Item("E3Chart1").Pens.Item(2).Color = RGB(212, 208,20)End Sub
Ou ainda: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 so equivalentes, o primeiro indicando o ndice da Penana coleo, e o segundo indicando o nome da Pena.
2.6 Comando SetO VBScript implementa o conceito de polimorfismo das l inguagens orientadas aobjeto, permitindo que uma varivel do tipo Variant assuma a forma de um objetoqualquer, atravs do comando Set. Deste modo, a varivel funciona como umponteiro para o objeto desejado, permitindo acessar seus mtodos e propriedades.
40 Programando no E3
Exemplo:Sub CommandButton1_Click() Set E3Chart = Screen.Item("E3Chart1") E3Chart.Pens.Item(2).Color = RGB(212, 208, 20)End Sub
Neste exemplo foi feita a mesma tarefa que na seo anterior, porm a partereferente a como chegar at o objeto especfico havia sido omitida. Sem o comando Set, a mesma chamada teria que ser escrita da seguinte forma:
Screen.Item("E3Chart1").Pens.Item(2).Color = RGB(212, 208, 20)
Aparentemente, no existe vantagem neste caso, pois pode-se fazer tudo em umanica l inha de cdigo. Porm, se logo abaixo no mesmo script outras operaesforem necessrias, o processo se torna mais simples e rpido se a chamada aomtodo Item no tiver sido colocada em todas as l inhas.
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 E3GlobalsO E3Globals um mdulo do E3 que contm mtodos de uso global. Os mtodosGetCurrentWindowsUserName, GetLocalTime e GetLocalTimeUTC no podem serutil izados em Associaes, somente em scripts. O restante dos mtodos pode serutil izado tanto em scripts quanto em Associaes.
A forma de util izao destes mtodos admite duas sintaxes, E3Globals.ou simplesmente , exceto no caso do objeto Relatrio, onde a sintaxeE3Globals. obrigatria.
2.7.1 MtodosEsta seo contm informaes sobre os mtodos do mdulo E3Globals.
Programando no E3 41
2.7.1.1 BShl
BShl(Value, Bits)
Retorna o valor passado no parmetro Value deslocado esquerda o nmero debits especificado no parmetro Bits. Este mtodo retorna um erro caso o parmetroBits esteja fora da faixa permitida (entre 0 e 31). Este mtodo est disponvel tantoem Associaes quanto em scripts.
2.7.1.2 BShr
BShr(Value, Bits[, PreserveSign])
Retorna o valor passado no parmetro Value deslocado direita o nmero de bitsespecificado no parmetro Bits. Este mtodo retorna um erro caso o parmetro Bitsesteja fora da faixa permitida (entre 0 e 31). O parmetro PreserveSign umBooleano opcional que, se verdadeiro, preenche os bits esquerda com uma cpiado bit de sinal. O valor padro deste parmetro (Falso) preenche os bits esquerdacom zeros. Este mtodo est disponvel tanto em Associaes quanto em scripts.
2.7.1.3 Choose
Choose(Index, Values)
Retorna um dos itens especificados em Values, baseado no parmetro Index(iniciando em zero). Este mtodo retorna Null caso o valor de Index seja menor que0 ou maior ou igual ao nmero de valores em Values. Este mtodo est disponveltanto em Associaes quanto em scripts.
NOTA: O mtodo Choose no propaga a qual idade nem o timestamp dos va lores . Seuma Associao contiver a expresso Choose(TagIndex, Tag1.Value,Tag2.Value, Tag3.Value), o resul tado ser o va lor escolhido, porm comqual idade Boa (192) e timestamp a tua l . Para que essas informaes sejampreservadas , necessrio especi ficar somente o objeto, como por exemploChoose(TagIndex, Tag1, Tag2, Tag3).
2.7.1.4 E3Format
E3Format(Value, Format)
Formata a expresso em Value uti l izando o formato especificado em Format. Esteformato util iza as mesmas definies da propriedade Format de objetos Texto,Display e SetPoint. Este mtodo est disponvel tanto em Associaes quanto emscripts.
42 Programando no E3
2.7.1.5 GetBit
GetBit(Value, BitIndex)
Retorna o valor (verdadeiro ou falso) do bit de Value especificado em BitIndex. Estemtodo retorna um erro caso o parmetro BitIndex esteja fora da faixa permitida(entre 0 e 31). Este mtodo est disponvel tanto em Associaes quanto em scripts.
2.7.1.6 GetComputerName
GetComputerName()
Retorna uma String contendo o nome do computador atual. Este mtodo estdisponvel tanto em Associaes quanto em scripts.
2.7.1.7 GetCurrentWindowsUserName
GetCurrentWindowsUserName()
Retorna uma String contendo o nome do usurio logado no processo corrente. Estemtodo no est disponvel em Associaes, somente em scripts.
2.7.1.8 GetLocalTime
GetLocalTime()
Retorna a data e hora do computador local, com preciso de milissegundos e nofuso horrio local. Este mtodo no est disponvel em Associaes, somente emscripts.
2.7.1.9 GetLocalTimeUTC
GetLocalTimeUTC()
Retorna a data e hora do computador local, com preciso de milissegundos e nofuso horrio UTC (Tempo Universal Coordenado). Este mtodo no est disponvelem Associaes, somente em scripts.
2.7.1.10 IIf
IIf(Condition, ExprTrue, ExprFalse)
Retorna a expresso contida em ExprTrue se a condio avaliada em Condition forverdadeira, e a expresso contida em ExprFalse se a condio avaliada for falsa.Este mtodo est disponvel tanto em Associaes quanto em scripts.
Programando no E3 43
NOTA: O mtodo IIf no propaga a qual idade nem o timestamp dos va lores . Se umaAssociao contiver a expresso IIf(Tag1.Value == 0, Tag2.Value,Tag3.Value), o resul tado ser o va lor de Tag2 ou Tag3, porm com qual idade Boa(192) e timestamp a tua l . Para que essas informaes sejam preservadas , necessrio especi ficar somente o objeto, como por exemplo IIf(Tag1.Value ==0, Tag2, Tag3).
2.7.1.11 OPCGetLimit
OPCGetLimit(Quality)
Retorna a informao de Limite de uma Qualidade OPC especificada no parmetroQuality. Este mtodo est disponvel tanto em Associaes quanto em scripts. Osvalores possveis de retorno deste mtodo so:
0: Livre
1: Baixo
2: Alto
3: Constante
2.7.1.12 OPCGetQuality
OPCGetQuality(Quality)
Retorna a informao de Qualidade de uma Qualidade OPC especificada noparmetro Quality. Este mtodo est disponvel tanto em Associaes quanto emscripts. Os valores possveis de retorno deste mtodo so:
0: Ruim
1: Incerta
2: No util izada
3: Boa
2.7.1.13 OPCGetSubStatus
OPCGetSubStatus(Quality)
Retorna a informao de Substatus (de 0 a 15) de uma Qualidade OPC especificadano parmetro Quality. Este mtodo est disponvel tanto em Associaes quanto emscripts. O Padro OPC especifica os seguintes valores:
Qualidade Boa:
0: no especificado
1: sobrescrita local
44 Programando no E3
Qualidade Ruim:
0: no especificado
1: erro de configurao
2: no conectado
3: falha no dispositivo
4: ltimo valor conhecido
5: falha de comunicao
6: fora de servio
Qualidade Incerta:
0: no especificado
1: ltimo valor util izvel
4: sensor no confivel
5: unidade de engenharia excedida
6: sub-normal
2.7.1.14 OPCGetVendor
OPCGetVendor(Quality)
Retorna a informao de Reservado para o Fabricante (de 0 a 255) de umaQualidade OPC especificada em Quality. Este mtodo est disponvel tanto emAssociaes quanto em scripts.
2.7.1.15 OPCIsBad
OPCIsBad(Quality)
Retorna verdadeiro se a Qualidade OPC Ruim, ou falso caso contrrio. Estemtodo est disponvel tanto em Associaes quanto em scripts.
2.7.1.16 OPCIsGood
OPCIsGood(Quality)
Retorna verdadeiro se a Qualidade OPC Boa, ou falso caso contrrio. Este mtodoest disponvel tanto em Associaes quanto em scripts.
Programando no E3 45
2.7.1.17 OPCIsUncertain
OPCIsUncertain(Quality)
Retorna verdadeiro se a Qualidade OPC Incerta, ou falso caso contrrio. Estemtodo est disponvel tanto em Associaes quanto em scripts.
2.7.1.18 OPCMakeQuality
OPCMakeQuality(QualityFlag, SubStatus, Limit, Vendor)
Retorna um novo valor de Qualidade OPC util izando os valores passados nosparmetros QualityFlag, SubStatus, Limit e Vendor. Este mtodo est disponvel tantoem Associaes quanto em scripts. Os valores possveis para cada um dosparmetros so 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 mtodoOPCGetSubStatus para os valores possveis). Se este parmetro for omitido,assume o valor 0
Limit: Especifica o l imite do valor. Se este parmetro for omitido, assume o valor0
0: Livre
1: Baixo
2: Alto
3: Constante
Vendor: Valor especfico do fabricante (entre 0 e 255). Se este parmetro foromitido, assume o valor 0
2.7.1.19 OPCSetLimit
OPCSetLimit(Quality, Limit)
Modifica a informao de Limite de uma Qualidade OPC e retorna o valormodificado. Este mtodo est disponvel tanto em Associaes quanto em scripts.Os valores possveis para o parmetro Limit so:
0: Livre
1: Baixo
46 Programando no E3
2: Alto
3: Constante
2.7.1.20 OPCSetQuality
OPCSetQuality(Quality, QualityFlag)
Modifica a informao de Qualidade de uma Qualidade OPC e retorna o valormodificado. Este mtodo est disponvel tanto em Associaes quanto em scripts.Os valores possveis para o parmetro QualityFlag so:
0: Ruim
1: Incerta
2: No util izada
3: Boa
2.7.1.21 OPCSetSubStatus
OPCSetSubStatus(Quality, SubStatus)
Modifica a informao de Substatus de uma Qualidade OPC (de 0 a 15) e retorna ovalor modificado. Este mtodo est disponvel tanto em Associaes quanto emscripts. O Padro OPC especifica os seguintes valores:
Qualidade Boa:
0: no especificado
1: sobrescrita local
Qualidade Ruim:
0: no especificado
1: erro de configurao
2: no conectado
3: falha no dispositivo
4: ltimo valor conhecido
5: falha de comunicao
6: fora de servio
Qualidade Incerta:
0: no especificado
1: ltimo valor util izvel
Programando no E3 47
4: sensor no confivel
5: unidade de engenharia excedida
6: sub-normal
2.7.1.22 OPCSetVendor
OPCSetVendor(Quality, Vendor)
Modifica a informao de Reservado para o Fabricante (de 0 a 255) de umaQualidade OPC e retorna o valor modificado. Este mtodo est disponvel tanto emAssociaes quanto em scripts.
2.7.1.23 SetBit
SetBit(Value, BitIndex, BitValue)
Ajusta o valor de Value (verdadeiro ou falso) do bit especificado em BitIndex paraBitValue. Este mtodo retorna um erro caso o parmetro BitIndex esteja fora dafaixa permitida (entre 0 e 31). Este mtodo est disponvel tanto em Associaesquanto em scripts.
2.7.1.24 SourceTypeName
SourceTypeName(SourceType)
Retorna uma String com a descrio da Fonte de Medida ativa (propriedadeActiveSource dos objetos Medida Analgica e Medida Discreta do Elipse Power).Este mtodo est disponvel tanto em Associaes quanto em scripts. Os valorespossveis para o parmetro SourceType so os seguintes:
-1: String vazia
0: Fonte Ativa
1: SCADA
2: Operador
3: Centro de Comando
4: Faturamento
5: Calculada
6: Banco de Dados
100: Processador Topolgico
101: Fluxo de Potncia
102: Estimador de Estados
48 Programando no E3
103: Descarte de Cargas
NOTA: Caso o va lor passado no parmetro SourceType no esteja entre os va loresposs veis , es te mtodo retorna "???".
2.8 Eventos, Mtodos e Propriedades Gerais dosObjetosEsta seo contm informaes sobre eventos, mtodos e propriedades gerais dosobjetos.
2.8.1 EventosEventos so ocorrncias relacionadas a um objeto, que permitem disparar aesprogramadas. Existem basicamente, dois tipos de eventos: Fsicos (ou Externos) eInternos. Os Eventos Fsicos so, por exemplo, aes do usurio. No caso do usuriodigitar algo no teclado, a informao relevante pode ser a tecla pressionada, ou seo usurio apontar e clicar com o mouse, a informao relevante a posio docursor e o status dos botes. Os Eventos Internos so, por exemplo, mudanas devalor de uma varivel (Tag) na aplicao. Como o Tag pode ser associado a umdispositivo externo, diz-se que os eventos internos podem ter associaes fsicas,como a mudana da temperatura de uma cmara, por exemplo.
2.8.1.1 Variveis de Evento
Variveis de Evento so criadas quando o evento inicia. Para serem util izadas,devem ser associadas a parmetros na chamada do script do evento. O exemplo aseguir a chamada de um procedimento associado ao evento KeyDown deAlgumObjeto.
Sub AlgumObjeto_KeyDown(KeyCode, Shift)
Note que na chamada tem-se duas variveis, KeyCode e Shift. O E3 ir atribuirvalores a essas variveis automaticamente no momento da ocorrncia do evento.Neste caso, KeyCode ir receber o cdigo da tecla pressionada e Shift receberVerdadeiro ou Falso, conforme a tecla SHIFT esteja pressionada ou no.
2.8.1.2 OnStartRunning
OnStartRunning()
Ocorre to logo um objeto seja iniciado. Exemplo (Meses um Tag Interno e util izao evento OnStartRunning para inicializar o vetor):
Sub Meses_OnStartRunning() Value = Array ("Janeiro", "Fevereiro", "Maro", "Abril",_ "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro",_
Programando no E3 49
"Novembro", "Dezembro")End Sub
NOTA: Para acessar este array, necessrio copiar a propriedade Value para umavarivel loca l .
2.8.1.3 OnStopRunning
OnStopRunning()
Ocorre quando termina a execuo de uma instncia deste objeto. Util ize o evento OnStopRunning para realizar operaes de finalizao para o objeto. Exemplo:
Sub TagInterno1_OnStopRunning() ' Quando finaliza o objeto TagInterno1 ' atribui False ao TagInterno2 Set tag2 = Application.GetObject("Dados.TagInterno2") tag2.Value = FalseEnd Sub
2.8.2 MtodosNeste captulo so l istados os mtodos comuns aos objetos do E3. Cada entradamostra o nome do mtodo com seus respectivos parmetros, na sintaxe correta, eum exemplo de util izao do mtodo.
2.8.2.1 Chamadas de Mtodos
Muitos mtodos pr-definidos possuem parmetros, que podem (ou devem) serpassados na chamada do mtodo. Para isso, o VBScript possui uma regra que deveser seguida: se o mtodo for util izado em uma atribuio, seus parmetros devemestar entre parnteses. Por exemplo, veja esta chamada do mtodo GetObject:
obj = Application.GetObject("dados.tag001")
J se o mtodo for chamado sozinho, deve-se retirar os parnteses. Por exemplo,veja esta chamada do mtodo SetVariableValue:
Screen.Item("Consulta").SetVariableValue Valor, 12
Os parnteses usados nas citaes de mtodos neste manual servem apenas comoindicativo para diferenci-los das propriedades. Nos scripts, deve-se seguir estamesma regra.
2.8.2.2 Activate
Activate()
Ativa um objeto que est inativo no momento. Exemplo:Sub CommandButton1_Click()
50 Programando no E3
Dim obj, tag Set obj = Application.GetObject("Dados") ' Cria o objeto novo e deixa desativado (False). Set tag = obj.AddObject("DemoTag", False) ' Inicializa os parmetros do objeto novo. tag.Name = "tag001" tag.Type = 3 ' Ativa o objeto (coloca em execuo). tag.Activate()End Sub
2.8.2.3 AddObject
AddObject(ClassName[, Activate[, ObjectName]])
O mtodo AddObject adiciona um novo objeto aplicao. Este mtodo possui oparmetro ClassName, que indica o tipo de objeto que ser criado. Por exemplo,para se criar um retngulo na Tela, o parmetro ClassName deve ser "DrawRect". Oobjeto criado fica contido no objeto que chamou o mtodo AddObject e pode seracessado atravs do mtodo Item.
O parmetro Activate opcional e indica se o objeto ser ativado aps a criao.Se o objeto for ativado, as Associaes e scripts ficam habilitados. Se o objeto forcriado com Activate em False, mais tarde ele pode ser ativado pelo mtodo Activate.
O parmetro ObjectName tambm opcional e indica um nome para o objetocriado. Caso o nome j exista, o novo nome ser automaticamente incrementado. Seo parmetro no for informado, o novo objeto ser nomeado a partir do nome daclasse definida no parmetro ClassName.
O objeto s ser criado se ele for de um tipo compatvel com o objeto que o contm.Para se ter certeza que o objeto foi criado, pode-se util izar o mtodo IsObject.
NOTA: Apenas os objetos que possuem a opo Inserir no menu de contexto podemacessar este mtodo.
2.8.2.4 Context
Context(ContextName)
Retorna o objeto que implementa o contexto indicado pelo parmetro ContextName,que deve ser uma String entre aspas duplas. Este mtodo ir falhar se nenhumobjeto na hierarquia superior do objeto que est chamando este mtodoimplementar o contexto indicado. Os seguintes contextos esto disponveis:
Container: Objetos de servidor e do Viewer (objetos inseridos em arquivos deprojeto ou em pastas dentro de projetos)
Area: reas de Alarme, ou qualquer objeto de servidor cuja propriedadeIsAlarmArea esteja configurada para Verdadeiro
Programando no E3 51
NOTA: Os nomes dos contextos esto sempre em ingls , e no di ferenciammaisculas de minsculas . Para veri fi car o contexto a que um objeto pertence,basta abri r sua janela de Propriedades , selecionar a aba Item, e veri fi car oscontextos v l idos no quadro Contextos. Caso um objeto defina mais de um contexto,os nomes sero apresentados em ordem a l fabtica , separados por vrgulas .
2.8.2.5 Deactivate
Deactivate()
Este mtodo desativa um objeto criado ou previamente ativado pelo mtodo Activate. Pode-se desativar um objeto quando for necessrio realizar umaconfigurao prvia (inicializao de propriedades, por exemplo), ou quando sedesejar realizar testes nos quais o objeto no 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
2.8.2.6 DeleteObject
DeleteObject(ChildName)
Apaga do projeto o objeto especificado. O parmetro ChildName uma String(ignora maisculas e minsculas) que indica o objeto fi lho que se deseja apagar. Omtodo retorna True caso tenha conseguido apagar o objeto, ou False caso o objetofilho no exista.
Para se apagar um objeto a partir de uma referncia a um elemento, util iza-se omtodo DeleteObject do objeto pai. Exemplo:
Sub CommandButton1_Click() Set obj = Application.GetObject("Dados") If obj.DeleteObject("Tag001") Then MsgBox("Tag apagado com sucesso!") Else MsgBox("Falha em apagar: o tag no existe.") End IfEnd Sub
NOTA: Apenas os objetos que possuem a opo Inserir no menu de contexto podemacessar este mtodo.
52 Programando no E3
2.8.2.7 GetChildObject
GetChildObject(ObjectPath)
O mtodo GetChildObject retorna uma referncia para o objeto fi lho apontado peloparmetro ObjectPath. Com isso possvel acessar todas as propriedades emtodos deste objeto, semelhante ao funcionamento do mtodo GetObject. Omtodo falhar se o caminho apontado por ObjectPath contiver uma propriedadeou mtodo ao final. O caminho apontado pelo objeto fi lho no um caminho desdea raiz (o arquivo .prj) e sim um caminho sempre a partir do objeto onde o mtodo chamado.
NOTA: Es te mtodo NO exis te no objeto Appl ication do servidor e nem nas Pastasde Apl icativo, porm exis te no objeto Appl ication do Viewer, sendo acess velmesmo em um Viewer em modo Somente Leitura.
2.8.2.8 GetObject
GetObject(ObjectPath)
O mtodo GetObject retorna a referncia do objeto especificado em ObjectPath. Istopermite acessar todas as propriedades ou mtodos do objeto. Esta uma prticabastante comum na programao de scripts no E3. Ela facil ita a manipulao deobjetos e deixa o cdigo mais inteligvel. 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 = 20End Sub
2.8.2.9 Item
Item(ItemId)
Retorna a referncia para o objeto fi lho ItemId do objeto que chamou o mtodo. Omtodo Item pode buscar um objeto tanto pelo nome quanto pelo ndice (inteiro, de1 at o especificado na propriedade Count). Se o ndice ou o nome especificado forvlido, o mtodo Item retorna a referncia do objeto. Caso contrrio, o mtodoretorna um erro de "Parmetro Invlido". Exemplo:
Sub Tela1_Click() ' Atribui a obj a referncia 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
Programando no E3 53
2.8.2.10 Save
Save()
Este mtodo salva o objeto especificado, que foi modificado em tempo de execuo(runtime). Os objetos fi lhos tambm sero salvos, conforme as especificaes doobjeto pai. Este mtodo no vlido 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 modi ficaes fei tas em tempo de execuo e sa lvas no objeto s serovis veis no Studio aps a atua l i zao do projeto, que pode ser fei ta cl i cando-se como boto di rei to do mouse sobre o nome do projeto e selecionando a opoAtualizar.
2.8.3 PropriedadesTodo objeto possui Propriedades, que servem para guardar informaes a respeitode suas caractersticas. Por exemplo, um objeto do tipo Retngulo possui apropriedade Name, que contm seu nome, e as propriedades Width e Height, queguardam a sua largura e a sua altura, respectivamente, entre outras propriedades.
Neste captulo so l istadas todas as propriedades gerais dos objetos do E3. Cadaentrada traz o nome da propriedade, descrio e, quando aplicvel, um exemplo deseu uso.
As propriedades so identificadas por um cone que indica o tipo de dadosuportado em seu contedo. Os tipos de dados disponveis so os seguintes:
Tipos de dados disponveis
CONE TIPO DE DADO DESCRIO
Booleano Retorna Verdadeiro (True)ou Fa lso (Fa lse).Numrico Retorna um intei ro ou
double (pos i tivo ounegativo), a ser definidopela propriedade.
DataRetorna uma data noca lendrio Gregoriano(iniciando em 1899).
Texto Retorna um texto.
VariantRetorna um tipo varivel ,que pode assumir vriosformatos .
54 Programando no E3
CONE TIPO DE DADO DESCRIO
Cor Retorna uma cor noformato RGB.
Link Retorna uma Associaoentre objetos .
Enumerao Retorna um conjuntodeterminado de va lores .
Algumas propriedades podem propagar seus valores mesma propriedade em seusobjetos fi lhos. Neste caso, so chamadas de propriedades propagveis. Pode-se, noentanto, forar a propriedade do objeto fi lho a se comportar de modo diferente.
NOTA: O E3 uti l i za para definio de coordenadas e espessura o s i s tema Himetric.Neste s i s tema, cada unidade lgica equiva le a um mi ls imo de centmetro; ou seja ,cada 1000 unidades equiva lem a um centmetro. Ass im, este o padro adotado nadescrio das propriedades do E3, quando apl icvel .
2.8.3.1 Application
A propriedade Application retorna o objeto de aplicao relacionado aocontexto atual do objeto. Com o objeto Aplicao possvel, por exemplo, buscaroutros objetos presentes no aplicativo. Exemplo:
Sub Tela1_Click() ' Quando clica na tela, atribui um valor e abre um MessageBox set obj = Application.GetObject("Dados.TagInterno1") obj.Value = 100 MsgBox "Valor do TagInterno1: " & obj.ValueEnd Sub
2.8.3.2 Count
Retorna o nmero de objetos fi lhos (itens) que o objeto possui. Esta propriedadefunciona em conjunto com o mtodo Item. Se o objeto no possuir fi lhos, o valorretornado ser 0 (zero). Exemplo:
Sub Tela1_Click() ' Busca todos os objetos de tela ' e ajusta a propriedade ' ForegroundColor para vermelho Dim obj For i = 1 To Count Set obj = Item(i) ' Objeto filho obj.ForegroundColor = RGB(255, 0, 0) NextEnd Sub
Programando no E3 55
2.8.3.3 DocString
Texto l ivre que tem por objetivo possibil itar a documentao dasfuncionalidades ou caractersticas do objeto pelos programadores do projeto.Exemplo:
Sub CommandButton1_Click() Docstring = "Este boto ativa o condensador do sistema." MsgBox DocstringEnd Sub
2.8.3.4 Links
Retorna um objeto que uma coleo das conexes (ou Associaes) de umobjeto qualquer do E3. Esta propriedade acessvel apenas em tempo de execuo.Veja o item Coleo de Associaes para maiores informaes sobre a coleo deobjetos retornados por esta propriedade.
2.8.3.5 Name
Identifica cada um dos objetos presentes no sistema. Alterar esta propriedadeimplica em modificar todas as outras propriedades ou scripts que util izam esteobjeto. No aconselhvel a alterao desta propriedade em tempo de execuo.Exemplo:
Sub CommandButton9_Click() MsgBox "O nome da Tela " & (Screen.Name)End Sub
2.8.3.6 Parent
Retorna o objeto pai deste objeto. Sendo assim, se um objeto est inserido naTela, a propriedade Parent retorna "Tela". Da mesma forma, se um Tag Interno estinserido diretamente abaixo de um Servidor de Dados, a propriedade Parent do TagInterno apontar para o Servidor de Dados. Exemplo:
Sub Retangulo1_Click() ' Ao clicar no Retangulo1, ' troca a cor do Retangulo2 Parent.Item("Retangulo2").ForegroundColor = RGB(255, 0, 0)End Sub
2.8.3.7 PathContainer
Retorna uma String contendo o caminho do objeto que contm o objeto atual,incluindo as Pastas. Este valor determinado apenas no momento em que forrequisitado, por isso no recomendado criar Associaes para esta propriedade.
56 Programando no E3
2.8.3.8 PathName
Identifica o caminho do objeto na aplicao. Esta propriedade acessvel apenasem tempo de execuo. Exemplo:
Sub CommandButton9_Click() MsgBox "O caminho da Tela " & (Screen.PathName)End Sub
2.8.3.9 PathVolume
Retorna uma String contendo o nome do arquivo .prj ou .l ib que contm o objeto.No Studio, a propriedade retorna o caminho completo do projeto ou biblioteca (c:\folder\folder\volume.prj). Em tempo de execuo, os objetos que rodam no Viewerretornam sempre uma String vazia. J os que rodam no servidor retornam ocaminho relativo do projeto ou biblioteca, conforme ele esteja armazenado noDomnio (volume.prj). Este valor determinado apenas no momento em que forrequisitado, por isso no recomendado criar Associaes para esta propriedade.
2.8.4 Coleo de AssociaesEsta seo contm informaes sobre mtodos e propriedades comuns coleodas conexes (ou Associaes) de um objeto qualquer do E3, retornada pelapropriedade Links.
2.8.4.1 Mtodos Comuns
Esta seo contm informaes sobre os mtodos comuns coleo deAssociaes retornada pela propriedade Links.
2.8.4.1.1 CreateLink
CreateLink(Property, Source[, Type])
Este mtodo permite criar uma Associao com uma propriedade do objeto. Emcaso de sucesso, o mtodo retorna o objeto criado. Caso contrrio, ocorrer umerro de script e o mtodo retornar Nothing. O mtodo possui os seguintesparmetros:
Property: especifica o nome da propriedade para qual ser criada a Associao
Source: especifica o nome do objeto de origem da Associao
Type (opcional): especifica o tipo de Associao a ser criada. Quando esteparmetro for omitido, ser criada uma Associao Simples
Programando no E3 57
NOTA: Nem todas as propriedades exis tentes em um objeto permitem a criao deAssociaes . Para veri fi car quais as propriedades permitem este recurso, acesse aaba Associaes. Se a propriedade for inv l ida para a Associao, no exis ti r ou jpossuir uma Associao, ocorrer um erro de script.
Opes disponveis para o parmetro Type
OPO DESCRIO0 - Associao Simples Na Associao Simples , o va lor da
origem copiado para a propriedadetoda vez que ele for modi ficado.
1 - Associao Bidirecional Na Associao Bidi recional ocorre omesmo que na Simples ; porm, casohaja uma variao na propriedade, seuvalor ser copiado para a origem,gerando ass im uma Associao de duasdirees .
2 - Associao Analgica A Associao Analgica estabelece umaesca la de converses entre a varivel deorigem e a propriedade.
3 - Associao Digital Na Associao Digi ta l , so especi ficadosva lores fixos ou a l ternantes para apropriedade, que so atribudos deacordo com a fonte ser verdadeira oufa lsa .
4 - Associao por Tabela Na Associao por Tabela , pode-seestabelecer condies entre a varivel ,os va lores e o destino. Na tabela soespeci ficados os va lores mnimos emximos e demais configuraes .
5 - Associao Reversa A Associao Reversa uma Associaounidi recional da propriedade para afonte.
6 - Associao Mltipla A Associao Mltipla semelhante auma Associao por Tabela , exceto quecada l inha da Associao permite buscarseu va lor de uma fonte di ferente.
Exemplo:Sub CommandButton1_Click() On Error Resume Next Dim Bind Set Bind = Screen.Item("Texto1").Links.Item("Value") If Bind Is Nothing Then MsgBox "Texto1 no est associado a nenhum objeto." Dim Source Source = "Dados.TagInterno1.Value" MsgBox "Criando uma conexo em '" & Source & "'."
58 Programando no E3
Set Bind = Screen.Item("Texto1").Links._ CreateLink("Value", Source, 0) Bind.BiDirectional = Screen.Item("BiDirectional").Value Bind.Reverse = Screen.Item("Reverse").Value MsgBox "Tipo: " & TypeName(Bind) Else MsgBox "Texto1 j est ligado " & Bind.Source & "." End IfEnd Sub
2.8.4.1.2 Item
Item(Property, Index)
Este mtodo retorna um objeto Associao de uma determinada propriedade de umobjeto. Se for um texto, Property especifica o nome da propriedade cuja Associaodeseja-se acessar. A Associao tambm pode ser acessada numericamente pelondice Index. Este ndice deve ser de 1 at Count. Caso no exista Associao com apropriedade, ou o ndice seja invlido, ocorrer um erro de script. Como as demaiscolees, Links permite o uso do comando For Each do VBScript. Exemplo:
Sub Texto1_Click() For Each Link In Links MsgBox "Origem do link: " & Link.Source NextEnd Sub
2.8.4.1.3 RemoveLink
RemoveLink(Property)
Este mtodo remove uma Associao com a propriedade especificada por Property,caso ela exista. Caso no exista Associao com a propriedade especificada, omtodo no tem efeito. Exemplo:
Sub CommandButton2_Click() On Error Resume Next Dim Bind Set Bind = Screen.Item("ScrollBar1").Links.Item("Value") If Bind Is Nothing Then ' Se a conexo no existe MsgBox "ScrollBar1 no est conectado." Else MsgBox "ScrollBar1 est ligado " & Bind.Source & "." MsgBox "Removendo o link." Screen.Item("ScrollBar1").Links.RemoveLink("Value") End IfEnd Sub
Programando no E3 59
2.8.4.2 Propriedades Comuns
Esta seo contm informaes sobre as propriedades comuns coleo deAssociaes retornada pela propriedade Links.
2.8.4.2.1 Count
Retorna o nmero de objetos fi lhos (itens) de uma coleo de Associaes. Estapropriedade trabalha em conjunto com o mtodo Item. Se a coleo no possuiobjetos fi lhos, o valor retornado 0 (zero).
2.8.4.3 Associaes
Esta seo contm informaes sobre os objetos do tipo Associao contidos nacoleo de Associaes retornada pela propriedade Links. Os tipos de Associaesdisponveis so os seguintes:
Simples
Bidirecional
Analgica
Digital
Tabela
Reversa
Mltipla
2.8.4.3.1 Propriedades Comuns
Esta seo contm informaes sobre as propriedades comuns aos objetoscontidos na coleo de Associaes retornada pela propriedade Links.
2.8.4.3.1.1 Property
Especifica o nome da propriedade que est conectada. Ao ser modificada,permite deslocar a Associao para outra propriedade do mesmo objeto. Exemplo:
Sub CommandButton1_Click() Dim bind Set bind = Screen.Item("TableBind").Links.Item(1) bind.Property = "Caption"End Sub
60 Programando no E3
2.8.4.3.1.2 Source
Especifica a fonte da Associao, que pode ser o nome de outro objeto daaplicao ou uma expresso mais complexa, acessando vrios objetos. Exemplo:
Sub CommandButton25_Click() Dim bind Set bind = Screen.Item("TableBind").Links.Item(1) bind.Source = "Dados.TagDemo1.Value"End Sub
2.8.4.3.1.3 Type
Esta propriedade apenas para leitura e informa o tipo de Associao. Osvalores disponveis so os seguintes:
Opes disponveis para Type
OPO DESCRIO0 - bsSimple Associao Simples.1 - bsSimpleBiDir Associao Bidirecional.2 - bsAnalog Associao Analgica.3 - bsAnimation Associao Digital.4 - bsTable Associao por Tabela.5 - bsReverse Associao Reversa.6 - bsMultiSource Associao Mltipla.
2.8.4.3.2 Associao Simples
O objeto Associao Simples no tem eventos, mtodos ou propriedadesassociadas.
2.8.4.3.3 Associao Bidirecional
Esta seo contm informaes sobre propriedades do objeto AssociaoBidirecional. Este objeto no possui eventos nem mtodos associados.
2.8.4.3.3.1 Propriedades
Esta seo contm informaes sobre as propriedades do objeto AssociaoBidirecional.
BiDirectional
True se a Associao for Bidirecional. False se a Associao for Reversa ouSimples.
Programando no E3 61
2.8.4.3.4 Associao Analgica
Esta seo contm informaes sobre propriedades do objeto AssociaoAnalgica. Este objeto no possui eventos nem mtodos associados.
2.8.4.3.4.1 Propriedades
Esta seo contm informaes sobre as propriedades da Associao Analgica.
DstHiValue
Especifica o valor mximo atingido na propriedade. Exemplo:Sub DstHiValue_ValueChange() On Error Resume Next Dim Bind Set Bind = Screen.Item("ScrollBar1").Links.Item("Value") Screen.Item("ScrollBar1").Max = Value If Bind Is Nothing Then MsgBox "ScrollBar1 no tem associao." Else MsgBox "ScrollBar1 est associado a '" & Bind.Source & "'" MsgBox "Mudando DstHiValue de " &_ Bind.DstHiValue & " para " & Value Bind.DstHiValue = Value End IfEnd Sub
DstLoValue
Especifica o valor mnimo atingido na propriedade. Exemplo:Sub DstLoValue_ValueChange() On Error Resume Next Dim Bind Set Bind = Screen.Item("ScrollBar1").Links.Item("Value") Screen.Item("ScrollBar1").Min = Value If Bind Is Nothing Then MsgBox "ScrollBar1 no tem associao." Else MsgBox "ScrollBar1 est associado a '" & Bind.Source & "'" MsgBox "Mudando DstLoValue de " &_ Bind.DstLoValue & " para " & Value Bind.DstLoValue = Value End IfEnd Sub
SrcHiValue
Especifica o valor mximo atingido na fonte. Exemplo:Sub SrcHiValue_ValueChange() On Error Resume Next
62 Programando no E3
Dim Bind Set Bind = Screen.Item("ScrollBar1").Links.Item("Value") Screen.Item("ScrollBar2").Max = Value If Bind Is Nothing Then MsgBox "ScrollBar1 no tem associado." Else MsgBox "ScrollBar1 est associado a '" & Bind.Source & "'" MsgBox "Mudando SrcHiValue de " &_ Bind.SrcHiValue & " para " & Value Bind.SrcHiValue = Value End IfEnd Sub
SrcLoValue
Especifica o valor mnimo atingido na fonte. Exemplo:Sub SrcLoValue_ValueChange() On Error Resume Next Dim Bind Set Bind = Screen.Item("ScrollBar1").Links.Item("Value") Screen.Item("ScrollBar2").Min = Value If Bind Is Nothing Then MsgBox "ScrollBar1 no tem associado." Else MsgBox "ScrollBar1 est associado a '" & Bind.Source & "'" MsgBox "Mudando SrcLoValue de " &_ Bind.SrcLoValue & " para " & Value Bind.SrcLoValue = Value End IfEnd Sub
NOTA: Caso os va lores especi ficados para as propriedades SrcHiValue e SrcLoValuesejam iguais , no poss vel fazer a esca la , e a Associao funcionar como sefosse uma Associao Simples .
2.8.4.3.5 Associao Digital
Esta seo contm informaes sobre propriedades do objeto Associao Digital.Este objeto no possui eventos nem mtodos associados.
2.8.4.3.5.1 Propriedades
Esta seo contm informaes sobre as propriedades da Associao Digital.
BlinkOff
Quando esta propriedade estiver configurada para True, a propriedadeconectada ir alternar periodicamente entre os valores das propriedades OffValuee BlinkOffValue, caso a fonte retorne False. Exemplo:
Sub BlinkOff_Change()
Programando no E3 63
On Error Resume Next Dim Bind Set Bind = Screen.Item("Retangulo1")._ Links.Item("ForegroundColor") If Bind Is Nothing Then MsgBox "Retangulo1 no tem associao." Else MsgBox "Retangulo1 est associado a '" & Bind.Source & "'" MsgBox "Mudando BlinkOff de " & _ Bind.BlinkOff & " para " & Value Bind.BlinkOff = Value End IfEnd Sub
BlinkOffValue
Especifica o valor alternativo a ser assumido periodicamente pela propriedadequando a expresso da fonte resultar em False, e a propriedade BlinkOff estiverconfigurada em True. Exemplo:
Sub BlinkOffValue_Click() On Error Resume Next Dim Value If Application.ShowPickColor_ (Value, ForegroundColor, 400, 300) Then Dim Bind Set Bind = Screen.Item("Retangulo1").Links._ Item("ForegroundColor") If Bind Is Nothing Then MsgBox "Retangulo1 no tem associao." Else MsgBox "Retangulo1 est associado a '"& Bind.Source & "'" MsgBox "Mudando BlinkOffValue de " &_ Bind.BlinkOffValue & " para " & Value Bind.BlinkOffValue = Value End If ForegroundColor = Value End IfEnd Sub
BlinkOn
Quando esta propriedade estiver configurada para True, a propriedadeconectada ir alternar periodicamente entre os valores das propriedades OnValuee BlinkOnValue, caso a fonte retorne True. Exemplo:
Sub BlinkOn_Change() On Error Resume Next Dim Bind Set Bind =_ Screen.Item("Retangulo1").Links.Item("ForegroundColor") If Bind Is Nothing Then MsgBox "Retangulo1 no tem associao." Else
64 Programando no E3
MsgBox "Retangulo1 est associado a '" & Bind.Source & "'" MsgBox "Mudando BlinkOn de " & Bind._ BlinkOn & " para " & Value Bind.BlinkOn = Value End IfEnd Sub
BlinkOnValue
Especifica o valor alternativo a ser assumido periodicamente pela propriedadequando a expresso da fonte resultar em True e a propriedade BlinkOn estiverconfigurada para True. Exemplo:
Sub BlinkOnValue_Click() On Error Resume Next Dim Value If Application.ShowPickColor_ (Value, ForegroundColor, 400, 300) Then Dim Bind Set Bind = Screen.Item("Retangulo1").Links._ Item("ForegroundColor") If Bind Is Nothing Then MsgBox "Retangulo1 no tem associao." Else MsgBox "Retangulo1 est associado a '"& Bind.Source & "'" MsgBox "Mudando BlinkOnValue de " &_ Bind.BlinkOnValue & " para " & Value Bind.BlinkOnValue = Value End If ForegroundColor = Value End IfEnd Sub
OffValue
Especifica o valor assumido pela propriedade quando a expresso da fonteresultar em False. Exemplo:
Sub OffValue_Click() On Error Resume Next Dim Value If Application.ShowPickColor_ (Value, ForegroundColor, 400, 300) Then Dim Bind Set Bind = Screen.Item("Retangulo1").Links._ Item("ForegroundColor") If Bind Is Nothing Then MsgBox "Retangulo1 no tem associao." Else MsgBox "Retangulo1 est associado a '"& Bind.Source & "'" MsgBox "Mudando OffValue de " &_ Bind.OffValue & " para " & Value Bind.OffValue = Value End If
Programando no E3 65
ForegroundColor = Value End IfEnd Sub
OnValue
Especifica o valor assumido pela propriedade quando a expresso da fonte forTrue. Exemplo:
Sub OnValue_Click() On Error Resume Next Dim Value If Application.ShowPickColor_ (Value, ForegroundColor, 400, 300) Then Dim Bind Set Bind = Screen.Item("Retangulo1").Links._ Item("ForegroundColor") If Bind Is Nothing Then MsgBox "Retangulo1 no tem associao." Else MsgBox "Retangulo1 est associado a '"& Bind.Source & "'" MsgBox "Mudando OnValue de " &_ Bind.OnValue & " para " & Value Bind.OnValue = Value End If ForegroundColor = Value End IfEnd Sub
2.8.4.3.6 Associao por Tabela
Esta seo contm informaes sobre mtodos e propriedades do objetoAssociao por Tabela. Este objeto no possui eventos associados.
2.8.4.3.6.1 Mtodos
Esta seo contm informaes sobre os mtodos do objeto Associao por Tabela.
InsertRow
InsertRow([Row])
Insere uma nova l inha na tabela. O parmetro Row opcional e especifica em queposio da tabela deve ser inserida a l inha. Quando omitido, assume ocomportamento padro de inserir a l inha no fim da tabela, o que equivale a usar Row igual a -1. Quando informado e no for -1, deve ser um valor entre 1 e Count, ea nova l inha criada desloca as l inhas de ndice maior ou igual para a direoascendente dos ndices. Uma linha nova sempre assume os seguintes valorespadro para as propriedades:
Min: 0.0
66 Programando no E3
Max: 1.0
Blink: False
BlinkValue: 0.0
Value: 0.0
Exemplo:Sub Retangulo1_Click() On Error Resume Next Dim Bind Set Bind = _ Screen.Item("Retangulo1").Links.Item("ForegroundColor") If Bind Is Nothing Then MsgBox "Retangulo1 no tem nenhuma associao." Else Dim row row = Screen.Item("SetPointRow").Value MsgBox Bind.RowCount If (row < 1 OR row > Bind.RowCount) Then MsgBox "Nmero de linha invlido: " & row Else MsgBox "Acrescentando uma linha em: " & row Bind.InsertRow(row) If row = -1 Then row = Bind.RowCount Bind.Value(line) = _ Screen.Item("RectangleValue").ForegroundColor Bind.BlinkValue(line) = _ Screen.Item("RectangleBlinkValue").ForegroundColor Bind.Max(line) = Screen.Item("SetPointMax").Value Bind.Min(line) = Screen.Item("SetPointMin").Value Bind.Blink(line) = _ Screen.Item("CheckBoxBlink").Value End If End If End IfEnd Sub
Item
Item(ItemId)
Retorna uma referncia para o objeto Linha da Conexo por Tabela, indicado por ItemId.
RemoveRow
RemoveRow(Row)
Remove a l inha no ndice especificado. O parmetro Row determina a l inha da
Programando no E3 67
tabela a ser removida (deve ser de 1 at Count). Exemplo:Sub RemoveRow_Click() On Error Resume Next Dim Bind Set Bind =_ Screen.Item("Retangulo1").Links.Item("ForegroundColor") If Bind Is Nothing Then MsgBox "Retangulo1 no tem associao!" Else MsgBox "Retangulo1 est ligado '" & Bind.Source & "'" Dim row row = Screen.Item("Row").Value MsgBox "Removendo a linha " & row Bind.RemoveRow row End IfEnd Sub
2.8.4.3.6.2 Propriedades
Esta seo contm informaes sobre as propriedades do objeto Associao porTabela.
Count
A propriedade Count informa o nmero de l inhas da tabela. Esta propriedade somente de leitura.
2.8.4.3.6.3 Linha da Associao por Tabela
Esta seo contm informaes sobre propriedades do objeto Linha da Associaopor Tabela. Este objeto no possui eventos nem mtodos associados.
Propriedades
Esta seo contm informaes sobre as propriedades do objeto Linha daAssociao por Tabela.
Blink
Determina que quando a fonte estiver no intervalo desta Linha, a propriedade iralternar periodicamente entre os valores especificados nas propriedades Value eBlinkValue. Exemplo:
Sub CheckBox1_Click() Screen.Item("Retangulo1").Links.Item("ForegroundColor")._ Item(1).Blink = Value Screen.Item("Retangulo1").Links.Item("ForegroundColor")._ Item(2).Blink = ValueEnd Sub
68 Programando no E3
BlinkValue
Especifica o valor alternativo (para piscar) da propriedade a ser assumidoquando a fonte estiver no intervalo especificado na Linha, e a propriedade Blinkestiver configurada para True. Exemplo:
Sub CommandButton1_Click() Dim Cor ' Escolhe uma cor Application.ShowPickColor Cor, 0, 100, 100 Screen.Item("Retangulo1").Links.Item("ForegroundColor")._ Item(1).BlinkValue = CorEnd Sub
Max
Especifica o valor mximo da fonte para uma Linha da Tabela.
Min
Especifica o valor mnimo da fonte para uma Linha da Tabela. Exemplo (para Maxe Min):
Sub CommandButton1_Click() Set Bind = _ Screen.Item("Retangulo1").Links.Item("ForegroundColor") Set Linha1 = Bind.Item(1) Linha1.Min = 0 Linha1.Max = 20 Set Linha2 = Bind.Item(2) Linha2.Min = 21 Linha2.Max = 100End Sub
Value
Especifica o valor da propriedade a ser assumido quando a fonte estiver nointervalo especificado na Linha. Exemplo:
Sub CommandButton1_Click() Dim Cor ' Escolhe uma cor Application.ShowPickColor Cor, 0, 100, 100 Screen.Item("Retangulo1").Links.Item("ForegroundColor")._ Item(1).Value = CorEnd Sub
2.8.4.3.7 Associao Reversa
Esta seo contm informaes sobre propriedades do objeto Associao Reversa.Este objeto no possui eventos nem mtodos associados.
Programando no E3 69
2.8.4.3.7.1 Propriedades
Esta seo contm informaes sobre as propriedades do objeto AssociaoReversa.
Reverse
True se a Associao for Reversa. False se a Associao for Bidirecional ouSimples.
2.8.4.3.8 Associao Mltipla
Esta seo contm informaes sobre mtodos e propriedades do objetoAssociao Mltipla. Este objeto no possui eventos associados.
2.8.4.3.8.1 Mtodos
Esta seo contm informaes sobre os mtodos do objeto Associao Mltipla.
InsertRow
InsertRow(InsertAtRow)
Insere uma nova Linha na tabela de Associaes Mltiplas.
Item
Item(ItemId)
Retorna uma referncia para o objeto Linha da Conexo Mltipla, indicado por ItemId.
RemoveRow
RemoveRow(Row)
Remove a Linha no ndice indicado pelo parmetro Row.
2.8.4.3.8.2 Propriedades
Esta seo contm informaes sobre as propriedades do objeto AssociaoMltipla.
AdviseAll
Esta propriedade mantm todas as Associaes da tabela de AssociaesMltiplas em modo Advise (ativas). O valor padro desta propriedade Verdadeiro.Para aplicaes criadas em verses anteriores, esta propriedade tem o valor Falso,por compatibil idade.
70 Programando no E3
Count
Esta propriedade retorna o nmero de Linhas da tabela de Associaes Mltiplas.