Echart e Consulta1

Boa tarde

Eu quero fazer com o o E3Chart mostre o retorno da Consulta1. Contudo não está mostrando direito, pois são três valores e aparece somente um.

Consulta1:

Alteração do E3Chart ao abrir a tela:
Sub TelaElevatoriaMaior_OnPreShow(Arg)
'Passa para a tela o nome e rua da elevatória
Item(“txtNome”).Value = Arg.nome
Item(“txtRua”).Value = Arg.rua
if Arg.nome = “” Then
Msgbox “Não foi passado uma elevatória para o sistema!”
Exit Sub
end if
indent preformatted text by 4 spaces
On Error Resume Next

set browser = Item("E3Browser1")
	browser.Item("Consulta1").SetVariableValue "ponto" , Arg.nome
	browser.Item("Consulta1").SetVariableValue "data" , "28/06/2018"
	
	browser.RetrieveE3QueryFields()
	browser.Fields.Item("E3TimeStamp").Width = 150
	browser.Fields.Item("NIVEL").Width = 150
	
set chart = Item("E3Chart1")
	chart.Item("Consulta1").SetVariableValue "ponto" , Arg.nome
	chart.Item("Consulta1").SetVariableValue "data" , "28/06/2018"
	
If Err.Number <> 5 then
	browser.Requery()
	chart.Item("Consulta1").Execute()
else
	msgbox "Ocorreu algum erro na hora de buscar os dados!"
end if
End Sub

Penas:

A Tela com o E3Chart:

@wagner.dracha, boa tarde.

Teria como disponibilizar o retorno dentro da Consulta?

O Browser faz a mesma Consulta?

Sds.

O E3Browser faz sim, mas ele pega outra consulta diferente do E3Chart.

o Sql do E3Chart retorna:

Bom, o que está acontecendo é que uma pena está se sobrepondo a outra. Se passar uma das penas para invisível, verificará que a outra está por baixo e assim por diante.

Pergunta: O que está fazendo é realmente necessário, uma vez que eles têm o mesmo valor?

Sds.

Bem, agora que eu percebi que estou com o SQL incorreto, pois os valores da elevatória anterior e posterior são diferentes, mas enfim. O real problema não é esse.

Como eu coloquei a Pena do E3Chart para Histórico e Tempo, ele não fica atualizando os valores no gráfico. Parece que quando eu abro a tela do gráfico, ele pega os valores, mas ao atualizar (1s) ele não busca mais valores, até ficar zerado.

Início:

Fim:

Porque ele não continua pegando os dados do banco?

O conceito de real e histórico significa que terá uma tag conectada e complementando a pena.
Acredito que no seu caso deveria tratar-se de penas Históricas apenas. Como o eixo horizontal está atualmente configurado (histórico ou real)? Após realizar a consulta, está atualizando o eixo horizontal também?

Bom dia @Fernando, eu mudei e coloquei somente para Histórico e continua no mesma situação.

Agora está Histórico somente.

A hora que realiza a consulta, ele faz um SQL trazendo todas as informações do dia:
SELECT E3TimeStamp, NIVEL FROM <%ponto%> WHERE E3TimeStamp >= #<%data%># ORDER BY E3TimeStamp ASC

Segue a configuração das penas alteradas para somete histórico:

@wagner.dracha, boa tarde.

O que falta é passar para a escala horizontal o valor de tempo.

Exemplo (utilizando parte do script acima):

set chart = Item(“E3Chart1”)
chart.Item(“Consulta1”).SetVariableValue “ponto” , Arg.nome
chart.Item(“Consulta1”).SetVariableValue “data” , Now

chart.HorScaleEnd = Now

Sds.

Não adiantou Fernando.

Tem alguma coisa com eu estar inserindo os valores no OnPreShow da Tela?

Qual é o teu script de atualização?

Além deste script que eu mandei, precisa ter outro de atualização? O E3Chart não atualiza automático?

@wagner.dracha,

Não entendi então esta parte:

Abrir a página é o momento zero. Depois é necessário atualizar, mas quando é realizada a próxima pesquisa?

Quando tem uma pena Real, irá trazer apenas os valores instantâneos de uma tag + o buffer.

Quando tem uma pena Histórica, só irá mostrar o que foi pesquisado.

Quando tem uma pena Real e Histórica, os valores mostram os dados da consulta pesquisada + os “reais”.

Então, o que você precisa nesse caso, já que a atualização virá da Consulta, é alguma forma de renovar os valores no E3Chart e adaptar a escala horizontal dependendo deste valor.

Exemplo (adaptar à tua aplicação):

Sub CommandButton14_Click()
Set qr = Screen.Item(“E3Chart1”).Item(“Consulta1”)
qr.SetVariableValue “DataInicial”, Screen.Item(“spDataInicial2”).Value
qr.SetVariableValue “DataFinal”, Screen.Item(“spDataFinal2”).Value

Screen.Item(“E3Chart1”).HorScaleBegin = Screen.Item(“spDataInicial2”).Value
Screen.Item(“E3Chart1”).HorScaleEnd = Screen.Item(“spDataFinal2”).Value
End Sub

Sim e não. Sim, ele atualiza o eixo horizontal se você utilizar a escala de tempo real. Entretanto ele não atualiza os dados, apenas a escala (precisa de um gatilho).

Sds.

2 Likes

Mudei a tática @Fernando, eu criei três tags, e no OnPreShow da tela, eu pego os valores do Driver e transfiro para o E3Chart.

Funcionou de boa!!

Obrigado