KB-63563: Exportando um relatório gráfico sem que o E3Chart esteja sendo visualizado na tela.

Muitas vezes, é preciso que um relatório gráfico seja exportado automaticamente, sem a intervenção do operador. Para isto, é necessário configurar o objeto Chart do relatório para que os dados sejam trazidos corretamente, já que o método CopyConfig do E3Chart não será utilizado.

Para isto, siga estes procedimentos:

1. Crie um Relatório e insira um E3Chart em sua sessão PageHeader.

2. Depois, acesse as propriedades do E3Chart criado e configure a Consulta que será utilizada pelas penas históricas. Caso seja necessário filtrar a Consulta, ela deve ser configurada neste momento.

NOTA: Assegure-se de que está configurando a Consulta do E3Chart, e não a do relatório.

3. Feita a Consulta, deve-se criar e configurar penas históricas para cada um dos campos selecionados.

4. Por fim, configure a escala do eixo horizontal para que seja mostrado um intervalo de tempo histórico a ser definido dentro da aplicação.

5. Concluída a configuração do Chart, abra o editor de scripts, selecione o objeto PageHeader e o evento OnBeforePrint. Neste evento, configure o filtro da Consulta do E3Chart inserido anteriormente, execute esta consulta, carregue o resultado e organize-o na tela.

Exemplo:

Sub OnBeforePrint

Set Chart = Report.Sections(“PageHeader”).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.DataIni”).Value ‘Define o valor da variável DataInicial do filtro
Consulta.SetVariableValue “DataFinal”, Application.GetObject(“Dados.DataFim”).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
Chart.HorScaleBegin = Application.GetObject(“Dados.DataIni”).Value ‘Define a data inicial do eixo horizontal
Chart.HorScaleEnd = Application.GetObject(“Dados.DataFim”).Value ‘Define a data final do eixo horizontal
EndSub

6. Finalmente, crie um tag Timer cujas funções sejam preencher os valores de data inicial e final e executar o comando Export do Relatório.

Sub Export_OnPreset()
Parent.Item(“DataIni”).Value = now-1/24/60   ‘Horário atual menos um minuto
Parent.Item(“DataFim”).Value = now           ‘Horário atual
Set report = Application.LoadReport(“[Relatório1]”)
Report.Export “PDF”, “C:\GraphReport.pdf”
End Sub

NOTA: Anexo a este artigo está uma aplicação exemplo desenvolvida com o Elipse E3 versão 4.5 build 238.

Anexos:

GraphExport

Este artigo foi útil? Was this post helpful?
Yes0
No0

Deixe seu Comentário

Seu endereço de e-mail não será publicado. Campos marcados com asterisco são obrigatórios *