e3scripts_ptb.pdf

download e3scripts_ptb.pdf

of 489

Transcript of e3scripts_ptb.pdf

  • 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.