Report.Export... está travando a aplicação com dados E3Chart

Prezados,
Estou desenvolvendo um script que usa um evento click para copiar a configuração do E3Chart e gerar um relatório, exportando-o para PDF, Excel ou RTF. Para fazer isso, primeiro utilizo o objeto E3Chart para graficar dados consultando um banco de dados (Access), basicamente é um filtro com Data Inicial/Final. Inicialmente, realizei um teste de conceito utilizando a função Report.PrintPreview(), e funcionou perfeitamente, consegui imprimir o gráfico perfeitamente com base na filtragem. Porém, depois que alterei a última de codigo para Report.Export, a aplicação travou, fiz varios teste, mudei a configuração do filtro para reduzir a quantidade de dados, e a aplicação trava independentement do formato escolhido ( PDF, Excel, o RTF).

Código que funciona:

Sub CommandButton2_Click()
'Instacia do Relatorio
Set Report = Application.LoadReport(“RelatorioGraficos”)
'Intacancia do E3Chart1
Set chart = Report.Item(“E3Chart1”)
'Copia configuracao do E3Chart1
chart.CopyConfig(Screen.Item(“E3Chart1”))
'Carregar dados no Relatorio
chart.LoadData()

Report.PrintPreview()

End Sub

Código que NÃO funciona:

Sub CommandButton2_Click()
'Instacia do Relatorio
Set Report = Application.LoadReport(“RelatorioGraficos”)
'Intacancia do E3Chart1
Set chart = Report.Item(“E3Chart1”)
'Copia configuracao do E3Chart1
chart.CopyConfig(Screen.Item(“E3Chart1”))
'Carregar dados no Relatorio
chart.LoadData()

Report.Export "PDF", "", True

End Sub

Qual versão do E3 você está usando?

Olá Johen

Estou usando o Elipse E3 Studio - (64 - bits) versão 6.8.160

O E3Chart está na seção Detail do seu relatório? Se estiver, tente mover para uma seção header.
Você tem alguma consulta configurada no relatório?

Johen,

O objeto E3Chart está na seção Header. Tenho sim uma consulta configurada no relatorio.

E se ao invés de mandar o ultimo parâmetro como true, você passar direto o caminho do arquivo no segundo parâmetro do export, funciona? (e false no ultimo parâmetro)

Obrigado pelo retorno, já consegui fazer funionar o script. Tive que remover a consulta no Relatório Gráfico. Acredito que essa consulta não era necessária, pois o relatorio já recebia uma copia do objeto E3Chart filtrado, acho que a consulta geraba algum erro no método Report.Export… Esse tipo de erros acontencem em “tempo de execução”, então leva tempo resolver o bug.

1 Like

A consulta dentro do Relatório só é necessária se você colocar campos dentro do relatório que vão usar os resultados dessa consulta. De fato o E3Chart dentro do relatório não usa essa consulta. Se a consulta for grande/gerar muitos resultados ela pode travar o export do relatório pq o relatório tem que gerar seções “detail” para cada resultado (mesmo que você não está ‘usando’ a consulta). No PrintPreview ele não travava porque o print preview vai gerando as páginas conforme você vai visualizando.

Fechou. Muito obrigado pelas informações.