Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado (editado)

Olá...

 

Dei uma olhada aqui no fórum e encontrei alguns tópicos a respeito da criação dos arquivos: Auxiliar e Lista dos Autenticados.

 

Criei um aplicativo para fazer os testes, este aplicativo será o meu aplicativo configurador do PDV.

 

Nele, estou tentando utilizar o AAC para criar o arquivo auxiliar, e deu tudo certo até agora.

 

Vi que para criar o arquivo .txt que possui a relação dos arquivos executáveis e seus MD5 é utilizado o componente ACBrPAF ligado ao ACBrAAC.

Vi isso no post  .

 

Quando tento seguir o exemplo do post acima, apresenta um erro (ArquivoAuxiliar.txt inválido) ao executar o comando: ACBrPAF.SaveFileTXT_N('Executaveis.txt');

 

O que estou fazendo de errado? O que devo fazer para criar corretamente o ArquivoAuxiliar e o Arquivo que contém a lista dos executáveis e seus MD5?

 

AGRADEÇO DESDE JÁ QUALQUER AJUDA...

 

Segue abaixo o código completo que estou utilizando para isso:

 

  try
    if FileExists(getPathArquivoAuxiliar) then
      DeleteFile(GetPathArquivoAuxiliar);
 
    AssignFile(F, GetPathArquivoAuxiliar);
    Rewrite(F);
    closefile(F);
 
    // setar o diretório onde vai ser salvo o arquivo
    ACBrPAF.Path := ExtractFilePath(ParamStr(0));
 
    ACBrAAC.NomeArquivoAux := GetPathArquivoAuxiliar;
 
    ACBrAAC.IdentPAF.Empresa.RazaoSocial    := edtRazaoSocial.Text;
    ACBrAAC.IdentPAF.Empresa.CNPJ           := edtCNPJ.Text;
    ACBrAAC.IdentPAF.Empresa.IE             := edtInscEstadual.Text;
    ACBrAAC.IdentPAF.Empresa.IM             := edtInscMunicipal.Text;
    ACBrAAC.IdentPAF.Empresa.Cep            := edtCEP.Text;
    ACBrAAC.IdentPAF.Empresa.Cidade         := edtCidade.Text;
    ACBrAAC.IdentPAF.Empresa.Uf             := edtUF.Text;
    ACBrAAC.IdentPAF.Empresa.Telefone       := edtTelefone.Text;
    ACBrAAC.IdentPAF.Empresa.Email          := edtEmail.Text;
 
    ACBrAAC.IdentPAF.NumeroLaudo            := edtLaudo.Text;
    ACBrAAC.IdentPAF.VersaoER               := '2.01';
    ACBrAAC.IdentPAF.Paf.Nome               := edtNomePAF.Text;
    ACBrAAC.IdentPAF.Paf.Versao             := edtVersaoPAF.Text;
    ACBrAAC.IdentPAF.Paf.PrincipalExe.Nome  := edtExecutavel.Text;
    ACBrAAC.IdentPAF.Paf.PrincipalExe.MD5   := edtExecutavelMD5.Text;
 
    ACBrAAC.IdentPAF.Paf.Linguagem          := edtLinguagem.Text;
    ACBrAAC.IdentPAF.Paf.BancoDados         := edtBancoDados.Text;
    ACBrAAC.IdentPAF.Paf.SistemaOperacional := edtSistemaOperacional.Text;
 
    //funcionalidades
    ACBrAAC.IdentPAF.Paf.TipoFuncionamento   := TACBrPAFTipoFuncionamento(cbxTipoFuncionamento.ItemIndex);
    ACBrAAC.IdentPAF.Paf.TipoDesenvolvimento := TACBrPAFTipoDesenvolvimento(cbxTipoDesenvolvimento.ItemIndex);
    ACBrAAC.IdentPAF.Paf.IntegracaoPAFECF    := TACBrPAFTipoIntegracao(cbxTipoIntegracao.ItemIndex);
 
    // lista dos arquivo executaveis e seus respectivos MD5
    with ACBrAAC.IdentPAF.OutrosArquivos.New do //Aqui só está pegando e processando o ultimo nome (easyconfigurador.exe)
    begin
      Nome := 'easyecf.exe';
      Nome := 'easyconfigurador.exe';
    end;
 
    // Salvar o arquivo de autenticados
    ACBrPAF.SaveFileTXT_N('Executaveis.txt'); //Aqui apresenta o erro: ArquivoAuxiliar.txt inválido.
 
    ACBrAAC.IdentPAF.ArquivoListaAutenticados.Nome := 'Executaveis.txt';
    ACBrAAC.IdentPAF.ArquivoListaAutenticados.MD5  := ACBrEAD.MD5FromFile(ExtractFilePath(ParamStr(0)) + 'Executaveis.txt');
 
    //parametros de nao concomitancia
   ...
   // aplicações especiais
   ...
    //posto
   ...
    // transporte de passageiros
   ...
   //criterios por uf
   ...
    // ECFS Autorizados para uso
  ...
    ACBrAAC.SalvarArquivo;
    MessageDlg('Arquivo auxiliar salvo com sucesso!', mtWarning, [mbOK], 0);
    CarregarArquivoAuxiliar;
  except
    on E: Exception do
    begin
      ShowMessage('Ocorreu o seguinte erro:' + sLineBreak + E.Message);
    end;
  end;
Editado por vca_rj
Postado

 
 with ACBrAAC.IdentPAF.OutrosArquivos.New do //Aqui só está pegando e processando o ultimo nome (easyconfigurador.exe)
    begin
      Nome := 'easyecf.exe';
      Nome := 'easyconfigurador.exe';
    end;
 

 

mude para 

 

    with ACBrAAC.IdentPAF.OutrosArquivos.New do //Aqui só está pegando e processando o ultimo nome (easyconfigurador.exe)
    begin
      Nome := 'easyecf.exe';
    end;
 
    with ACBrAAC.IdentPAF.OutrosArquivos.New do //Aqui só está pegando e processando o ultimo nome (easyconfigurador.exe)
    begin
      Nome := 'easyconfigurador.exe';
    end;
 

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Postado (editado)

Obrigado Isaque.

Deu certo, quando ao outro problema, fiquei fazendo testes até entender o que eu deveria fazer. Esta tudo OK.

Editado por vca_rj
  • 4 meses depois ...
Postado

Prezados, estou com o problema referente ao arquivo auxiliar inválido :

 

// Salvar o arquivo de autenticados

    ACBrPAF.SaveFileTXT_N('Executaveis.txt'); //Aqui apresenta o erro: Auxiliar.txt inválido.
 
Como resolver ?
Por favor me ajudem.
 
Agradeço desde já.
  • Consultores
Postado

Veja como o usuário anterior resolveu:

 

fiquei fazendo testes até entender o que eu deveria fazer. Esta tudo OK.

Então verifique o funcionamento nos aplicativos de exemplo. Leia a documentação do PAF-ECF.

 

Se mesmo depois disso o problema persistir, crie um tópico com uma dúvida que seja específica. Coloque no tópico o passo a passo para reproduzir o problema, o comportamento esperado, o motivo de esperar o comportamento e o comportamento que foi obtido. Essas orientações se encontram

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Postado

Prezado EMBarbosa,

 

O usuário anterior não deu a solução para este problema no post apenas informou que resolveu sozinho após vários testes, abaixo segue a rotina que estou utilizando para a geração :

 

if FileExists(ExtractFilePath(Application.ExeName) + 'PAF-ECF\' + 'Auxiliar.txt') then
      DeleteFile(ExtractFilePath(Application.ExeName) + 'PAF-ECF\' + 'Auxiliar.txt');

    AssignFile(F, ExtractFilePath(Application.ExeName) + 'PAF-ECF\' + 'Auxiliar.txt');
    Rewrite(F);
    closefile(F);

  // setar o diretório onde vai ser salvo o arquivo
  FdmPafEcf.ACBrPAF1.Path := ExtractFilePath(Application.ExeName) + 'PAF-ECF\';

  // registro dos dados do desenvolvedor
  //Self.PreencherHeaderArquivo(FdmPafEcf.ACBrPAF1.PAF_N.RegistroN1);

  // registro dos dados do aplicativo
  FdmPafEcf.ACBrPAF1.PAF_N.RegistroN1.RAZAOSOCIAL := FdmPafEcf.ACBrAAC1.IdentPAF.Empresa.RazaoSocial;
  FdmPafEcf.ACBrPAF1.PAF_N.RegistroN1.UF          := FdmPafEcf.ACBrAAC1.IdentPAF.Empresa.Uf;
  FdmPafEcf.ACBrPAF1.PAF_N.RegistroN1.CNPJ        := FdmPafEcf.ACBrAAC1.IdentPAF.Empresa.CNPJ;
  FdmPafEcf.ACBrPAF1.PAF_N.RegistroN1.IE          := FdmPafEcf.ACBrAAC1.IdentPAF.Empresa.IE;
  FdmPafEcf.ACBrPAF1.PAF_N.RegistroN1.IM          := FdmPafEcf.ACBrAAC1.IdentPAF.Empresa.IM;
  FdmPafEcf.ACBrPAF1.PAF_N.RegistroN2.NOME        := FdmPafEcf.ACBrAAC1.IdentPAF.Paf.Nome;
  FdmPafEcf.ACBrPAF1.PAF_N.RegistroN2.VERSAO      := FdmPafEcf.ACBrAAC1.IdentPAF.Paf.Versao;
  FdmPafEcf.ACBrPAF1.PAF_N.RegistroN2.LAUDO       := FdmPafEcf.ACBrAAC1.IdentPAF.NumeroLaudo;

  // lista dos arquivo executaveis e seus respectivos MD5
  with FdmPafEcf.ACBrAAC1.IdentPAF.OutrosArquivos.New do //Aqui só está pegando e processando o ultimo nome (easyconfigurador.exe)
  begin
    Nome := 'EmpPafEcf.exe';
  end;

  with FdmPafEcf.ACBrAAC1.IdentPAF.OutrosArquivos.New do //Aqui só está pegando e processando o ultimo nome (easyconfigurador.exe)
  begin
    Nome := 'BemaFI32.dll';
  end;

  // Salvar o arquivo de autenticados
  FdmPafEcf.ACBrPAF1.SaveFileTXT_N('lista_autenticados.txt');

  // Carregar o MD5 do arquivo de autenticados
  FdmPafEcf.ACBrAAC1.IdentPAF.ArquivoListaAutenticados.Nome := 'lista_autenticados.txt';

  FdmPafEcf.ACBrAAC1.IdentPAF.ArquivoListaAutenticados.MD5  := FdmPafEcf.ACBrEAD1.MD5FromFile(ExtractFilePath(Application.ExeName) + 'PAF-ECF\' + 'lista_autenticados.txt');

  FdmPafEcf.ACBrAAC1.SalvarArquivo;

  // setar o MD5 do arquivo de autenticados que deve aparecer no rodapé do cupom
  // se a impressora for MFD então fazer a programação para que apareça nas informações complementares
  // se não for MFD setar a propriedade InfoRodapeCupom.MD5 do FdmPafEcf.ACBrECF
  if FdmPafEcf.ACBrECF1.MFD then
  begin                                               
    FdmPafEcf.ACBrECF1.InfoRodapeCupom.MD5 := EmptyStr;
    if FdmPafEcf.ACBrECF1.Estado = estLivre then
    begin
      FdmPafEcf.ACBrECF1.IdentificaPAF(
        FdmPafEcf.ACBrAAC1.IdentPAF.Paf.Nome + ' v' + FdmPafEcf.ACBrAAC1.IdentPAF.Paf.Versao,
        'MD-5: ' + FdmPafEcf.ACBrAAC1.IdentPAF.ArquivoListaAutenticados.MD5
      );
    end;
  end
  else
  begin
    FdmPafEcf.ACBrECF1.InfoRodapeCupom.MD5 := FdmPafEcf.ACBrAAC1.IdentPAF.ArquivoListaAutenticados.MD5;
  end;

 

O componente acbrECF está ligado ao componente acbrACC, no acbrACC está setada a propriedade NomeArquivoAux -> Auxiliar.txt e o arquivo Auxiliar.txt está na pasta setada no caminho. Não encontrei muitas informações no demo do acbrACC e nenhuma referencia no acbrECF. Configurei o acbrACC conforme o exemplo do demo , (troquei apenas o valor da chave mas mantive com 4 digitos). O que pode estar ocorrendo ? a exception gera no metodo FdmPafEcf.ACBrPAF1.SaveFileTXT_N.

 

Grato se responder.

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