Ir para conteúdo
  • Cadastre-se

dtybel

Membros
  • Total de ítens

    36
  • Registro em

  • Última visita

Tudo que dtybel postou

  1. Aceite minhas desculpas. Não estou mais trabalhando nesse projeto e nem com programação. Lamento.
  2. Não estou mais trabalhando com programas, porém fiquei sabendo que a carteira sem registro foi descontinuada.
  3. Essa classe já foi atualizada inúmeras vezes após a primeira postagem, baixe do SVN.
  4. Juliana, Essa correção não foi enviada, ao atualizar o componente, me deparei com esse erro novamente. Segue em anexo a classe para que você acerte a função "LerRetorno400" a partir da linha 410 até: 426. ACBrBancoBancoob.zip
  5. Juliana, Estou conferindo as atualizações que enviei, pois quero atualizar a pagina, será que quando puder, podia realizar esse commit no SVN ?
  6. Juliana, Enfrentei um caso novo nessa unit essa semana. Tenho um cliente pessoa física. E para pessoa física usa o cpf no arquivo retorno. Por esse motivo emitia erro de CNPJ inválido. Tive que realizar alteração no metodo: procedure TACBrBancoob.LerRetorno400(ARetorno: TStringList); rCNPJCPF := trim( Copy(ARetorno[1],4,14)) ; with ACBrBanco.ACBrBoleto do begin Cedente.Nome := rCedente; case StrToIntDef(Copy(ARetorno[1],2,2),0) of 1: begin Cedente.TipoInscricao:= pFisica; rCNPJCPF := copy(rCNPJCPF,length(rCNPJCPF) - 10,length(rCNPJCPF)); end; else Cedente.TipoInscricao:= pJuridica; end; Cedente.CNPJCPF := rCNPJCPF; ACBrBanco.ACBrBoleto.ListadeBoletos.Clear; end; Exemplo de preenchimento: //Configurar banco ACBrBoleto1.Banco.Numero := DMEmpresa.ClientDataSet2NUM_BANCO.AsInteger; // DADOS DO BANCO with ACBrBoleto1.Banco do begin Digito := 0;//StrtoIntDef(0, 0); Nome := DMEmpresa.ClientDataSet2NOME_CONTA.AsString; Numero := DMEmpresa.ClientDataSet2NUM_BANCO.AsInteger; case DMEmpresa.ClientDataSet2NUM_BANCO.AsInteger of 237 : TipoCobranca := cobBradesco; 1 : TipoCobranca := cobBancoDoBrasil; 341 : TipoCobranca := cobItau; 748 : TipoCobranca := cobSicred; 104 : TipoCobranca := cobCaixaEconomica; 756 : TipoCobranca := cobBancoob; 33,53,008 : TipoCobranca := cobSantander; 21 : TipoCobranca := cobBanestes; else TipoCobranca := cobNenhum; end; end; with ACBrBoleto1.Cedente do begin Nome := DMEmpresa.ClientDataSet1EMPRESA.AsString; Agencia := DMEmpresa.ClientDataSet2AGENC_BANCO.AsString; AgenciaDigito := DMEmpresa.ClientDataSet2DIGITO_AGENC_BANCO.AsString; CodigoCedente := DMEmpresa.ClientDataSet2COD_CEDENTE.AsString; Conta := DMEmpresa.ClientDataSet2NUM_CONTA_BANCO.AsString; ContaDigito := DMEmpresa.ClientDataSet2DIGITO_CONTA_BANCO.AsString; if ( isCPF(tiraMask(DMEmpresa.ClientDataSet1CNPJ.AsString)) ) then TipoInscricao := pFisica else TipoInscricao := pJuridica; CNPJCPF := tiraMask(DMEmpresa.ClientDataSet1CNPJ.AsString); if ( Length(DMEmpresa.ClientDataSet2MODALIDADE.AsString) > 0) then Modalidade := DMEmpresa.ClientDataSet2MODALIDADE.AsString; if ( Length(DMEmpresa.ClientDataSet2CONVENIO.AsString) > 0) then Convenio := DMEmpresa.ClientDataSet2CONVENIO.AsString; end; ACBrBoleto1.DirArqRetorno := ExtractFilePath(txtNomeArquivoRetorno.Text) ; ACBrBoleto1.NomeArqRetorno := ExtractFileName(txtNomeArquivoRetorno.Text) ; ACBrBoleto1.LerRetorno; ACBrBancoob-03-09-2013.rar
  7. Juliana, O problema é o seguinte: Na unit ACbrBoleto no método: SetCNPJCPF Cria um validador. Valida o CNPJ ou CPF Formata Até aí tudo bem, mas no retorno a linha é a seguinte: ACbrBancoSantander.pas Linha 351: if (not LeCedenteRetorno) and (rCNPJCPF <> Cedente.CNPJCPF) then Repare que Cedente.CNPJCPF estará formatado devido o SetCNPJCPF enquanto o rCNPJCPF não estará, uma vez que é obtido do arquivo retorno, desse modo não ficará igual nunca. Alterar a linha 351, para: if (not LeCedenteRetorno) and (rCNPJCPF <> OnlyNumber(Cedente.CNPJCPF)) then Observar outros bancos também. Favor mudar no SVN, pois mudei o meu aqui e funcionou, mas quando eu atualizar, vai voltar novamente.
  8. Boa tarde Juliana, Obrigado pelo retorno.
  9. Juliana, Na função: MontarCodigoBarras do ACBrBancoob: A partir da linha 166 mudar: ACBrTitulo.Parcela := IfThen(ACBrTitulo.Parcela = 0,1,ACBrTitulo.Parcela); {Montando Campo Livre} CampoLivre := padR(ACBrTitulo.ACBrBoleto.Cedente.Modalidade, 2, '0') + padR(ACBrTitulo.ACBrBoleto.Cedente.CodigoCedente, 7, '0') + padR(Copy(ANossoNumero,1,8), 8, '0') + //7 Sequenciais + 1 do digito padR(IntToStr( ACBrTitulo.Parcela), 3, '0'); No layout carnê o local da linha digitável que deveria incrementar de acordo com as parcelas não está fazendo, pois está fixa. Lembrando que o campo Parcela do componente ACBrBoleto deve ser instanciada. Exemplo: Titulo := ACBrBoleto1.CriarTituloNaLista; with Titulo do begin ...etc... Parcela := 1; //Parcela, incrementar de acordo com a parcela incluída no componente. ...etc... end; Exemplo: 1º - PARCELA 7591.02846.00426.644308 00000.100016 6 46290000015052 - OK 2º - PARCELA 7591.02846.00426.644308 00000.280016 4 46290000025088 - ERRADO 7591.02846.00426.644308 00000.280026 4 46290000025088 - CORRETO 3º - PARCELA 7591.02846.00426.644308 00000.350017 9 46290000035122 - ERRADO 7591.02846.00426.644308 00000.350037 9 46290000035122 - CORRETO Um usuário chamado: Wanderson entrou em contato solicitando correção.
  10. Juliana, Em uma nova homologação do boleto para o Sicoob foi rejeitado devido o nome do banco: BANCO COOPERATIVO DO BRASIL S.A. Solicitaram que fosse alterado apenas para: SICCOB. Alterado na classe no método construtor: constructor TACBrBancoob.create(AOwner: TACBrBanco); begin inherited create(AOwner); fpDigito := 0; fpNome := 'SICOOB.'; fpNumero:= 756; fpTamanhoMaximoNossoNum := 7; fpTamanhoCarteira := 1; end; Pode alterar no SVN ? CriticaHomologacaoBoleto.pdf
  11. Olá Juliana, O banco não solicitou que eu removesse para a homologação. Só que fica uma frase estranha sobre cheque na parte de baixo. Eu quero saber como ocultar a nível de programação, não quero que apareça...atualmente eu deletei o componente de lá, mas quando eu atualizar o SVN voltará. Tem alguma propriedade onde eu consiga definir o texto que está lá ? assim eu poderia definir como nada e ficaria certo.
  12. Juliana, Li novamente a crítica e não foi devido ao texto do cheque que houve a recusa não, foi mesmo devido ao Ratio, me desculpe. Como eu faço então para que aquele texto do cheque não apareça nos meus boletos ?
  13. Juliana, Sobre este erro do Ratio ? será alterado no SVN ? Erro: Acessei ACBRBoletoFCFortesFr no componente imgCodigoBarra e alterei a propriedade Ratio de 2 para 3 Outro ERRO no layout: O componente: RLMemo2 com texto padrão sobre recebimento de cheque, saia em todos os boletos, e foi criticado pelo banco. Removi o componente e compilei, minha dúvida, como fica estas alterações no SVN, será corrigido ?
  14. Quer que eu faça o IF (alteração) e poste aqui ?
  15. Use o comando antes de imprimir(pode ser até no botão imprimir): //Definir a versão do fortesReport para o sistema RLConsts.SetVersion(3,70,'B'); Adicione na Uses: RLConsts
  16. Na função: function TACBrBancoBrasil.GerarRegistroTransacao240(ACBrTitulo : TACBrTitulo): String; Na linha 389 Alterei de 1 para 7, solicitado pelo BANCO DO BRASIL - Agência: São Mateus/ES. Após esse correção, foi homologado com sucesso. '7'+ //58 - Cobrança Simples - Colunas 058 a 058 - informar 7 ao invés de 1 (por ser carteira 17). Juliana, verificar possibilidade de acertar no SVN.
  17. Atualizei a versão no SVN ontem para atualizar minha rotina de boletos, então foi onde começou o problema, pois os códigos de barras dos meus boletos começaram a ter inconsistência na leitura(a linha digitável batendo corretamente), realmente a olho nu se via em menor tamanho e por isso foi recusado na homologação do banco do Brasil. Até mesmo com meu Milestone tentando ler o código de barras não lia de jeito nenhum e antes funcionava certinho. Acessei ACBRBoletoFCFortesFr no componente imgCodigoBarra e alterei a propriedade Ratio de 2 para 3 e funcionou certinho a leitura do código de barras pelo meu Milestone. Estou informando para ver se altera no servidor, pois está com esse problema na versão que baixei ontem.
  18. Atilio, Recebi a resposta do banco, segue abaixo: *Obs: Caso vc queria que eu faça um testes com seus dados na minha rotina e imprima em pdf para vc ver, só falar. BANCO DO BRASIL - CSO BELO HORIZONTE – 12/09/2011 RELATÓRIO DE TESTE CBR 641 F87603XX Cliente : XXX Agencia : 4628-0 Conta : 71xx-5 Carteira: 17 Variacao: 01 - 9 Convenio: 17115xx Informamos que o arquivo recebido para teste está de acordo com o padrão definido pelo Banco do Brasil, não apresentando inconsistência referente a leiaute. Salientamos que a informação correta dos dados impostados é de responsabilidade do cliente. No teste é conferido apenas o Leiaute por amostragem. É conveniente a transmissão de arquivo-teste pelo Gerenciador Financeiro, para que seja gerado arquivo-retorno a ser tratado pelo sistema da empresa. Para isso, o arquivo deverá conter a palavra TESTE nas posições 03 a 07 do Header de Arquivo. Alertamos que a não informação da palavra TESTE implica no processamento do arquivo em ambiente de produção, gerando a impressão dos boletos e a cobrança de tarifas. Consideramos os testes finalizados. Atenciosamente, Equipe de testes de leiaute
  19. Olá Atilio, O banco do brasil ainda não homologuei. Foi ontem os boletos para aprovação da agencia. Se quiser posso postar os resultados aqui. Fiz um teste alterando a carteira para 18 e não apesentou erros, contudo minha rotina não está com a versão mais nova do svn.
  20. Olá Juliana Tamizou, Fiz uma pequena alteração na classe TACBrBancoSantander, pois estava emitindo um erro, apenas coloquei a variável: fpTamanhoConta := 11; no constructor. Segue anexo: ACBrBancoSantander.rar Na Classe TACBrCaixaEconomica emitia a seguinte mensagem ao realizar retorno: Agencia\Conta do arquivo inválido Mesmo com as informações passadas corretamente A correção foi: fpTamanhoAgencia := 5; no construtor e Em TACBrCaixaEconomica.LerRetorno240, alterei o trecho: DE: if (not LeCedenteRetorno) and ((rAgencia <> OnlyNumber(Cedente.Agencia)) or (rConta <> OnlyNumber(Cedente.Conta))) then raise Exception.Create(ACBrStr('Agencia\Conta do arquivo inválido')); PARA if (not LeCedenteRetorno) and ((rAgencia <> OnlyNumber(Cedente.Agencia)) or (rConta+rDigitoConta <> OnlyNumber(Cedente.CodigoCedente))) then raise Exception.Create(ACBrStr('Agencia\Conta do arquivo inválido')); Seria até mais apropriado colocar em rConta sendo rCodCedente, mas não alterei, deixei por sua decisão alterar o nome da variável. Segue classe: ACBrCaixaEconomica.rar Agora o retorno está funcionando certinho, segue código do meu retorno: // DADOS DO BANCO with ACBrBoleto1.Banco do begin Digito := 0;//StrtoIntDef(0, 0); Nome := DMEmpresa.ClientDataSet2NOME_CONTA.AsString; Numero := DMEmpresa.ClientDataSet2NUM_BANCO.AsInteger; case DMEmpresa.ClientDataSet2NUM_BANCO.AsInteger of 237 : TipoCobranca := cobBradesco; 1 : TipoCobranca := cobBancoDoBrasil; 341 : TipoCobranca := cobItau; 748 : TipoCobranca := cobSicred; 104 : TipoCobranca := cobCaixaEconomica; 756 : TipoCobranca := cobBancoob; 33,53,008 : TipoCobranca := cobSantander; else TipoCobranca := cobNenhum; end; end; with ACBrBoleto1.Cedente do begin Nome := DMEmpresa.ClientDataSet1EMPRESA.AsString; Agencia := DMEmpresa.ClientDataSet2AGENC_BANCO.AsString; AgenciaDigito := DMEmpresa.ClientDataSet2DIGITO_AGENC_BANCO.AsString; CodigoCedente := DMEmpresa.ClientDataSet2COD_CEDENTE.AsString; Conta := DMEmpresa.ClientDataSet2NUM_CONTA_BANCO.AsString; ContaDigito := DMEmpresa.ClientDataSet2DIGITO_CONTA_BANCO.AsString; CNPJCPF := tiraMask(DMEmpresa.ClientDataSet1CNPJ.AsString); if ( Length(DMEmpresa.ClientDataSet2MODALIDADE.AsString) > 0) then Modalidade := DMEmpresa.ClientDataSet2MODALIDADE.AsString; if ( Length(DMEmpresa.ClientDataSet2CONVENIO.AsString) > 0) then Convenio := DMEmpresa.ClientDataSet2CONVENIO.AsString; end; ACBrBoleto1.NomeArqRetorno := txtNomeArquivoRetorno.Text; ACBrBoleto1.LerRetorno;
  21. Olá amigo, A classe do banco foi alterada devido a caixa manter dois padrões: Segue post explicando: Como você deve fazer agora para passar o código do banco para o componente(Exemplo): // DADOS DO BANCO with ACBrBoleto1.Banco do begin Digito := 0;//StrtoIntDef(0, 0); Nome := DMEmpresa.ClientDataSet2NOME_CONTA.AsString; Numero := DMEmpresa.ClientDataSet2NUM_BANCO.AsInteger; case DMEmpresa.ClientDataSet2NUM_BANCO.AsInteger of 237 : TipoCobranca := cobBradesco; 1 : TipoCobranca := cobBancoDoBrasil; 341 : TipoCobranca := cobItau; 748 : TipoCobranca := cobSicred; 104 : TipoCobranca := cobCaixaEconomica; 756 : TipoCobranca := cobBancoob; 33,53,008 : TipoCobranca := cobSantander; else TipoCobranca := cobNenhum; end; end; //Restante do código, mas a alteração é só a de cima mesmo: with ACBrBoleto1.Cedente do begin Nome := DMEmpresa.ClientDataSet1EMPRESA.AsString; Agencia := DMEmpresa.ClientDataSet2AGENC_BANCO.AsString; AgenciaDigito := DMEmpresa.ClientDataSet2DIGITO_AGENC_BANCO.AsString; CodigoCedente := DMEmpresa.ClientDataSet2COD_CEDENTE.AsString; Conta := DMEmpresa.ClientDataSet2NUM_CONTA_BANCO.AsString; ContaDigito := DMEmpresa.ClientDataSet2DIGITO_CONTA_BANCO.AsString; CNPJCPF := tiraMask(DMEmpresa.ClientDataSet1CNPJ.AsString); if ( Length(DMEmpresa.ClientDataSet2MODALIDADE.AsString) > 0) then Modalidade := DMEmpresa.ClientDataSet2MODALIDADE.AsString; if ( Length(DMEmpresa.ClientDataSet2CONVENIO.AsString) > 0) then Convenio := DMEmpresa.ClientDataSet2CONVENIO.AsString; end; ACBrBoleto1.NomeArqRetorno := txtNomeArquivoRetorno.Text; ACBrBoleto1.LerRetorno; Lembrando que você deve atualizar o ACBr. Erros que enfrentei: Devido 2 Delphis na maquina "Nao foi possivel localizar o ponto de entrada do procedimento @Synautil@BinToInt$qqrx17System@AnsiString na biblioteca de vinculo dinamico synapse.bpl". Resposta: Exclui todos os arquivo bdl (ACBr) da pasta Delphi\projects\bpl e recompilar e reinstalar o ACBr novamente. Versão do Rave diferente do componente(Ainda não consegui remover a 5 e instalar a 5.0.8, quem souber me avisa) [Error] ACBrDANFeCBRave.pas(263): Undeclared identifier: 'OnDecodeImage' Erros ao instalar o ACBrNFeDanfeRVCodeBase: [Error] ACBrDANFeCBRave.pas(259): Undeclared identifier: 'OnDecodeImage' [Error] ACBrDANFeCBRave.pas(259): Not enough actual parameters [Error] ACBrDANFeCBRave.pas(261): Undeclared identifier: 'OnDecodeImage' Resposta: Versão do Rave deve ser Rave 5.0.8 não pode ser diferente Ao instalar o Danfe Rave [Fatal Error] ACBrNFeDanfeRV.dpk(76): Required package 'rave90vcl' not found [Fatal Error] Required package 'rave90vcl' not found Resposta: Remover rave90vcl do requires Uso o pacote Capicom A1 e A3, sem OpenSSL ACBrCapicom.bpl can't be installed because it is not a design time package Resposta: Na tela de instalação clique em "Options" Escolha Designtime and runtime Compile e instale
  22. Olá Juliana, Fizeram umas correções na Unit ACBrBancoob que fiz e percebi algumas alterações muito boas, obrigado e desculpa por algumas variáveis esquecidas e não usadas! Bom, o problema que ao testar a nova revisão, emite erro de layout da carteira inválido, pois está sendo passado para o componente o valor: SR que significa = 1 sem carteira, mas ao montar o código de barras ele coloca o S no lugar do 1 emitindo erro no meu cliente. O que fiz foi alterar no unit para fixar em 1. Assim aparece no corpo do boleto SR, mas fica 1 no código de barras. Ao implementar a opção com registro, é só mudar a condição. Segue em anexo a unit corrigida: ACBrBancoob.rar
  23. Juliana, Na unit: ACBrBancoSantander Existe um erro na função: Procedure TACBrBancoSantander.LerRetorno400 ( ARetorno: TStringList ); Trecho: rCedente := trim(Copy(ARetorno[0],47,30)); rAgencia := trim(Copy(ARetorno[1],18,4)); rConta := trim(Copy(ARetorno[1],22,8))+ Copy(ARetorno[1],384,1); rDigitoConta := Copy(ARetorno[1],385,1); Alterar para: rCedente := trim(Copy(ARetorno[0],47,30)); rAgencia := trim(Copy(ARetorno[1],18,4)); rConta := trim(Copy(ARetorno[1],22,8))+ Copy(ARetorno[1],384,1); rConta := padR( OnlyNumber(rConta),fpTamanhoConta,'0'); rDigitoConta := Copy(ARetorno[1],385,1); Senão emite erro de conta inválida, mas é só questão de formatação dos zeros a esquerda. Anexo: ACBrBancoSantander.rar
  24. Olá Juliana, Não sei quem alterou a função que eu fiz LerRetorno240, contudo parou de funcionar alguns pontos. Refiz as correções, segue abaixo a função funcionando, testei agora: ACBrCaixaEconomica.rar procedure TACBrCaixaEconomica.LerRetorno240(ARetorno: TStringList); var ContLinha: Integer; Titulo : TACBrTitulo; Linha, rCedente, rCNPJCPF, rAgencia, rConta: String; begin ContLinha := 0; if (copy(ARetorno.Strings[0],143,1) <> '2') then raise Exception.Create(ACBrStr(ACBrBanco.ACBrBoleto.NomeArqRetorno + 'não é um arquivo de retorno do '+ Nome)); rCedente := trim(Copy(ARetorno[0],73,30)); rAgencia := trim(Copy(ARetorno[0],53,5)); rConta := trim(Copy(ARetorno[0],59,6)); ACBrBanco.ACBrBoleto.DataArquivo := StringToDateTimeDef(Copy(ARetorno[1],192,2)+'/'+ Copy(ARetorno[1],194,2)+'/'+ Copy(ARetorno[1],198,2),0, 'DD/MM/YY' ); ACBrBanco.ACBrBoleto.DataCreditoLanc := StringToDateTimeDef(Copy(ARetorno[1],200,2)+'/'+ Copy(ARetorno[1],202,2)+'/'+ Copy(ARetorno[1],204,2),0, 'DD/MM/YY' ); { Tipo de Inscrição da Empresa ou Pessoa Física Código que identifica o tipo de inscrição da Empresa ou Pessoa Física perante uma Instituição governamental: ‘0’ = Não informado ‘1’ = CPF ‘2’ = CGC / CNPJ ‘9’ = Outros } rCNPJCPF := trim( Copy(ARetorno[0],19,14)) ; case StrToIntDef(Copy(ARetorno[1],18,1),0) of 1 : rCNPJCPF:= trim( Copy(ARetorno[1],19,14)); 2 : rCNPJCPF:= trim( Copy(ARetorno[0],19,14)); else rCNPJCPF:= trim( Copy(ARetorno[0],19,14)); end; with ACBrBanco.ACBrBoleto do begin Cedente.CNPJCPF := rCNPJCPF; Cedente.Agencia := rAgencia; Cedente.Conta := rConta; if (not LeCedenteRetorno) and (rCNPJCPF <> OnlyNumber(Cedente.CNPJCPF)) then raise Exception.Create(ACBrStr('CNPJ\CPF do arquivo inválido: '+ rCNPJCPF + ' <> '+ Cedente.CNPJCPF)); //if (not LeCedenteRetorno) and ((rAgencia <> OnlyNumber(Cedente.Agencia))) then //raise Exception.Create(ACBrStr('Agencia\Conta do arquivo inválido '+rAgencia)); Cedente.Nome := rCedente; Cedente.AgenciaDigito := '0'; case StrToIntDef(Copy(ARetorno[1],18,1),0) of 1: Cedente.TipoInscricao:= pFisica; 2: Cedente.TipoInscricao:= pJuridica; else Cedente.TipoInscricao := pOutras; end; ACBrBanco.ACBrBoleto.ListadeBoletos.Clear; end; for ContLinha := 1 to ARetorno.Count - 2 do begin Linha := ARetorno[ContLinha] ; if Copy(Linha,14,1)= 'T' then //segmento T - Só cria após passar pelo seguimento T depois U Titulo := ACBrBanco.ACBrBoleto.CriarTituloNaLista; with Titulo do begin if Copy(Linha,14,1)= 'T' then //segmento T begin SeuNumero := copy(Linha,59,11); NumeroDocumento := copy(Linha,48,9); OcorrenciaOriginal.Tipo := CodOcorrenciaToTipo(StrToIntDef( copy(Linha,16,2),0)); //05 = Liquidação Sem Registro Vencimento := StringToDateTimeDef( Copy(Linha,74,2)+'/'+ Copy(Linha,76,2)+'/'+ Copy(Linha,78,2),0, 'DD/MM/YY' ); ValorDocumento := StrToFloatDef(Copy(Linha,82,15),0)/100; ValorRecebido := StrToFloatDef(Copy(Linha,82,15),0)/100; NossoNumero := copy( Copy(Linha,48,9),Length( Copy(Linha,48,9) )-TamanhoMaximoNossoNum ,TamanhoMaximoNossoNum); Carteira := Copy(Linha,40,2); end //if segmento else if Copy(Linha,14,1)= 'U' then //segmento U begin if StrToIntDef(Copy(Linha,138,6),0) <> 0 then DataOcorrencia := StringToDateTimeDef( Copy(Linha,138,2)+'/'+ Copy(Linha,140,2)+'/'+ Copy(Linha,142,4),0, 'DD/MM/YYYY' ); if StrToIntDef(Copy(Linha,146,6),0) <> 0 then DataCredito:= StringToDateTimeDef( Copy(Linha,146,2)+'/'+ Copy(Linha,148,2)+'/'+ Copy(Linha,150,4),0, 'DD/MM/YYYY' ); ValorIOF := StrToFloatDef(Copy(Linha,63,15),0)/100; ValorAbatimento := StrToFloatDef(Copy(Linha,48,15),0)/100; ValorDesconto := StrToFloatDef(Copy(Linha,33,15),0)/100; ValorMoraJuros := StrToFloatDef(Copy(Linha,18,15),0)/100; ValorOutrosCreditos := StrToFloatDef(Copy(Linha,123,15),0)/100; ValorDespesaCobranca := StrToFloatDef(Copy(Linha,108,15),0)/100; ValorOutrasDespesas := StrToFloatDef(Copy(Linha,108,15),0)/100; end;//if Copy(Linha,14,1)= 'U' then //segmento U end; //with end; //for end;
×
×
  • 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.