Ir para conteúdo
  • Cadastre-se

dev botao

Impressão GNRE via FastReport


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

Recommended Posts

Senhores bom dia

Estou com um problemão nas minhas mãos.

Faço a Rotina corretamente tenho tudo configura todos caminhos apontados

envio o meu XML ele é autorizado, e quando entra na rotina de impressão

acabou-se tudo

ele simplesmente não faz nada

Debugando verifiquei que:

Na função procedure TACBrGNREGuiaFR.ImprimirGuia(GNRE: TGNRERetorno);

ao entrar aqui  if PrepareReport(GNRE) then

function TACBrGNREGuiaFR.PrepareReport(GNRE: TGNRERetorno): boolean;

if Trim(FastFile) <> '' then
  begin
    if FileExists(FastFile) then
      dmGuia.frxReport.LoadFromFile(FastFile)
    else
      raise EACBrGNREGuiaFR.CreateFmt('Caminho do arquivo de impressão da Guia "%s" inválido.', [FastFile]);
  end
  else
    raise EACBrGNREGuiaFR.Create('Caminho do arquivo de impressão do Guia não assinalado.');

 

// quando chego aqui o GNRE esta nil

  if Assigned(GNRE) then
  begin
    dmGuia.GNRE := GNRE;
    dmGuia.CarregaDados;

    Result := dmGuia.frxReport.PrepareReport;
  end
  else
  begin
    if Assigned(ACBrGNRE) then
    begin

// Sendo assim entramos nesse ponto so que

// TACBrGNRE(ACBrGNRE).GuiasRetorno.Count = 0

//então ele pula todos processos e finaliza a sessão.


      for i := 0 to TACBrGNRE(ACBrGNRE).GuiasRetorno.Count - 1 do
      begin
        dmGuia.GNRE := TACBrGNRE(ACBrGNRE).GuiasRetorno.Items.GNRE;
        dmGuia.CarregaDados;

        if (i > 0) then
          Result := dmGuia.frxReport.PrepareReport(False)
        else
          Result := dmGuia.frxReport.PrepareReport;
      end;
    end
    else
      raise EACBrGNREGuiaFR.Create('Propriedade ACBrGNRE não assinalada.');
  end;

 

Alguem pode me dar uma luz uma ajuda?

so falta este detalhe para que eu possa terminar o projeto

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Teste com o Demo e também em Fortes report!

pois um colega que postou códigos e foram aplicado mudanças fez a impressão do mesmo sem problemas.

tanto que anexou o pdf gerado ao tópico que ele criou.

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

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

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

ACBrGNREGuiaFR1.FastFile := '

haaaaaaaaaaa..

agora entendi

tu tá usando em Fast Report certo?

se sim deve de informar a propriedade

ACBrGNREGuiaFR1.FastFile := '....\GNRE_GUIA.fr3';

estamos trabalhando com fast report e ele é com arquivos fr3 certo?

veja que ele está na pasta de exemplos em delphi do gnre

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

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

 

Link para o comentário
Compartilhar em outros sites

Juliomar bom dia,

Sim estou usando o Fast mas eu estou declarando o fr3 veja

  ACBrGNREGuiaFR1.FastFile   := ExtractFileDir(application.ExeName) + '\GNRE_GUIA.fr3';
  ACBrGNREGuiaFR1.ShowDialog := True;
  ACBrGNREGuiaFR1.MostrarPreview := True;

  ACBrGNREGuiaFR1.ACBrGNRE := ACBrGNRE1;
  ACBrGNRE1.GNREGuia       := ACBrGNREGuiaFR1;

Link para o comentário
Compartilhar em outros sites

Cara não sei ja instalei reinstalei

nem pelo demo nem pela apolicação quando chego aqui

procedure Guia.ImprimirPDF;
begin
  with TACBrGNRE(TGuias(Collection).ACBrGNRE) do
  begin
    if not Assigned(GNREGuia) then
      raise EACBrGNREException.Create('Componente FGNREGuia não associado.')
    else
      GNREGuia.ImprimirGuiaPDF(nil);
  end;
end;

function TACBrGNREGuiaFR.PrepareReport(GNRE: TGNRERetorno): boolean;
var
  i: Integer;
begin
  Result := False;

  if Trim(FastFile) <> '' then
  begin
    if FileExists(FastFile) then
      dmGuia.frxReport.LoadFromFile(FastFile)
    else
      raise EACBrGNREGuiaFR.CreateFmt('Caminho do arquivo de impressão da Guia "%s" inválido.', [FastFile]);
  end
  else
    raise EACBrGNREGuiaFR.Create('Caminho do arquivo de impressão do Guia não assinalado.');

  if Assigned(GNRE) then
  begin
    dmGuia.GNRE := GNRE;
    dmGuia.CarregaDados;

    Result := dmGuia.frxReport.PrepareReport;
  end
  else
  begin
    if Assigned(ACBrGNRE) then
    begin

//aki o valor vem 0 e ele passa direto
      for i := 0 to TACBrGNRE(ACBrGNRE).GuiasRetorno.Count - 1 do
      begin
        dmGuia.GNRE := TACBrGNRE(ACBrGNRE).GuiasRetorno.Items.GNRE;
        dmGuia.CarregaDados;

        if (i > 0) then
          Result := dmGuia.frxReport.PrepareReport(False)
        else
          Result := dmGuia.frxReport.PrepareReport;
      end;
    end
    else
      raise EACBrGNREGuiaFR.Create('Propriedade ACBrGNRE não assinalada.');
  end;
end;

 

 

 

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

é o mesmo código acima!

primeiro pegue o demo rode ele e teste com ele!

como é um demo não tá sendo informado o fr3 então informe no create

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

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

 

Link para o comentário
Compartilhar em outros sites

33 minutos atrás, Eduardo Alves de Souza disse:

Bem na Demo me apresentou o seguinte erro

 

---------------------------
Error
---------------------------
The following error(s) have occured:

Invalid file format


---------------------------
OK   
---------------------------

 

Descobri que o erro ocorre no XML do arquivo GNRE_GUIA.fr3

Mas não consigo descobri pq

Meu Fast é o 5.1.5

e o xml começa assim

<TfrxReport Version="5.1.5" DotMatrixReport="False" IniFile="\Software\Fast Reports" PreviewOptions.Buttons="4095" PreviewOptions.Zoom="1" PrintOptions.Printer="Default" PrintOptions.PrintOnSheet="0" ReportOptions.CreateDate="41367,4730687153" ReportOptions.Description.Text="" ReportOptions.LastChange="42733,4822894097" ScriptLanguage="PascalScript" ScriptText.Text="procedure Page1OnBeforePrint(Sender: TfrxComponent);&#13;&#10;begin&#13;&#10;  Memo1.Visible := &#60;Guia.&#34;Ambiente&#34;&#62; = '9';&#13;&#10;  Memo2.Visible := &#60;Guia.&#34;Ambiente&#34;&#62; = '9';&#13;&#10;  Memo3.Visible := &#60;Guia.&#34;Ambiente&#34;&#62; = '9';&#13;&#10;  Memo52.Visible := &#60;Guia.&#34;Juros&#34;&#62; &#62; 0;&#13;&#10;  Memo53.Visible := &#60;Guia.&#34;Multa&#34;&#62; &#62; 0;&#13;&#10;  Memo109.Visible := &#60;Guia.&#34;Juros&#34;&#62; &#62; 0;&#13;&#10;  Memo110.Visible := &#60;Guia.&#34;Multa&#34;&#62; &#62; 0;&#13;&#10;  Memo164.Visible := &#60;Guia.&#34;Juros&#34;&#62; &#62; 0;&#13;&#10;  Memo168.Visible := &#60;Guia.&#34;Multa&#34;&#62; &#62; 0;&#13;&#10;end;&#13;&#10;&#13;&#10;begin&#13;&#10;&#13;&#10;end.">

Link para o comentário
Compartilhar em outros sites

Eu passo os parametros dessa forma, depois de enviar os dados

 

               if ACBrGNRE1.Enviar(False) then
                begin
                  ACBrGNRE1.GuiasRetorno.Clear;
                  ACBrGNRE1.GuiasRetorno.LoadFromFile(ACBrGNRE1.Configuracoes.Arquivos.PathArqTXT + ACBrGNRE1.WebServices.Retorno.GNRERetorno.resGuia[0].RepresentacaoNumerica + '-gnre.txt');
                  TACBrGNREGuiaFR(ACBrGNRE1.GNREGuia).FastFile := ExtractFilePath(CONF_NFEDANFE_NFE.AsString) + 'GNRE_GUIA.fr3' ;

                  ACBrGNRE1.GuiasRetorno.Imprimir;

                  ACBrGNRE1.GuiasRetorno.ImprimirPDF;

                end;
 

 

Nunca tive problema

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Moderadores

Hum entendi.

Bom como não emito não consigo debugar nem em homologação nem em produção.

caso consiga descobrir o que acontece e repassar aqui usando o demo a gente dá um jeito de corrigir.

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

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

 

Link para o comentário
Compartilhar em outros sites

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