Ir para conteúdo
  • Cadastre-se

  • Este tópico foi criado há 216 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Olá, boa tarde , tudo bem ?

Após a ultima atualização que fizemos do pacote ACBR notamos que os relatórios que já existiam em nosso sistema (com fastreport) deixam de apresentar a opção de Exportar para PDF em algumas situações (que não conseguimos isolar ainda).

Acreditamos que seja por conta do seguinte código adicionado na unit ACBrUtil.FR;
 

procedure RemoveExportFa0stReportPDFDuplicate;
var
  LCount, I: Integer;
begin
  //Remove do menu, exportações de PDF "duplicadas"
  //FastReport varre a aplicação por RTTI buscando TfrxPDFExport
  //Para cada TfrxPDFExport é criado um item no menu
  //Este processo varre os plugins de exportação deixando apenas 1 (o ultimo) TfrxPDFExport por rtti
  //Inserir na chamada do metodo Imprimir do Relatório
  //proposto por Marcos R Weimer / compatibilizado por BigWings
  LCount := 0;

  for i := Pred(frxExportFilters.Count) downto 0 do
  begin
    if AnsiUpperCase(frxExportFilters[i].Filter.ClassName) = 'TFRXPDFEXPORT' then
    begin
      if LCount > 0 then
        frxExportFilters.Delete(i)
      else
        Inc(LCount);
    end;
  end;
end;

 

Sabem me dizer se existe outra abordagem que podemos tentar para contornar a situação ?
Podemos contribuir de alguma forma ?
Grato!
 

 

Postado (editado)

Então, eu postei uma possível solução que ja mandei ate para meu cliente, se nao aprovarem vou passar comentar essa linha que eles puseram, não ficou bom isso...

O que acontece? O motor exportador do FastReport so acata um por aplicação, logo, o nosso eles removem com aquele codigo, e tem momento que remove tudo, pois nao remove a instancia do objeto, so deleta da lista. Porém, se voce analisar do ponto de vista onde o  ponteiro do exportador está, ao destruir tudo do acbr a referencia do objeto dele criado para gerar o pdf da nota some, logo, seu sistema (pode, nota: pode) gerar violação de acesso (carece mais testes), a função de remover da lista de exports, uma variavel global do fastreport deve ser feita de maneira a tirar o registro não apenas da delete na lista, olha o unRegister... lá dá free quando remove, por ser ponteiro, e penso que é ai que o for que fizeram buga.

Eu uso o acbr dentro de uma unit, crio ela quando preciso transmitir nf, já meu sistema tem o motor de exportar pdf dentro do meu dm principal...

 

Segue meu post: 

 

 

Editado por Antonio Gomes
Postado

Obrigado Antonio pela resposta.  Eu vi agora seu outro post, e alguns comentam que nao acontece isso. Mas conseguimos isolar: o erro ocorre quando sua aplicacao ja tem um FrxReport carregado , e daí a gente manda imprimir o Danfe pelo ACBR por ex. Esse codigo inserido remove tudo, e ai "quebra" a aplicação.

Obrigado ! Vamos ver qual a melhor saída. 

  • Curtir 1
  • Este tópico foi criado há 216 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...