Boa tarde,
Estou com problema de lentidão na minha aplicação toda vez que abro a janela de objeto que contem o E3Chart. Uma das penas demora muito a carregar conforme pode ser visto na imagem anexada, alguem tem alguma ideia de como otimizar??
Boa tarde,
Estou com problema de lentidão na minha aplicação toda vez que abro a janela de objeto que contem o E3Chart. Uma das penas demora muito a carregar conforme pode ser visto na imagem anexada, alguem tem alguma ideia de como otimizar??
Qual a query sendo executada?
Select conforme o script abaixo
Sub CommandButton8_Click()
'Tamanho da tela que sera aberta
sTamTelaX = 25780
sTamTelaY = 14526
'Posicao da tela
MonitorX = 1920 / 2
TelaX = ((sTamTelaX * 96) / 2540) / 2
If pos <= 1920 Then
PosX = MonitorX - TelaX
Else
PosX = (MonitorX - TelaX) + 1920
End If
MonitorY = 1080 / 2
TelaY = ((sTamTelaY * 96) / 2540) / 2
PosY = MonitorY - TelaY
'Tamanho da tela
TamX = (sTamTelaX * 96) / 2540
TamY = (sTamTelaY * 96) / 2540
Application.GetFrame(“Virtual”).MoveFrame PosX, PosY, TamX + 16, TamY + 16 + 22
Application.GetFrame(“Virtual”).BringToFront()
set chart = xcFpAnl.Item(“E3Chart1”)
'Busca datas para consulta no banco
DataInicial = xcFpAnl.Item(“spDataInicial”).Value
DataFinal = xcFpAnl.Item(“spDataFinal”).Value
'Add Query
set query = chart.Item(“Consulta1”)
campo = xcFpAnl.Fonte.Name & "_ValorEA, " & xcFpAnl.Fonte.Name & "_HiHi, " & xcFpAnl.Fonte.Name & "_Hi, " & xcFpAnl.Fonte.Name & "_Lo, " & xcFpAnl.Fonte.Name & "_LoLo "
query.SQL = “SELECT E3TimeStamp, " & campo & " FROM tabHistoricoAnalogicas” & xcFpAnl.Fonte.sArea & " WHERE E3TimeStamp >= #<%DataInicial%># And E3TimeStamp <= #<%DataFinal%># ORDER BY E3TimeStamp ASC"
'Seta os parâmetros de DataInicial e DataFinal da Consulta
query.SetVariableValue “DataInicial”, CDate(DataInicial)
query.SetVariableValue “DataFinal”, CDate(DataFinal)
'Configura pena
set pen1 = xcFpAnl.Item(“E3Chart1”).Pens.Item(“PV”)
pen1.AutoQuery = True
pen1.MaxGapTime = 300
pen1.ShowBadPoints = true
pen1.PenType = 0
pen1.Width = 3
pen1.Color = RGB(255, 0, 0)
pen1.DataSourceType = 2
pen1.QueryName = xcFpAnl.Item(“E3Chart1”).Item(“Consulta1”).Name
pen1.UseTimeStamp = true
pen1.XField = “E3TimeStamp”
pen1.YField = xcFpAnl.Fonte.Name & “_PV”
pen1.Connect()
'Configura pena
set pen2 = xcFpAnl.Item(“E3Chart1”).Pens.Item(“HiHi”)
pen2.AutoQuery = True
pen2.MaxGapTime = 300
pen2.ShowBadPoints = true
pen2.PenType = 0
pen2.Width = 1
pen2.Color = RGB(255, 255, 0)
pen2.DataSourceType = 2
pen2.QueryName = xcFpAnl.Item(“E3Chart1”).Item(“Consulta1”).Name
pen2.UseTimeStamp = true
pen2.XField = “E3TimeStamp”
pen2.YField = xcFpAnl.Fonte.Name & “_HiHi”
pen2.Connect()
'Configura pena
set pen3 = xcFpAnl.Item(“E3Chart1”).Pens.Item(“Hi”)
pen3.AutoQuery = True
pen3.MaxGapTime = 300
pen3.ShowBadPoints = true
pen3.PenType = 0
pen3.Width = 1
pen3.Color = RGB(255, 255, 0)
pen3.DataSourceType = 2
pen3.QueryName = xcFpAnl.Item(“E3Chart1”).Item(“Consulta1”).Name
pen3.UseTimeStamp = true
pen3.XField = “E3TimeStamp”
pen3.YField = xcFpAnl.Fonte.Name & “_Hi”
pen3.Connect()
'Configura pena
set pen4 = xcFpAnl.Item(“E3Chart1”).Pens.Item(“Lo”)
pen4.AutoQuery = True
pen4.MaxGapTime = 300
pen4.ShowBadPoints = true
pen4.PenType = 0
pen4.Width = 1
pen4.Color = RGB(255, 255, 0)
pen4.DataSourceType = 2
pen4.QueryName = xcFpAnl.Item(“E3Chart1”).Item(“Consulta1”).Name
pen4.UseTimeStamp = true
pen4.XField = “E3TimeStamp”
pen4.YField = xcFpAnl.Fonte.Name & “_Lo”
pen4.Connect()
'Configura pena
set pen5 = xcFpAnl.Item(“E3Chart1”).Pens.Item(“LoLo”)
pen5.AutoQuery = True
pen5.MaxGapTime = 300
pen5.ShowBadPoints = true
pen5.PenType = 0
pen5.Width = 1
pen5.Color = RGB(255, 255, 0)
pen5.DataSourceType = 2
pen5.QueryName = xcFpAnl.Item(“E3Chart1”).Item(“Consulta1”).Name
pen5.UseTimeStamp = true
pen5.XField = “E3TimeStamp”
pen5.YField = xcFpAnl.Fonte.Name & “_LoLo”
pen5.Connect()
'Carrega os dados
chart.Axes.HorAxis.SetRealTimePeriod 600, 0
chart.Queries.UpdateData()
'chart.FitAll()
End Sub
O Script em questão atrelado ao evento “click” para garantir que a consulta so ira ser feita no momento que o botão Historico for clicado
xcFpAnl é a Xcontrol da minha janela de analogica
Entendo, mas a julgar pela linha:
Entendo que sua Query não esteja sendo criada programaticamente, mas sim exista desde o momento que a tela é aberta. Qual a query inicial do E3Chart1 > Consulta1
?
Caso você queira efetivamente criar uma consulta, o método seria o AddQuery.
' Add Query
Dim query
Set query = chart.Queries.AddQuery("Consulta1")
E, eventualmente, você pode querer removê-la no OnPreShow ou OnHide da tela com o método Remove.
[RESOLVIDO]
de alguma maneira quando compactei o banco de dados o scirpt passou a funcionar normalmente