Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado (editado)

Olá, gerei uma dll isapi com o componente TACBrNFe e TACBrNFeDANFEFR do acbr. A emissão da nfe ocorre corretamente e ela fica validada e aparece no site da receita.

Porem, ao executar a rotina "FNfe.NotasFiscais.Items[0].ImprimirPDF", congela/trava a rotina. 

Tentei com "FNfe.NotasFiscais.Items[0].Imprimir" porem ocorre o mesmo problema.

Ao executar a mesma rotina em um servidor standAlone, funciona normalmente, alguém sabe o que poderia saber?

OBS: No standalone ao executar este comando "ImprimirPDF" apenas é gerado o pdf da nfe na pasta que preenchi nas configurações, não tem nada de visual na aplicação, não abre o exibe o pdf, não exibe o "carregando" do componente para montar o pdf e nem nada, apenas gera o pdf na pasta.

Editado por Douglas Colombo
Postado

Realmente ocorre isso... 

rodando o servidor no modo Stand Alone funciona normal, já no IIS com dll rodando na mesma maquina e o mesmo servidor não funciona a geração do DANFE em pdf

Será que o ACBR está usando algum componente visual que causa esse congelamento?

 

Postado

Mas eu gero relatórios via isapi DLL com o fast report... gero relatório de vendas, ficha de clientes, ... porem o danfe está ficando em uma espécie de loop dentro do comando "FDanfe.ImprimirDANFEPDF(FNfe.NotasFiscais.Items[x].NFe);"

Postado

O erro ocorre no comando: "Result := frxReport.PrepareReport();" - Função: "function TACBrNFeFRClass.PrepareReport(ANFE: TNFe): Boolean;" - unit: "ACBrNFeDANFEFRDM".

Não gera exceção nada, apenas fica em uma espécie de espera/loop.

as propriedades ShowProgress e ShowDialog estão false.

Postado

Identifiquei onde está o problema... nos eventos dentro do DANFE "DANFeRetrato.fr3".

Vou ver se consigo identificar qual a função dentro do relatório que está genrado o erro.

Outra coisa, a propriedade SilentMode do frxReport assim como a ThreadSafe, precisa estar acessível externamente para que possa ser configurável...

Postado

Esta é a função dentro do fr3 da DANFE que está com problema ao gerar PDF via ISAPI DLL:

 

procedure InicializaPosicaoCanhoto();
begin
  if Trim(VarToStr( <Parametros."poscanhotolayout"> )) = '0' then
  begin
    if Trim(VarToStr( <Parametros."poscanhoto"> )) = '2' then
       CanhotoCabecalho.Visible := true
    else
       CanhotoCabecalho.Visible := <Parametros."poscanhoto"> = '0';

    CanhotoCabecalho.Child       := CanhotoCabecalhoPadrao;
    CanhtoCabecalhoBarra.visible := false;
    CanhotoRodape.Visible        := <Parametros."poscanhoto"> = '1';
    CanhotoRodapeBarra.Visible   := false;
  end
  else
  begin
    if Trim(VarToStr( <Parametros."poscanhoto"> )) = '2' then
       CanhotoCabecalho.Visible := true
    else
       CanhotoCabecalho.Visible := <Parametros."poscanhoto"> = '0';

    CanhotoCabecalho.Child         := CanhtoCabecalhoBarra;
    CanhotoCabecalhoPadrao.visible := false;
    CanhotoRodape.Visible          := false;
    CanhotoRodapeBarra.Visible     := <Parametros."poscanhoto"> = '1';
  end;
end;

Postado

O problema parece ser ao modificar via programação a propriedade Child de algum componente visual.

No nosso caso como o default do relatório já é o "CanhotoCabecalho.Child := CanhotoCabecalhoPadrao"

image.thumb.png.055931752233f9fac6e0dd81a6f5ab08.png

apenas inserindo um if de validação em cima da execução da rotina, já resolve o problema:

image.thumb.png.35382e6bb61c5d94cf412de46845254f.png

 

Mas caso quisermos trocar essa propriedade via programação, vai dar problema na geração do relatório... Então isto seria uma solução temporária apenas, para funcionar a geração do relatório via ISAPI DLL com este modelo da danfe ( DANFeRetrato.fr3 )

 

 

Postado

Se possível, adicionar mais estas propriedades para manipulação externa ao componente do acbr:

frxReport.EngineOptions.SilentMode := True;
frxReport.EngineOptions.IgnoreDevByZero := true;
frxReport.EngineOptions.IgnoreExprError := true;
frxReport.EngineOptions.NewSilentMode := simSilent;
frxReport.EngineOptions.EnableThreadSafe := true;

Estão dentro da use ACBRNFEDANFEFRDM e são importantes para caso de algum erro no relatório, não fique com a requisição congelada na api do ISAPI DLL e consiga seguir com a vida da requisição dentro do backend...

  • 2 semanas depois ...
  • Moderadores
Postado
Em 10/06/2021 at 13:54, Douglas Colombo disse:

Se possível, adicionar mais estas propriedades para manipulação externa ao componente do acbr:

frxReport.EngineOptions.SilentMode := True;
frxReport.EngineOptions.IgnoreDevByZero := true;
frxReport.EngineOptions.IgnoreExprError := true;
frxReport.EngineOptions.NewSilentMode := simSilent;
frxReport.EngineOptions.EnableThreadSafe := true;

Estão dentro da use ACBRNFEDANFEFRDM e são importantes para caso de algum erro no relatório, não fique com a requisição congelada na api do ISAPI DLL e consiga seguir com a vida da requisição dentro do backend...

Douglas por favor altera o componente para expor essas situações e anexa o fr3 com as alterações necessárias para vermos e validar

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • Este tópico foi criado há 1247 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.