Fórum Erro no método Execute de um relatório rave criado via códig #338582
12/03/2007
0
Na seleção dele criei a possibilidade de visualizar/imprimir e enviar por e-mail.
Quando setado para e-mail, altero as seguintes opções:
RvRel.DefaultDest := rdFile; RvRel.DoNativeOutput := False; RvRel.OutputFileName := NomeArquivo; RvRel.RenderObject := RvMail ;
Ao executar o execute nesse modo, funciona perfeitamente, mas quando é gerado para visualização/impressão, ocorre os seguintes erros, lembrando que o relatório é mostrado perfeitamente, somente quando fecho a visualização é que ocorre o erro:
Access violation at address 77F755E9 in module ´ntdll.dll´. Read of address XXXXX
Método completo de execução:
with RvRel.SystemPrinter do begin MarginBottom := 1; MarginLeft := 1; MarginTop := 1; MarginBottom := 1; Units := unCM; UnitsFactor := 2.54; Copies := 1; Orientation := poLandScape ; RvRel.SystemPreview.FormState := wsMaximized; RvRel.SystemSetups := RvRel.SystemSetups - [ssAllowSetup]; RvRel.SystemPreview.RulerType := rtBothCm; RpDev.SelectPaper(´A4´,false); RvRel.Execute;
Obrigado pela atenção.
Mario
Aldus
Curtir tópico
+ 0Posts
12/03/2007
Dadonas
Fallow
Gostei + 0
12/03/2007
Aldus
Este form que tenho genérico, conforme a seleção do relatório gero o relatório, sendo a configuração do relatório e sua execução é única.
No form de seleção do relatório, uso o reguinte código:
Application.CreateForm(TfRelatorioRave, fRelatorioRave); fRelatorioRave.NomeRelatorio := ´custoporcentro´; fRelatorioRave.DestRelatorio := EditDestino.ItemIndex ; fRelatorioRave.NomeArquivo := ´Relatorio_de_Custos_por_Centro_de_Custo.pdf´; fRelatorioRave.ShowModal; fRelatorioRave.Release;
No Form fRelatorioRave, configuro e executo o relatório no OnShow.
Att
Mario
Gostei + 0
12/03/2007
Dadonas
fRelatorioRave.Release;
vc deve liberar este objeto de memoria assim:
FreeAndNil(fRelatorioRave);
Porém depois de acrescentar esta linha, se vc tentar acessar alguma coisa tipo
fRelatorioRave.QualquerMetodo;
,dai dá erro de violação de acesso de memória parecido com aquele que vc postou.
Fallow
Gostei + 0
12/03/2007
Aldus
Application.CreateForm(TfRelatorioRave, fRelatorioRave); fRelatorioRave.NomeRelatorio := ´custoporcentro´; fRelatorioRave.DestRelatorio := EditDestino.ItemIndex ; fRelatorioRave.NomeArquivo := ´Relatorio_de_Custos_por_Centro_de_Custo.pdf´; fRelatorioRave.ShowModal; fRelatorioRave.Release; FreeAndNil(fRelatorioRave);
Fiz um teste e coloque um showmessage depois do FreeAndNil e o sistema acusa os erros e não passa por esta linha.
Estranho não?
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)