Ir para conteúdo
  • Cadastre-se

dev botao

Sugestäo para AcbrBoleto.pas


centuryinf
Ver Solução Respondido por Agnaldo Prates,
  • Este tópico foi criado há 2372 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Sugestáo

Implementei no arquivo AcbrBoleto.pas uma forma de o usuário determinar onde gerar os arquivos

pena que toda vez que atualizo o Acbr, tenho que alterar este fonte

function GerarRemessa( NumeroRemessa : Integer; destino : STRING ) : String;     <<<<<<<---------------------

////chamada

   ACBrBoleto1.GerarRemessa( strtoint(edlote.text),editDestino.txt );           <<<<<<<---------------------     //EX:       f:\remessa

Function TACBrBoleto.GerarRemessa( NumeroRemessa : Integer; destino : STRING ) : String;         <<<<<<<---------------------
var
   SLRemessa   : TStringList;
   ContTitulos : Integer;
   NomeArq     : String ;
begin
   Result:= '';
   if ListadeBoletos.Count < 1 then
      raise Exception.Create(ACBrStr('Lista de Boletos está vazia'));

   ChecarDadosObrigatorios;
    dirarqremessa:=dirarqremessa+destino;                  <<<<<<<---------------------
   if not DirectoryExists( DirArqRemessa ) then                                         
      ForceDirectories( DirArqRemessa );

   if not DirectoryExists( DirArqRemessa ) then
      raise Exception.Create( ACBrStr('Diretório inválido:' + sLineBreak + DirArqRemessa) );

   if ( NomeArqRemessa = '' ) then
      NomeArq := Banco.CalcularNomeArquivoRemessa
   else
      NomeArq := DirArqRemessa + PathDelim +NomeArqRemessa;

   SLRemessa := TStringList.Create;
   try
      if LayoutRemessa =c400 then
      begin
         Banco.GerarRegistroHeader400( NumeroRemessa, SLRemessa );

         for ContTitulos:= 0 to ListadeBoletos.Count-1 do
            Banco.GerarRegistroTransacao400( ListadeBoletos[ContTitulos], SLRemessa);

         Banco.GerarRegistroTrailler400( SLRemessa );

      end
      else
      begin
        SLRemessa.Add( Banco.GerarRegistroHeader240( NumeroRemessa ) );

         for ContTitulos:= 0 to ListadeBoletos.Count-1 do
             SLRemessa.Add( Banco.GerarRegistroTransacao240( ListadeBoletos[ContTitulos] ) );

         SLRemessa.Add( Banco.GerarRegistroTrailler240( SLRemessa ) );
      end;
      SLRemessa.SaveToFile(NomeArq );
       Result:= NomeArq;
   finally
      SLRemessa.Free;
   end;
end;
 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Bom dia,

Já existe esta propriedade para Remessa e Retorno, basta passar o caminho antes de chamar a função ex:

ACBrBoleto1.DirArqRemessa:=  'f:\remessa' ;
ACBrBoleto1.GerarRemessa( 1 ); 

Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link para o comentário
Compartilhar em outros sites

Ola José

Tentei utilizar da forma que voce me mostrou,  o que ocorre é que tenho varios bancos na mesma empresa, ou seja gero 3 arquivos de remessa de cada vez, 

fiz o seguinte, iformei ao componenete

ex:  acbrboleto1.dirarqremessa:='f:\sistema\remessa\banespa';

        acbrboleto1.dirarqremessa:='f:\sistema\remessa\Brasil';

para que ao gerar cada banco, em pastas separadas,   mas o componente nao respeita e grava

os arquivos sempre na pasta f:\sistema\remessa       misturando os arquivos dos outros bancos

e ja com a mudanca que havia mencionado acima, cria-va os arquivos seprados

 

Link para o comentário
Compartilhar em outros sites

  • Solution
1 hora atrás, centuryinf disse:

ex:  acbrboleto1.dirarqremessa:='f:\sistema\remessa\banespa';

        acbrboleto1.dirarqremessa:='f:\sistema\remessa\Brasil';

Eu utilizo vários tb e dá certo, o que faço diferente é:

ex:  acbrboleto1.dirarqremessa:='f:\sistema\remessa\banespa'; para acbrboleto1.dirarqremessa:='f:\sistema\remessa\banespa\';

        acbrboleto1.dirarqremessa:='f:\sistema\remessa\Brasil'; para acbrboleto1.dirarqremessa:='f:\sistema\remessa\Brasil\';

Funciona normal aqui.

  • Curtir 1

_____________

Prates, Agnaldo

Link para o comentário
Compartilhar em outros sites

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