Visualização Gráfico no Relatório sem E3Chart na tela

Bom dia!

Estou com o seguinte problema, tenho um relatório de OEE do sistema, está separado por equipamento, e necessito colocar o gráfico da análise no relatório, porém, esse gráfico não existe em nenhum divisor do viewer. Vi que existe um kb demonstrando como funciona, porém, executei o script e não funcionou e está gerando o seguinte erro:

Error 5800 : Scripting Error.
[ Extended Info:Scripting Error. [ Extended Info:Source: Report , Event: Line number: 5 Description:Instrução esperada]]

obs.: Preciso que o gráfico seja gerado no GroupFooter do relatório e todos os dados apresentados pelo gráfico pertença ao mesmo GroupFooter.

É possível desenvolver dessa maneira?

Desde já agradeço.

Script de Geração do Gráfico:

Set Chart = Report.Sections(“GroupFooter1”).Controls(“E3Chart1”) 'Armazena o caminho do E3Chart na tela na variável Chart
Set Consulta = Chart.Queries.Item(“Consulta1”) 'Armazena o caminho da consulta do E3Chart na variável Consulta
Consulta.SetVariableValue “DataInicial”, Application.GetObject(“Dados.Gerais.DataHoraChartInicial”).Value 'Define o valor da variável DataInicial do filtro
Consulta.SetVariableValue “DataFinal”, Application.GetObject(“Dados.Gerais.DataHoraChartFinal”).Value 'Define o valor da variável DataFinal do filtro
Consulta.Execute() 'Executa a consulta com o filtro
Chart.LoadData() 'Carrega o resultado da consulta dentro do Chart
Chart.FitAll() 'Organiza para que nenhum dado fique fora dos eixos

Olá Carlos!

Em que evento você inseriu o script?

Bom dia Paulo!

Coloquei o script no GroupFooter1 no evento OnBeforePrint.

Encontrei o erro que estava no script, tinha um end sub a mais em outro pronto do script, porém, estou com outro problema agora, gostaria de verificar se você pode me ajudar.

O relatório é organizado por nome de máquina, eu já consigo organizar o relatório e realizar o filtro por isso, mas o gráfico que é plotado é sempre o mesmo para todos os equipamentos independente do Group que eles está agrupado, gostaria de saber se tem como vincular o valor que será plotado no gráfico pelo respectivo agrupamento do Group1?

obs.: Script SQL : SELECT ValoresOEE.E3TimeStamp,ValoresOEE.MTBF,ValoresOEE.MTTR,ValoresOEE.OEE,ValoresOEE.Performance,ValoresOEE.Disponibilidade,ValoresOEE.Qualidade,ValoresOEE.TagEquipamento
FROM ValoresOEE
WHERE ( ValoresOEE.E3TimeStamp > #<%DataInicial%># AND ValoresOEE.E3TimeStamp <= #<%DataFinal%># )
ORDER BY ValoresOEE.E3TimeStamp ASC

Qual é o nome do campo da Consulta que está sendo usado para agrupar os dados no Relatório? Teria que criar mais uma variável para filtrar a Consulta por esse mesmo campo.

Bom dia Paulo! Já tentei usar essa o filtro pelo nome da máquina, porém quando eu coloco para imprimir o OEE de todas as máquinas, no gráfico sai sempre o valor de todos juntas no mesmo gráfico e não da variável agrupada do Grupo.

Existe algum jeito de eu conseguir ler a variável que está sendo utilizada no relatório para realizar o agrupamento e mandar essa variável para o Gráfico?

Desde já agradeço.

Você pode pegar o nome do equipamento através da propriedade “text” do objeto que parece estar no GroupFooter. Por exemplo:

Consulta.SetVariableValue “Equipamento”, Report.Sections(“GroupHeader1”).Controls(“Field2”).text

Sem esquecer de criar a variável “Equipamento” na Consulta.

Paulo, boa tarde! Acredito que esteja funcionando, deu um problema de ajuste da escala da hora, mas utilizei o comando FitAll(2), para alinhar o eixo vertical de todos os gráficos, aparentemente segue funcionando.

Vou realizar mais testes durante a semana e caso venha a apresentar algum outro problema te informo novamente.

Muito obrigado pelo suporte.

1 Like