O ActiveX RMChart pode ser usado no E3 para visualização gráfica de dados. Além disso, é ideal para apresentar informações estatísticas, já que elas são carregadas no banco de dados e não é necessário mostrá-las em tempo real.
RMCDesigner
O RMCDesigner é um software que auxilia a criação e desenvolvimento de um arquivo modelo (extensão .rmc) que contém as configurações iniciais do gráfico. Embora seja possível criar esta estrutura totalmente via scripts, o RMCDesigner traz a vantagem de ter uma interface gráfica mais amigável, facilitando o trabalho e proporcionando a visualização instantânea dos efeitos aplicados.
Após a configuração do arquivo RMC, você terá um modelo de estrutura do gráfico que poderá ser utilizado em conjunto com o ActiveX no E3. Para isso, o RMCDesigner oferece uma ferramenta que fará a extração do código necessário. Essa ferramenta está acessível através do menu File – Get Source.
A linguagem utilizada nos scripts do E3 é VBScript. A opção de linguagem ASP do RMCDesigner possui sintaxe compatível com o VBScript. Dessa forma, iremos utilizar a configuração abaixo para extrair o código que desejamos.
Após clicar em Ok, o código será copiado para a Área de Transferência.
Integração do RMChart com o E3
No E3, insira um objeto RMChart em uma tela clicando com botão direito e selecionando a opção Inserir – RMChartX. No evento OnPreShow da tela, crie um pick Script e cole o código obtido no RMCDesigner.
Na figura abaixo, é mostrado o código gerado anteriormente com as respectivas propriedades configuradas. Como é possível ver, o comando With precisa que a variável RMChartX1 contenha um objeto RMChart.
Portanto, antes da linha With RMChartX1, insira a definição da variável recebendo o objeto RMChart que está na tela. Utilize o AppBrowser para localizá-lo. Além disso, execute o método Clear() para evitar que dados antigos sejam carregados no ActiveX quando a aplicação for executada ou enquanto estiver executando. Exemplo:
set RMChartX1 = Item("RMChartX1")
RMChartX1.Clear()
Agora, sempre que a tela for aberta, este script será executado definindo a configuração inicial do gráfico.
Carregando os dados no ActiveX
No RMChart, cada série (conjunto de dados) possui a propriedade Datastring, que contém os valores a serem desenhados. Esta propriedade exige que os valores estejam separados por asteriscos (“15*39*21*17”). Assim, se você possuir um gráfico de barras, cada valor representará uma barra. Seguindo nosso exemplo acima, teremos:
Vamos supor que desejamos apresentar nesse gráfico de barras a quantidade total de alarmes históricos por área. Para isso, precisamos criar uma consulta que retorne esta informação. Ao configurar uma consulta, vá à aba SQL e habilite a opção Habilita a edição direta do SQL. O seguinte código deve ser digitado:
SELECT Area, Count(ConditionActive) as TotalAlarmesAtivos
FROM Alarms
WHERE ConditionActive = 1
GROUP BY Area
Digamos que o resultado dessa consulta seja:
Área
TotalAlarmesAtivos
AreaTanque1
590
AreaTanque2
630
AreaTanque3
740
Na tela que contém o objeto RMChart, colocaremos o seguinte script:
Como visto na imagem, é necessário criar uma variável que receba o objeto RMChart (nesse exemplo, o RMChartX1) e executar a consulta citada anteriormente utilizando o método GetADORecordset(). Dessa forma, o resultado da consulta será manipulado via script.
Um laço While será executado até o último registro do Recordset, concatenando os valores retornados de acordo com a sintaxe da propriedade DataString do RMChart (“590*630*740”). Por último, o método Draw() fará o desenho do gráfico.
Conclusão
Uma vez configurado o modelo e extraído o código através do RMCDesigner, a tarefa restante será inteiramente no E3, criando e configurando as consultas, e depois manipulando os seus resultados via Recordset. Assim, será montada a String de dados para ser passada para o objeto RMChart.
O RMChart é uma ótima ferramenta para visualizar gráficos estatísticos ou históricos. Com sua ferramenta de auxílio para criação do modelo, o trabalho se torna mais fácil e a aplicação fica mais atrativa para o usuário.
Obs.:
O RMCDesigner não é instalado juntamente ao E3. Este software e seus componentes podem ser encontrados para download na internet ou anexado neste artigo.
Em anexo, aplicação exemplo usando o RMChart desenvolvida com o E3 3.2 build 248.
Referências
– Guia de Referência do VBScript
– Guia do RMChart
Desde a versão 3.0 do Elipse E3, o OCX e a DLL do RMChart são instalados juntamente com o E3 e registrados na pasta System32.
Se por algum motivo o objeto não aparecer na opção de inserir, basta selecionar o RMChart na janela de gerenciamento de controles ActiveX do E3 (Ferramentas – Gerenciar ActiveX…) e clicar no botão ‘registrar’.
Outro detalhe, você está utilizando o Studio 64bits? O RMChart não é compatível com a versão 64, utilize o Studio 32 bits.
Bom dia. Tem como gerar uma imagem deste gráfico e enviar por email através de um TagTimer?
Boa tarde Pedro,
Primeiramente você deve gerar a imagem através da função Draw2File() do ActiveX.
Em seguida utilize o driver SendMail para enviar a imagem salva anteriormente como anexo.
Utilizando um tag com N1=4, na escrita, basta especifica o caminho (completo ou relativo) de um arquivo para ser enviado como anexo.
no meu elipse versão não tem
Boa tarde Robinson,
Desde a versão 3.0 do Elipse E3, o OCX e a DLL do RMChart são instalados juntamente com o E3 e registrados na pasta System32.
Se por algum motivo o objeto não aparecer na opção de inserir, basta selecionar o RMChart na janela de gerenciamento de controles ActiveX do E3 (Ferramentas – Gerenciar ActiveX…) e clicar no botão ‘registrar’.
Outro detalhe, você está utilizando o Studio 64bits? O RMChart não é compatível com a versão 64, utilize o Studio 32 bits.
Bom dia. Tem como gerar uma imagem deste gráfico e enviar por email através de um TagTimer?
Boa tarde Pedro,
Primeiramente você deve gerar a imagem através da função Draw2File() do ActiveX.
Em seguida utilize o driver SendMail para enviar a imagem salva anteriormente como anexo.
Utilizando um tag com N1=4, na escrita, basta especifica o caminho (completo ou relativo) de um arquivo para ser enviado como anexo.
Para mais informações, verifique os artigos abaixo:
1. KB-30035: Imprimindo um objeto RMChart.
2. Aplicação exemplo: Enviando e-mail no E3 através do driver Elipse Sendmail.
Com base nessas informações, você pode adaptar o script de envio do e-mail no evento OnPreset do TagTimer.