-
Total de ítens
152 -
Registro em
-
Última visita
-
Days Won
4
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Posts postados por denerbuzato
-
-
Alguém tem alguma sugestão de como resolver o problema apresentado?
-
Bom dia Juliana,
Poderia por favor disponibilizar as alterações no svn?
Obrigado.
-
Bom dia Juliana,
Poderia por favor disponibilizar as alterações no svn?
Obrigado.
-
Boa tarde a todos,
Espero que as minhas alterações sejam disponibilizadas no SVN, pois recebi o seguinte e-mail do banco:
Hoje pela manhã (sex 20/11/2015 10:09):
CitarDener, bom dia!
Os boletos foram aprovados ok?
Só fica faltando para lhe responder o arquivo remessa. Logo que tiver o retorno lhe informo
Abraços
Rodrigo G RODRIGUES
Especialista Vendas I | HSBC Bank Brasil S.A.
Payments Cash Management Sales - Empresas MG
Rua Paraíba, 550 - 16º Andar - Funcionários - Belo Horizonte/MG - CEP 30.130-140Agora a tarde (sex 20/11/2015 12:40):
CitarDener,
complementando a informação, arquivo remessa também aprovado ok?
Abraços
Rodrigo G RODRIGUES
Especialista Vendas I | HSBC Bank Brasil S.A.
Payments Cash Management Sales - Empresas MG
Rua Paraíba, 550 - 16º Andar - Funcionários - Belo Horizonte/MG - CEP 30.130-140Sendo assim, a cobrança foi homologada pelo banco. Sendo necessário os ajustes proposto no post.
Estou no aguardo.
Obrigado.
-
Boa tarde,
Funcionou com a sugestão oferecida, apesar de não concordar em ter que recalcular o digito uma vez que ele já faz parte do nosso numero e o manual contempla ele, mas irei utilizar desta maneira para evitar ficar com o componente desatualizado.
Obrigado pela atenção.
-
Prezados,
Estou homologando a cobrança bancária do banco HSBC, porém, foi rejeitado tanto o boleto quanto o arquivo remessa CNAB 400.
Resposta do Banco sobre o arquivo remessa:
CitarSegue pontos a serem alterados no arquivo remessa:
HEADER
. Nº da Linha: 0001 Tamanho do registro igual a 396 bytes
. Nº da Linha: 0001 Colunas: 034 a 044 Contrato COB inválido
. Nº da Linha: 0001 Colunas: 077 a 079 Código do banco inválido
. Nº da Linha: 0001 Colunas: 080 a 094 Nome do banco inválido
. Nº da Linha: 0001 Colunas: 095 a 100 Data da gravação do arquivo inválida
. Nº da Linha: 0001 Colunas: 395 a 400 Número sequencial de registro inválidoSegue algumas considerações sobre como resolver alguns dos problemas que observei.
Pelo visto essa informação deveria constar tanto a agencia quanto a conta para que dê os 11 dígitos conforme diz o manual. No meu caso a agencia sendo 1256 e a conta 00775-17, deveria constar 12560077517.
Liguei para o suporte do HSBC no telefone 31-3503-5342 e falei com Sr. Rodrigo G. Rodrigues o qual está acompanhando o processo de homologação e esclareci com ele o seguinte:
A conta do HSBC é de 7 números, porém, será sempre 5 + 2, sendo os 5 primeiros da conta e 2 do dígito. Isso é padrão do HSBC no mundo todo.
Assim sendo, observei que alguns pontos da unit “ACBrBancoHSBC” não estão trazendo os dados da conta corretos, pois como ele atribui 7 para conta, o numero da conta sem o digito que é 00775, e a conta fica 0000775. Dessa maneira, nos locais que ele junta conta + digito para resultar em 7, ele não faz pois a conta já está com 7 digitos.
Exemplo:
wConta := PadLeft( OnlyNumber(Conta) + ContaDigito, 7, '0');
Neste caso a conta já está com 7 digitos e não acrescenta o digito da conta, fazendo com que fique errado o valor final da variável. Fica com valor 0000775 sendo que o correto seria 00775 para que ao somar com o digito fique 0077517.
Vamos as modificações:
No “create” do “ACBrBancoHSBC”, na linha 119, a conta está sendo fixada com tamanho de 7.
fpTamanhoConta := 7;
Sugiro que seja alterado para:
fpTamanhoConta := 5;
Na procedure “GerarRegistroHeader400” na linha 265 consta o seguinte:
wConta + // Conta Corrente //Removi agencia repetido //ALFEU MOTA //
Sugiro a alteração para:
wAgencia + wConta + // Conta Corrente (Agência + Conta Corrente)
Visto que no manual é tratado agencia e conta junto totalizando 11 digitos.
Também na linha 356 onde consta
PadLeft(OnlyNumber(Cedente.Agencia) +
OnlyNumber(Cedente.Conta)+Cedente.ContaDigito, 11, '0') +
Deverá ser alterado para:
PadLeft(OnlyNumber(Cedente.Agencia) +
OnlyNumber(Cedente.Conta)+Cedente.ContaDigito, 11, '0') + //Conta Corrente (Agência + Conta Corrente)
Visto que no manual é tratado agencia e conta junto totalizando 11 digitos.
Obs: Lembrando que para as variáveis ficarem corretas, o tamanho da conta tem que ficar 5.
Resposta do Banco sobre o boleto:
CitarBOLETOS REPROVADOS
AJUSTES NA LINHA DIGITÁVEL - (47 Posições)
- A empresa deverá rever a criação da linha digitável. Favor verificar o manual técnico do código de barras para montagem correta dos dados, pois no terceiro bloco, o campo da conta da empresa está incorreto.
Manual na página 19:
AJUSTES NO CÓDIGO DE BARRAS - (44 posições)- A empresa deverá rever a montagem dos dados seguindo o manual técnico do código de barras, pois é necessário corrigir os dados da Linha Digitável para o Código de Barras.
Minhas Considerações:
Observei no fonte “ACBrBancoHSBC.pas” na function “MontarCodigoBarras” na linha 224 consta o seguinte:
PadLeft(IfThen(ACBrBoleto.Cedente.Conta[1] = '0', RightStr(OnlyNumber(ACBrBoleto.Cedente.Conta),6) +
Observem que a conta está ficando com 6 digitos, sendo que o correto seria 7. Como iremos setar a conta para 5 digitos, o copy deverá ser de 5 para que ao somar com o digito resulte em 7.
Sugiro a alteração para:
PadLeft(IfThen(ACBrBoleto.Cedente.Conta[1] = '0', RightStr(OnlyNumber(ACBrBoleto.Cedente.Conta),5) +
Fiz essa alterações no componente e enviei para o banco para novos testes.
Obs.: Embora o desenvolvimento do arquivo retorno irei fazer após a homologação da cobrança, resolvi fazer uma conferencia entre o código fonte e o manual, onde observei alguns pontos a ajustar, sendo eles.
Na procedure "LerRetorno400" é atribuído os seguintes valores para as variáveis:
rCodigoCedente := Copy(ARetorno[0], 109, 10);
rConta := trim(Copy(ARetorno[0], 38, 6));
rDigitoConta := Copy(ARetorno[0], 44, 1);
No manual na página 16, observei que na posição 109 com tamanho de 11 contém a seguinte informação "Uso do Banco", então embora não tenha um arquivo retorno, o copy está errado.Ajustei para o seguinte:
rCodigoCedente := Copy(ARetorno[0], 109, 11);
rConta := trim(Copy(ARetorno[0], 38, 5));
rDigitoConta := Copy(ARetorno[0], 43, 2);Segue manual e unit alterada para disponibilizar.
Grato.
- 2
-
Boa tarde,
Tentei fazer exatamente isso, porém, não consigo chamar a função. Segue um pedaço do meu código para ver se consegue me dizer como usar
if Open.Execute then
begin
//Configurar banco
ConfiguraComponenteAcBr;
//
ACBrBoleto1.NomeArqRetorno := ExtractFileName(Open.FileName);
ACBrBoleto1.DirArqRetorno := ExtractFilePath(Open.FileName);
ACBrBoleto1.LerRetorno;
for i := 0 to ACBrBoleto1.ListadeBoletos.Count-1 do
begin
if ACBrBoleto1.ListadeBoletos.Objects.ValorRecebido > 0 then
begin
// Grava a baixa da conta - recebimentos
try
... aqui tem um sql para localizar qual conta baixar com o filtro, que é o ponto que estou com problema...qryCRBLanc.Parameters.ParamByName('NossoNumero').Value := StrToInt(ACBrBoleto1.ListadeBoletos.Objects.NossoNumero);
... caso ele encontre o registro ele processa as baixas mais abaixo.
Obs.: Esse digito que você me ajudará a calcular vou usar concatenando com o nosso numero para localizar o lançamento.
Grato
-
Bom dia Juliana,
Obrigado pelo retorno. Realmente sabia que poderia afetar outros usuários, tanto que no início do post dei duas opções para desenvolvimento. Só que a criação do dígito no "ACBrBoleto" atenderia apenas o SICOOB, e pensei que seria mais fácil retirar o dígito do nosso numero (já que ele viria com 8) para quem usa com ele com 7, do que não ter ele para o caso de quem precisa. É melhor ter do que não ter. Pois tendo pode ser tratado para retirar, agora não tendo não tem como fazer nada.
Observe que quem usa assim, está usando errado, pois não está de acordo com o manual. Como no boleto e remessa estão contemplando o dígito, logo o retorno também deveria contemplar.
A sua sugestão para calcular o digito me chamou atenção, porém não consegui usar ela. Poderia me dar um exemplo de como usar? Já que pelo visto o retorno continuará em desacordo com o manual.
Obs.: Fiz a atualização do componente hoje pela manhã "revisão 10489" e fiz novamente o ajuste do copy como estou usando.
Grato.
-
Bom dia,
Estou tentando abrir um post novo, porém, gostaria de anexar dois arquivos ".pdf". Um arquivo tem 655kb e outro 443kb dando um total de 1098kb. Compactando os dois consigo chegar a 1034kb. Não queria abrir dois tópicos, um para cada arquivo, mas sim anexar os dois no mesmo tópico.
Talvez a solução seria aumentar a permissão para o tamanho total do arquivo a ser anexado. Minha conta esta limitada a 1MB, porém, no geral estou usando 1MB dos 5MB que posso usar. Verifiquei isso em: "Meus Anexos" onde diz que uso 22%
Observação: Neste post, iria anexar três telas, nas quais estava demonstrando os itens citados. Essas imagens são de 52KB, 36BK e 17KB, dando um total de 105KB, ou seja, bem menor que 1MB e apresenta a mesma mensagem: "Você só tem permissão para fazer o uploade de 1024kb."
Como proceder neste caso?
Desde já obrigado.
-
Boa tarde Juliana,
Pela manhã postei alguns itens que observei inconsistência no Banestes.
Revolvi fazer mais testes e conferir os dados ente manual com os fontes onde encontrei mais ajustes a serem realizados. Segue considerações como sequência do post anterior.
4 - GerarRegistroHeader400
Nesta procedure observei que a Conta está copiando a partir 2º posição, sendo que o correto seria da 1º. O Banestes não possui digito na conta, sendo assim, pode-se retirar o digito da conta, pois ele sempre ficará vazio.
Código atual:
PadLeft(OnlyNumber(Copy(Trim(Conta),2,10)+trim(ContaDigito)), 11, '0')+ // Código da Empresa no Banco
Como deveria ficar:
PadLeft(OnlyNumber(Copy(Trim(Conta),1,11)), 11, '0')+ // Conta Corrente
Alterações em comentários no código: No local onde passa "IntToStrzero(Numero,3)" incluído comentário para identificar que se trata do código do banco "021" e no local onde está "PadRight('BANESTES', 8)" com o comentário "Código e Nome do Banco(237 - Bradesco)" alterado comentário para "Nome do Banco (Banestes)"
Obs.: Manual página 07
5 - GerarRegistroTransacao400
Nesta procedure observei que a Conta está copiando a partir 2º posição, sendo que o correto seria da 1º. O Banestes não possui digito na conta, sendo assim, pode-se retirar o digito da conta, pois ele sempre ficará vazio.
Código atual:
PadLeft(OnlyNumber(Copy(Trim(Cedente.Conta),2,10)+trim(cedente.ContaDigito)), 11, '0')+ // Codigo da Empresa no Banco
Como deveria ficar:
PadLeft(OnlyNumber(Copy(Trim(Cedente.Conta),1,11)), 11, '0')+ // Conta Corrente
Obs.: Manual página 08
6 - LerRetorno400
Nesta procedure foram observados variáveis desnecessárias e copy de posições erradas.
Removido a variável “rDigitoConta” e uso dela “rDigitoConta := Copy(ARetorno[0],38,1);” pois o Banestes não utiliza digito de conta.
Removido a variável “rAgencia” e uso dela “rAgencia := trim(Copy(ARetorno[0],27,4));” pois no caso do arquivo retorno não consta no layout a agencia do cedente. A única agencia que vem mencionada no layout é a agencia onde foi recebido o titulo, porém, essa agencia não seria necessário usar.
Ajustado copy da conta corrente.
Código atual:
rConta := trim(Copy(ARetorno[0],33,5));
Como deveria ficar:
rConta := trim(Copy(ARetorno[0],27,11));
Removido códigos: “Cedente.AgenciaDigito:= '0';” / “Cedente.Agencia := rAgencia;” / “Cedente.ContaDigito:= rDigitoConta;” pois não está sendo necessário no arquivo retorno.
Retirado comparação de "(rAgencia <> OnlyNumber(Cedente.Agencia)" pois não mais está usando a agencia no retorno.
Uma informação que não consegui ajustar foi o "Código Lançamento (Aviso de Movimentação)" que no manual diz que está na posição 83 com 2 posições. Observei que no fonte a propriedade "Carteira" está sendo atribuída com sendo este aviso de movimentação. Mas logo abaixo no código a mesa "Carteira" está sendo atribuída com a informação correta.
1 Vez:
Carteira := copy(Linha,83,3);
2 Vez
Carteira := Copy(Linha,108,1);
Removido a primeira citação da carteira "Carteira := copy(Linha,83,3);"
Não sei qual propriedade deveria ser usada para armazenar o "Código Lançamento (Aviso de Movimentação)" para fazer o copy correto desta posição. "Copy(Linha,83,2);". Por enquanto este item não foi implementado.
Obs.: Manual página 13 e 14
Segue a unit modificada com essas novas informações.
Grato.
-
Bom dia!
Como não tive sugestões quanto a solução para o problema apresentado, resolvi por uma solução mais simples. Resolvi usar a sugestão 1, ajustar o copy do nosso numero. Assim, não precisaremos alterar o ACBrBoleto.
Código atual:
NossoNumero := copy( Copy(Linha,63,11),Length( Copy(Linha,63,11) )-TamanhoMaximoNossoNum+1 ,TamanhoMaximoNossoNum);
Como deveria ficar:
NossoNumero := copy( Copy(Linha,63,12),Length( Copy(Linha,63,12) )-TamanhoMaximoNossoNum+1 ,TamanhoMaximoNossoNum);
Segue a unit modificada para atualização no SVN.
Grato.
-
Bom dia Juliana,
Após atualizar o componente agora pela manhã, “revisão 10475”, para fazer uso da propriedade “modalidade” na composição da chave ASBACE, observei que ocorreram diferenças nos cálculos. Também os arquivos de remessa e retorno apresentaram problemas.
Após localizar o problema, resolvi consultar o manual para saber quem estava correto.
Segue minhas considerações:
1 - CalcularCampoASBACE
Nesta função, observei que o nosso numero está copiando a partir 2º posição, sendo que o correto seria da 1º. Também no numero da conta corrente está sendo copiadas apenas 10 posições, a parir da 2º posição, sendo que o correto seria 11 a partir da 1º. O Banestes não possui digito na conta, sendo assim, pode-se retirar o digito da conta, pois ele sempre ficará vazio.
Obs.: Manual página 27
Código atual:
cLivreAsbace := copy(ACBrTitulo.NossoNumero,2,8) +
copy(trim(ACBrTitulo.ACBrBoleto.Cedente.Conta), 2, 10) +
ACBrtitulo.ACBrBoleto.Cedente.ContaDigito +
IfThen(ACBrtitulo.ACBrBoleto.Cedente.Modalidade = '',
'4', ACBrtitulo.ACBrBoleto.Cedente.Modalidade) +
IntToStrZero(fpNumero,3);
Como deveria ficar:
cLivreAsbace := copy(ACBrTitulo.NossoNumero,1,8) +
copy(trim(ACBrTitulo.ACBrBoleto.Cedente.Conta), 1, 11) +
IfThen(ACBrtitulo.ACBrBoleto.Cedente.Modalidade = '',
'4', ACBrtitulo.ACBrBoleto.Cedente.Modalidade) +
IntToStrZero(fpNumero,3);
2 - GerarRegistroTransacao400
Nesta procedure observei que o nosso numero está copiando a partir 2º posição, sendo que o correto seria da 1º.
Obs.: Manual página 08
Código atual:
PadRight(Copy(NossoNumero, 2, 8) + DigitoNossoNumero, 10, '0') +
Como deveria ficar:
PadRight(Copy(NossoNumero, 1, 8) + DigitoNossoNumero, 10, '0') +
3 - LerRetorno400
Nesta procedure observei que o nosso numero está copiando a partir 64º posição e 9 posições, sendo que o correto seria da 63º e 10 posições.
Obs.: Manual página 14
Código atual:
NossoNumero := Copy(Linha,64,9);
Como deveria ficar:
NossoNumero := Copy(Linha,63,10);
Segue a unit modificada para atualização no SVN.
Grato.
-
Boa tarde,
Alguém tem alguma sugestão para a solução deste problema?
-
Prezados,
Estou desenvolvendo uma rotina de baixa do arquivo retorno para o banco SICOOB.
O boleto e o arquivo remessa já foram homologados pelo banco e meu cliente já está utilizando. Agora que ele recebeu um arquivo de retorno onde irei programar esta rotina.
Observei que o nosso numero para o SICOOB é 7. Ele calcula o digito e no final fica com 8.
Meu sistema grava o nosso numero completo no banco de dados, ou seja, os 8 dígitos.
A composição do código de barras, está sendo composta por 8 dígitos.
{Montando Campo Livre}
CampoLivre := PadLeft(trim(ACBrTitulo.ACBrBoleto.Cedente.Modalidade), 2, '0') +
PadLeft(trim(ACBrTitulo.ACBrBoleto.Cedente.CodigoCedente), 7, '0') +
PadLeft(Copy(ANossoNumero,1,8), 8, '0') + //7 Sequenciais + 1 do digito
IntToStrZero(Max(1,ACBrTitulo.Parcela),3);
Se analisarmos os layouts tanto do arquivo remessa, quanto do arquivo retorno, observaremos que o nosso numero começa na posição 63 e termina na posição 74 com o digito.
Na geração do arquivo remessa, está sendo levado os 8 dígitos.
PadLeft( NossoNumero + DigitoNossoNumero, 12, '0') + // Nosso Número + //nosso numero com digito
Já no arquivo retorno, ele não está considerando o digito, ou seja, apenas os 7 dígitos.
NossoNumero := copy( Copy(Linha,63,11),Length( Copy(Linha,63,11) )-TamanhoMaximoNossoNum+1 ,TamanhoMaximoNossoNum);
Desse jeito, meu sistema não consegue localizar o nosso numero no banco de dados e não consegue realizar a baixa.
Para resolver isso, poderíamos usar o copy de 12, para contemplar o digito
NossoNumero := copy( Copy(Linha,63,12),Length( Copy(Linha,63,12) )-TamanhoMaximoNossoNum+1 ,TamanhoMaximoNossoNum);
Ou criar uma propriedade para o digito “DigitoNossoNumero”para que eu possa concatenar no momento de localizar. Na remessa existe essa propriedade, já no retorno não.
Se tiver essa propriedade, usaríamos assim:
DigitoNossoNumero:= copy( Copy(Linha,74,1);
Só que para incluir o “DigitoNossoNumero” teria que alterar o “ACBrBoleto” já a alteração do copy não precisaria, seria apenas no “ACBrBancoBancoob”
O que acham? Alguém tem alguma sugestão?
Rotina “LerRetorno400” da unit “ACBrBancoBancoob”
-
Bom dia Weber,
Acredito que os valores a serem usados seriam esses:
ACBrBoleto1.Cedente.Agencia := 3031
ACBrBoleto1.Cedente.AgenciaDigito := 7
ACBrBoleto1.Cedente.Conta := 23449
ACBrBoleto1.Cedente.ContaDigito := 4
ACBrBoleto1.Cedente.CodigoCedente := 190926Obs.: No seu caso o problema acredito estar no digito da agencia e o codigo do cedente faltou um digito.
Seguindo os dados da planilha que você postou acima.
-
Boa tarde Juliana,
Vou usar a propriedade "modalidade" como sugeriu, porém, foi necessário ajustar a unit do banestes "ACBrBancoBanestes" para usar essa propriedade, pois antes estava com valor "4" fixo e agora terá que usar o valor da modalidade.
Fiz a alteração e segue a unit em anexo para inclusão no SVN.
Grato.
-
Boa tarde Carlos,
Que bom que atendeu sua necessidade.
Agora vamos aguardar os moderadores subirem no SVN.
- 1
-
Boa tarde João de Carlos,
Qual é sua dúvida e/ou necessidade?
-
Bom dia Juliana,
Observei a propriedade que você pediu, porém não entendi que ela funcione para o fim do assunto do post, pois ela não permite usar variações de códigos para cobrança registrada, como é o assunto em questão.
Observe como é essa propriedade:
TACBrCaracTitulo = (tcSimples,tcVinculada,tcCaucionada,tcDescontada,tcVendor);
Se eu estiver enganado, favor me dizer então como usar essa propriedade para cobrança com registro no código 6.
Caso eu esteja certo, favor analisar a solução proposta pois depois que implementei consegui ter os resultados que necessitava. O problema é que quando atualizar o componente, terei que sempre ficar alterando. Por isso se fosse possível subir seria muito bom.
Obrigado.
- 1
-
Prezados,
Como não obtive resposta no post, resolvi fazer a implementação necessária para atender essa necessidade.
Na unit “ACBrBoleto” criei “TipoRegCob” e na unit “ACBrBancoBanestes” na function CalcularCampoASBACE passo o “TipoRegCob” no lugar onde estava fixo o valor "4" fixo, onde ele poderá ter os valores 2, 3, 4, 5, 6 ou 7 de acordo como for alimentado.
Ficou assim:
ACBrBoleto
TACBrTipoRegCob = (SemRegitro=2, Caucionada=3, ComRegistroTp4=4, ComRegistroTp5=5,ComRegistroTp6=6,ComRegistroTp7=7);
ACBrBancoBanestes
cLivreAsbace := copy(ACBrTitulo.NossoNumero,1,8)+
copy(trim(ACBrTitulo.ACBrBoleto.Cedente.Conta), 1, 11)+
ACBrtitulo.ACBrBoleto.Cedente.ContaDigito+
VarToStr(ACBrtitulo.ACBrBoleto.Cedente.TipoRegCob)+
IntToStrZero(fpNumero,3);No meu caso estou usando assim:
case AnsiIndexStr(qryBanco.FieldByName('TIPO_REG_COB').AsString,['2','3','4','5','6','7']) of
0: ACBrBoleto1.Cedente.TipoRegCob := SemRegitro;
1: ACBrBoleto1.Cedente.TipoRegCob := Caucionada;
2: ACBrBoleto1.Cedente.TipoRegCob := ComRegistroTp4;
3: ACBrBoleto1.Cedente.TipoRegCob := ComRegistroTp5;
4: ACBrBoleto1.Cedente.TipoRegCob := ComRegistroTp6;
5: ACBrBoleto1.Cedente.TipoRegCob := ComRegistroTp7;
-1: ACBrBoleto1.Cedente.TipoRegCob := SemRegitro;
End;Sendo assim, na composição da Chave Asbase o valor estará de acordo como for alimentado.
Caso queiram subir para o SVN para que outros possam usar, está em anexo as units
Abraço a todos!
- 1
-
Prezados,
Alguém saberia me dizer se já foi solucionado o problema da function "CalcularCampoASBACE" no "ACBrBancoBanestes" onde o componente passa o valor "4" na posição registro sendo que este valor pode mudar de acordo com a tipo de cobrança.
Estou olhando o manual do banestes e na página 24 diz assim:
No BANESTES a Chave ASBACE.
NNNNNNNNCCCCCCCCCCCR021DD
Onde:
NNNNNNNN --------------------------------- > Nosso Número (sem os dois dígitos).
CCCCCCCCCCC -------------------------- > Conta Corrente.
R > 2- Sem registro; 3- Caucionada; 4,5,6 e 7-Cobrança com registro.
021 --------------------------------------------- > Código do BANESTES .
DD ---------------------------------------------- > Dígitos Verificadores.
Isso quer dizer que o campo registro pode variar entre 2, 3, 4, 5, 6 e 7 e atualmente o componente passa 4 fixo. Como em Janeiro deste ano foi levantado esta questão, gostaria de saber se alguém já solucionou e talvez não tenham disponibilizado para subir no svn, pois estou como o componente atualizado e ainda continua com os valor 4 fixo, não possibilitando passar o tipo de cobrança desejada.
Desde já obrigado.
-
Excelente a iniciativa e resultado da implementação.
Obrigado a todos!
-
Resolvido com as soluções apresentadas.
Obrigado a todos!
- 1
-
Boa tarde Carlos,
Bem vinda sua sugestão. Também senti essa necessidade.
Pois tanto a quantidade como o valor unitário terão a formatação de casas decimais somente quando necessário.Sua implementação deu este bom resultado como os anexos.
Antes
Depois
Ficou mais limpo a leitura dos valores de quantidade e valor unitário
- 1
Duvida sobre Layout de Remessa de Boleto da Caixa
em ACBrBoleto
Postado
Bom dia!
Você pode criar um campo em sua tabela "cont_remessa_bancotal" por exemplo, e durante o dia inicializa com 0.
Quando for gerar a remessa incrementa essa campo e passa o valor dele para o componente. No caso terá o valor de 1.
ACBrBoleto1.GerarRemessa( SeqRemessa );
A cada remessa o valor será incrementado durante aquele dia. No dia seguinte você volta o contador para 0 e ao gerar as remessas entrará no processo novamente.