-
Total de ítens
735 -
Registro em
-
Última visita
-
Days Won
1
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que Antonio Gomes postou
-
28, defined ver350. mas essa paradinha ai, achei na unit ldapsend.pas, synapse, pasta \ACBr2wc\Fontes\Terceiros\synalist e nesse site https://wiki.freepascal.org/$warn Inclusive, se seguir a linha de raciocínio dessa unit, reduz um pouco.. analisando o acbr.inc, o meu fica assim // Para Remover Warnings de CAST causados por WideString/String/AnsiString, descomente a linha abaixo. (Apenas Delphi) {$DEFINE REMOVE_CAST_WARN} mas ta entrando nessa linha, e desligando a diretiva que eu coloquei true, lá no instalador: comentei ali, parou as tranqueiras {$IFNDEF DELPHIXE2_UP} {$IFDEF BORLAND} // {$UNDEF REMOVE_CAST_WARN} {$ENDIF} {$ENDIF}
-
Compilação com fontes na uses - Excesso de warnings e hints
um tópico no fórum postou Antonio Gomes Dúvidas Gerais sobre o ACBr
Olá a todos devs do Acbr: Uma compilação simples, mas usando os fontes na library path, tem gerado um tanto quanto de hints e warnings. Variáveis perdidas, sem uso, retornos sem serem atribuídos, enfim, aparece de tudo, o warning do 'DELAYED' é campeão, deprecated (essa deprecated do lado de cá, tudo bem, mas nos fontes que quem mexeu... penso que deveria corrigir, não?), inicializacoes de variaveis, não usadas (never used), variaveis não inicializadas, conversoes de variants -> ansistring, com potencial perda de dados. coisa do tipo: [dcc32 Warning] ACBrBoletoW_Sicredi_API.pas(230): W1000 Symbol 'UTF8Decode' is deprecated: 'Use UTF8ToWideString or UTF8ToString' [dcc32 Warning] JsonsUtilsEx.pas(244): W1057 Implicit string cast from 'TSymbolName' to 'string' [dcc32 Warning] JsonsUtilsEx.pas(273): W1057 Implicit string cast from 'TSymbolName' to 'string' [dcc32 Hint] ACBrCTeWebServices.pas(2032): H2164 Variable 'aEvento' is declared but never used in 'SalvarEventos' [dcc32 Hint] ACBrCTeWebServices.pas(2032): H2164 Variable 'aProcEvento' is declared but never used in 'SalvarEventos' [dcc32 Warning] pnfsEnvLoteRpsResposta.pas(938): W1058 Implicit string cast with potential data loss from 'Variant' to 'AnsiString' [dcc32 Warning] pnfsLerListaNFSe.pas(1342): W1036 Variable 'DataRecebimentoTemp' might not have been initialized [dcc32 Hint] pnfsNFSeR.pas(244): H2077 Value assigned to 'TNFSeR.LerRPS' never used [dcc32 Hint] pnfsNFSeR.pas(5296): H2164 Variable 'vLinha' is declared but never used in 'TNFSeR.LerRPS_Smarapd' [dcc32 Warning] ACBrEscPosEpson.pas(724): W1057 Implicit string cast from 'AnsiString' to 'string' [dcc32 Warning] ACBrEscPosEpson.pas(736): W1057 Implicit string cast from 'AnsiString' to 'string' [dcc32 Warning] ACBrEscPosEpson.pas(750): W1057 Implicit string cast from 'AnsiString' to 'string' [dcc32 Warning] ACBrEscPosEpson.pas(778): W1057 Implicit string cast from 'AnsiString' to 'string' [dcc32 Warning] ACBrEscPosEpson.pas(778): W1058 Implicit string cast with potential data loss from 'string' to 'AnsiString' [dcc32 Warning] ACBrEscPosEpson.pas(779): W1000 Symbol 'LeftStr' is deprecated: 'Moved to the AnsiStrings unit' [dcc32 Warning] ACBrEscPosEpson.pas(782): W1057 Implicit string cast from 'AnsiString' to 'string' [dcc32 Warning] ACBrEscBematech.pas(146): W1057 Implicit string cast from 'AnsiChar' to 'string' [dcc32 Warning] ACBrEscBematech.pas(147): W1057 Implicit string cast from 'AnsiChar' to 'string' [dcc32 Warning] ACBrEscBematech.pas(148): W1057 Implicit string cast from 'AnsiChar' to 'string' [dcc32 Warning] ACBrEscBematech.pas(149): W1057 Implicit string cast from 'AnsiString' to 'string' [dcc32 Warning] ACBrEscBematech.pas(150): W1057 Implicit string cast from 'AnsiString' to 'string' [dcc32 Warning] ACBrEscBematech.pas(150): W1058 Implicit string cast with potential data loss from 'string' to 'AnsiString' [dcc32 Warning] ACBrEscBematech.pas(171): W1058 Implicit string cast with potential data loss from 'string' to 'AnsiString' [dcc32 Warning] ACBrEscBematech.pas(211): W1057 Implicit string cast from 'AnsiChar' to 'string' [dcc32 Warning] ACBrEscBematech.pas(211): W1058 Implicit string cast with potential data loss from 'string' to 'AnsiString' [dcc32 Warning] ACBrEscBematech.pas(244): W1058 Implicit string cast with potential data loss from 'string' to 'AnsiString' [dcc32 Warning] ACBrEscBematech.pas(246): W1058 Implicit string cast with potential data loss from 'string' to 'AnsiString' [dcc32 Warning] ACBrEscBematech.pas(299): W1057 Implicit string cast from 'AnsiString' to 'string' [dcc32 Warning] ACBrEscBematech.pas(307): W1058 Implicit string cast with potential data loss from 'string' to 'AnsiString' [dcc32 Warning] ACBrEscBematech.pas(310): W1058 Implicit string cast with potential data loss from 'string' to 'AnsiString' [dcc32 Warning] ACBrEscBematech.pas(313): W1058 Implicit string cast with potential data loss from 'string' to 'AnsiString' [dcc32 Warning] ACBrEscDaruma.pas(86): W1058 Implicit string cast with potential data loss from 'string' to 'AnsiString' [dcc32 Warning] ACBrEscDaruma.pas(230): W1057 Implicit string cast from 'AnsiChar' to 'string' [dcc32 Warning] ACBrEscDaruma.pas(231): W1057 Implicit string cast from 'AnsiChar' to 'string' [dcc32 Warning] ACBrEscDaruma.pas(232): W1057 Implicit string cast from 'AnsiChar' to 'string' [dcc32 Warning] ACBrEscDaruma.pas(233): W1057 Implicit string cast from 'AnsiString' to 'string' [dcc32 Warning] ACBrEscDaruma.pas(234): W1058 Implicit string cast with potential data loss from 'string' to 'AnsiString' [dcc32 Warning] libxml2.pas(2763): W1002 Symbol 'DELAYED' is specific to a platform [dcc32 Warning] libxml2.pas(2764): W1002 Symbol 'DELAYED' is specific to a platform [dcc32 Warning] libxml2.pas(2765): W1002 Symbol 'DELAYED' is specific to a platform [dcc32 Warning] libxml2.pas(2766): W1002 Symbol 'DELAYED' is specific to a platform [dcc32 Warning] libxml2.pas(2767): W1002 Symbol 'DELAYED' is specific to a platform [dcc32 Warning] libxml2.pas(2768): W1002 Symbol 'DELAYED' is specific to a platform [dcc32 Warning] libxml2.pas(2769): W1002 Symbol 'DELAYED' is specific to a platform [dcc32 Warning] libxml2.pas(2770): W1002 Symbol 'DELAYED' is specific to a platform [dcc32 Warning] libxml2.pas(2771): W1002 Symbol 'DELAYED' is specific to a platform [dcc32 Warning] libxml2.pas(2772): W1002 Symbol 'DELAYED' is specific to a platform [dcc32 Warning] libxml2.pas(2773): W1002 Symbol 'DELAYED' is specific to a platform [dcc32 Warning] libxml2.pas(2774): W1002 Symbol 'DELAYED' is specific to a platform [dcc32 Warning] ACBrCEP.pas(908): W1000 Symbol 'LerTagXML' is deprecated: 'Use o método SeparaDados()' [dcc32 Warning] ACBrCEP.pas(909): W1000 Symbol 'LerTagXML' is deprecated: 'Use o método SeparaDados()' [dcc32 Warning] ACBrCEP.pas(910): W1000 Symbol 'LerTagXML' is deprecated: 'Use o método SeparaDados()' [dcc32 Warning] ACBrCEP.pas(911): W1000 Symbol 'LerTagXML' is deprecated: 'Use o método SeparaDados()' [dcc32 Warning] ACBrCEP.pas(960): W1000 Symbol 'LerTagXML' is deprecated: 'Use o método SeparaDados()' [dcc32 Warning] ACBrCEP.pas(965): W1000 Symbol 'LerTagXML' is deprecated: 'Use o método SeparaDados()' [dcc32 Warning] ACBrCEP.pas(966): W1000 Symbol 'LerTagXML' is deprecated: 'Use o método SeparaDados()' [dcc32 Warning] ACBrCEP.pas(967): W1000 Symbol 'LerTagXML' is deprecated: 'Use o método SeparaDados()' [dcc32 Hint] ACBrDFeHttpOpenSSL.pas(215): H2077 Value assigned to 'SSLMethod' never used [dcc32 Warning] ACBrDFeXsXmlSec.pas(652): W1000 Symbol 'LerTagXML' is deprecated: 'Use o método SeparaDados()' [dcc32 Warning] ACBrDFeSSL.pas(845): W1000 Symbol 'FileAge' is deprecated [dcc32 Warning] pcnEnvEventoNFe.pas(193): W1000 Symbol 'ExtrairCNPJChaveAcesso' is deprecated: 'Obsoleta: Use a função ExtrairCNPJCPFChaveAcesso' Em conversa ai com Daniel, sugeriu postar aqui, para todos, e discutir, como poderia ajudar resolver esses contratempos. Grato -
Dúvidas sobre Linha Digitavél Banco Inter
Antonio Gomes replied to Jhonlenon Ribeiro's tópico in ACBrBoleto
funciona sim, eu faço assim: AFrxReport.Variables.Variables[Trim(CDS.FieldByName('VARIAVEL_RPERD').AsString)] := CDS.FieldByName('VALOR_RPERD').AsString; -
Dúvidas sobre Linha Digitavél Banco Inter
Antonio Gomes replied to Jhonlenon Ribeiro's tópico in ACBrBoleto
frxReport1.Clear; frxReport1.Report.Clear; frxDBReceber.RangeBegin := rbFirst; frxDBReceber.RangeEnd := reLast; frxReport1.EnabledDataSets.Clear; frxReport1.DataSets.Clear; frxReport1.DataSets.Add(frxDBReceber); frxReport1.EnabledDataSets.Add(frxDBReceber); ST := TMemoryStream.Create; try if FDSCfgMod.FieldByName('ARQUIVO_CFGBLMOD').IsNull then // Quando for atualizado, em Novembro de 2018, esse campo vai ficar vazio na tabela begin case FDSCfgMod.FieldByName('LAYOUT_CFGBLMOD').AsInteger of 1: TFuncoesSistemaOperacional.LerRecursoDLL('BOLETO_1PP', sNomeDaDLL, ST); 2: TFuncoesSistemaOperacional.LerRecursoDLL('BOLETO_2PP', sNomeDaDLL, ST); 3: TFuncoesSistemaOperacional.LerRecursoDLL('BOLETO_3PP_CARNE', sNomeDaDLL, ST); else // 3 raise Exception.Create('Tipo de Documento: Boleto ou carnê não selecionado na configuração.'); end; end else TBlobField(FDSCfgMod.FieldByName('ARQUIVO_CFGBLMOD')).SaveToStream(ST); ST.Position := 0; frxReport1.LoadFromStream(ST); finally FreeAndNil(ST); end; class procedure TFuncoesSistemaOperacional.LerRecursoDLL(const sNomeRecurso, sNomeDLL: string; out Retorno: TMemoryStream); var RS : TResourceStream; S : string; DLL_Handle: THandle; Aberta : Boolean; begin // Lê recursos armazenados na DLL if (not Assigned(Retorno)) or (Retorno = nil) then raise exception.Create('Retorno para procedimento LerRecursoDLL não definido ou não criado.'); S := ChangeFileExt(sNomeDLL, '.DLL'); DLL_Handle := LoadLibrary(PWideChar(S)); try Aberta := DLL_Handle <> HINSTANCE_ERROR; if not Aberta then raise exception.Create('DLL ' + S + ' não encontrada, favor verificar.'); RS := TResourceStream.Create(DLL_Handle, sNomeRecurso, RT_RCDATA); try if RS.Size <> 0 then Retorno.LoadFromStream(RS); Retorno.Position := 0; finally FreeAndNil(RS); end; finally FreeLibrary(DLL_Handle); end; end; se for exportar para pdf: if frxReport1.PrepareReport(True) then begin // saida em pdf frxPDFExport1.FileName := 'nome do seu pdf aqui'; if not frxReport1.Export(frxPDFExport1) then raise Exception.Create('Erro ao exportar pdf de boleto'); // saida em tela: frxReport1.ShowReport(); end else begin raise Exception.Create('Relatório não preparado.'); end; Linhas dentro do RC da DLL: // -- BOLETOS E CARNÊS BOLETO_1PP RCDATA ".\FastReport\BOLETO_1PP.fr3" BOLETO_2PP RCDATA ".\FastReport\BOLETO_2PP.fr3" BOLETO_3PP_CARNE RCDATA ".\FastReport\BOLETO_3PP_CARNE.fr3" Mas pode dar um loadfromfile direto no fastreport. BOLETO_3PP_CARNE.fr3 BOLETO_1PP.fr3 BOLETO_2PP.fr3 faltou a cereja do boleto. Onde as variaveis recebem os valores do dataset receber procedure TdmImpressaoBoleto.frxRptCarneGetValue(const VarName: string; var Value: Variant); var S : string; VN : string; Cedente : string; DVCedente : string; Qtde : Integer; ValorAberto: Currency; F : TField; DataTemp : string; begin // tem variavel que vem assim: <CODIGO> VN := AnsiUpperCase(VarName); VN := StringReplace(VN, '<', '', []); VN := StringReplace(VN, '>', '', []); if VN = 'MOSTRAR_AVISO_VENCIDO' then begin PosicionaCfgModelo(frxDBReceber.DataSet.FieldByName('CFG_BOLETO_MODELO_REC').AsInteger); Value := (FDSCfgMod.FieldByName('AVISO_PARCELA_ATRASO_CFGBLMOD').AsString = 'S') and (frxDBReceber.DataSet.FieldByName('AVISO_VENCIDO_BOLETO_CLI').AsString = 'S'); end else if VN = 'AVISO_VENCIDO' then begin PosicionaCfgModelo(frxDBReceber.DataSet.FieldByName('CFG_BOLETO_MODELO_REC').AsInteger); Value := ''; if (FDSCfgMod.FieldByName('AVISO_PARCELA_ATRASO_CFGBLMOD').AsString = 'S') and (frxDBReceber.DataSet.FieldByName('AVISO_VENCIDO_BOLETO_CLI').AsString = 'S') then begin Qtde := 0; S := ''; ValorAberto := 0; if CDSReceberAberto.Active then begin {$MESSAGE hint 'tem que testar pelo vencimento, ate quando esta vencido'} CDSReceberAberto.First; while not CDSReceberAberto.Eof do begin ValorAberto := ValorAberto + CDSReceberAberto.FieldByName('VALOR').AsCurrency; if S <> '' then S := S + #13; S := S + TFuncoesNumero.StrZero(CDSReceberAberto.FieldByName('Mes').AsInteger, 2) + '/'; S := S + TFuncoesNumero.StrZero(CDSReceberAberto.FieldByName('ANO').AsInteger, 4) + '-'; S := S + TFuncoesString.PadL(FormatCurr(',0.00', CDSReceberAberto.FieldByName('VALOR').AsCurrency), 7); Inc(Qtde, CDSReceberAberto.FieldByName('CNT_MES_ANO').AsInteger); CDSReceberAberto.Next; end; if Qtde = 0 then begin DataTemp := FormatDateTime('dd/mm/yyyy', frxDBReceber.DataSet.FieldByName('VENCIMENTO_REC').AsDateTime - 1); Value := 'FATURAS VENCIDAS ATÉ ' + DataTemp + ' PAGAS.'#13 + 'OBRIGADO'; end else begin if Qtde <= MaxParcelasAberto then Value := 'FATURAS ANTERIORES ABERTO: '#13 + S else if ValorAberto > 0 then Value := 'FATURAS ANTERIORES ABERTO: '#13 + IntToStr(Qtde) + ' ' + TFuncoesString.PadL(FormatCurr(',0.00', ValorAberto), 7); end; end; end; end else if VN = 'NOVA_PAGINA' then begin PosicionaCfgModelo(frxDBReceber.DataSet.FieldByName('CFG_BOLETO_MODELO_REC').AsInteger); Value := FDSCfgMod.FieldByName('NOVAPAGINA_CFGBLMOD').AsString = 'S' end else if VN = 'FLAGCOMPROVANTE' then Value := False else if VN = 'DOBRA_COM_ENDERECO' then begin PosicionaCfgModelo(frxDBReceber.DataSet.FieldByName('CFG_BOLETO_MODELO_REC').AsInteger); Value := (FDSCfgMod.FieldByName('END_DEST_DOBRAR_CFGBLMOD').AsString = 'S') end else if VN = 'FLAGCARNE' then begin PosicionaServico(frxDBReceber.DataSet.FieldByName('SERVICO_BANCARIO_REC').AsInteger); Value := (FDSServico.FieldByName('TIPODOCUMENTO_SER').AsInteger = 2); end else if VN = 'FLAGCAPA' then Value := False else if VN = 'DATA_EMISSAO' then Value := fDataEmissaoBoleto else if VN = 'DATA_PROCESSAMENTO' then Value := fDataProcessamento else if (VN = 'BARRA1') then // linha digitavel begin Value := TFuncBoleto.FormatarLinhaDigitavel(frxDBReceber.DataSet.FieldByName('LINHA_DIGITAVEL_BOLETO_REC').AsString); end else if VN = 'BARRA' then Value := frxDBReceber.DataSet.FieldByName('COD_BARRA_BOLETO_REC').AsString else if (VN = 'EMPRESA') or (VN = 'CEDENTE') then begin PosicionaServico(frxDBReceber.DataSet.FieldByName('SERVICO_BANCARIO_REC').AsInteger); Value := FDSServico.FieldByName('CEDENTE_NOME_CCR').AsString; end else if VN = 'VENCIMENTO' then Value := frxDBReceber.DataSet.FieldByName('VENCIMENTO_REC').AsDateTime else if VN = 'VALOR' then Value := frxDBReceber.DataSet.FieldByName('VALOR_REC').AsCurrency + frxDBReceber.DataSet.FieldByName('BOLETO_VLR_COBRADO_REC').AsCurrency else if VN = 'NOME' then Value := frxDBReceber.DataSet.FieldByName('NOME_CLI').AsString else if VN = 'ENDERECO' then Value := frxDBReceber.DataSet.FieldByName('ENDERECO_CLI').AsString + ' ' + frxDBReceber.DataSet.FieldByName('NUM_ENDERECO_CLI').AsString + ' ' + frxDBReceber.DataSet.FieldByName('COMPL_END_CLI').AsString else if VN = 'BAIRRO' then Value := frxDBReceber.DataSet.FieldByName('BAIRRO_CLI').AsString else if VN = 'CIDADE' then Value := frxDBReceber.DataSet.FieldByName('CID_CLI').AsString else if VN = 'ESTADO' then Value := frxDBReceber.DataSet.FieldByName('EST_CLI').AsString else if VN = 'CEP' then Value := TFuncoesString.FormataCEP(TFuncoesString.SoNumero(frxDBReceber.DataSet.FieldByName('CEP_CLI').AsString)) else if VN = 'CODIGO' then Value := frxDBReceber.DataSet.FieldByName('CODCLI').AsInteger else if VN = 'EMISSAO' then Value := fDataEmissaoBoleto else if VN = 'DEMONSTRATIVO' then Value := frxDBReceber.DataSet.FieldByName('DEMONSTRATIVO_REC').AsString else if VN = 'TEXTO' then Value := frxDBReceber.DataSet.FieldByName('TEXTO_LIVRE_BOLETO_REC').AsString else if VN = 'BANCO' then begin S := ''; PosicionaServico(frxDBReceber.DataSet.FieldByName('SERVICO_BANCARIO_REC').AsInteger); if FDSServico.FieldByName('CAMARA_COMPENSACAO_BAN').AsInteger > 0 then S := TFuncoesNumero.StrZero(FDSServico.FieldByName('CAMARA_COMPENSACAO_BAN').AsInteger, 3); if (S <> '') and (Trim(FDSServico.FieldByName('DV_CAMARA_COMP_BAN').AsString) <> '') then S := S + '-'; S := S + Trim(FDSServico.FieldByName('DV_CAMARA_COMP_BAN').AsString); Value := S; end else if VN = 'ESPECIE' then begin PosicionaServico(frxDBReceber.DataSet.FieldByName('SERVICO_BANCARIO_REC').AsInteger); Value := Trim(FDSServico.FieldByName('ESPECIE_DOCUMENTO_SER').AsString); end else if VN = 'ESPECIE_MOEDA' then begin PosicionaServico(frxDBReceber.DataSet.FieldByName('SERVICO_BANCARIO_REC').AsInteger); if FDSServico.FieldByName('NOME_MOEDA_SER').AsString <> '' then Value := FDSServico.FieldByName('NOME_MOEDA_SER').AsString else Value := FDSServico.FieldByName('MOEDA_SER').AsString end else if VN = 'AGENCIA_COD_CEDENTE' then begin PosicionaServico(frxDBReceber.DataSet.FieldByName('SERVICO_BANCARIO_REC').AsInteger); case FDSServico.FieldByName('IDENTIFICACAO_SER').AsInteger of 1: begin Cedente := Trim(FDSServico.FieldByName('CONTA_CCR').AsString); DVCedente := Trim(FDSServico.FieldByName('DV_CONTA_CCR').AsString); end; 2: begin Cedente := Trim(FDSServico.FieldByName('NUM_CONTRATO_SER').AsString); DVCedente := Trim(FDSServico.FieldByName('DV_CONTRATO_SER').AsString); end; 3: begin Cedente := Trim(FDSServico.FieldByName('CODIGO_CEDENTE_SER').AsString); DVCedente := Trim(FDSServico.FieldByName('DV_CEDENTE_SER').AsString); end; end; Value := FDSServico.FieldByName('AGENCIA_CCR').AsString + ' / ' + Trim(Cedente) + ifThen(DVCedente <> '', '-', '') + DVCedente; end else if VN = 'NUMERO_DOCUMENTO' then Value := frxDBReceber.DataSet.FieldByName('DOCUMENTO_REC').AsString else if VN = 'NOSSO_NUMERO' then begin PosicionaServico(frxDBReceber.DataSet.FieldByName('SERVICO_BANCARIO_REC').AsInteger); if FDSServico.FieldByName('CAMARA_COMPENSACAO_BAN').AsInteger = 77 then // inter begin var D, V, N: string; N := frxDBReceber.DataSet.FieldByName('NOSSO_NUM_FORMATADO_REC').AsString; V := copy(N, 1, N.Length - 1); D := copy(N, N.Length, 1); Value := FDSServico.FieldByName('AGENCIA_CCR').AsString + '/' + FDSServico.FieldByName('CARTEIRA_SER').AsString + '/' + V + '-' + D; end else Value := frxDBReceber.DataSet.FieldByName('NOSSO_NUM_FORMATADO_REC').AsString; end else if VN = 'ACEITE' then begin PosicionaServico(frxDBReceber.DataSet.FieldByName('SERVICO_BANCARIO_REC').AsInteger); Value := FDSServico.FieldByName('ACEITE_SER').AsString; end else if VN = 'CARTEIRA' then begin PosicionaServico(frxDBReceber.DataSet.FieldByName('SERVICO_BANCARIO_REC').AsInteger); Value := FDSServico.FieldByName('CARTEIRA_SER').AsString end else if VN = 'LOCAL_PAGAMENTO' then begin PosicionaServico(frxDBReceber.DataSet.FieldByName('SERVICO_BANCARIO_REC').AsInteger); Value := FDSServico.FieldByName('LOCAL_PAGAMENTO_SER').AsString end else if VN = 'CEDENTE_CNPJ_CPF' then begin PosicionaServico(frxDBReceber.DataSet.FieldByName('SERVICO_BANCARIO_REC').AsInteger); Value := TFuncoesString.FormataCnpjCpf(FDSServico.FieldByName('CNPJ_CPF_CCR').AsString) end else if VN = 'CEDENTE_ENDERECO' then Value := fSecaoAtual.Empresa.Endereco + ' ' + fSecaoAtual.Empresa.NumeroEndereco + ' ' + fSecaoAtual.Empresa.Bairro + ' ' + TFuncoesString.FormataCEP(fSecaoAtual.Empresa.CEP) + ' ' + fSecaoAtual.Empresa.Cidade.Nome_Cid + '-' + fSecaoAtual.Empresa.Cidade.UF_Cid else if VN = 'CPF' then Value := TFuncoesString.FormataCnpjCpf( ifThen(TFuncoesString.SoNumero(frxDBReceber.DataSet.FieldByName('CPF_CLI').AsString) = '', frxDBReceber.DataSet.FieldByName('CNPJ_CLI').AsString, frxDBReceber.DataSet.FieldByName('CPF_CLI').AsString)) else if VN = 'VALOR_DESCONTO' then Value := 0 // EditValorDesc.Value else if VN = 'OUTROS_VALORES' then Value := 0 else begin F := frxDBReceber.DataSet.FindField(VN); if F <> nil then begin Value := F.AsString; // Limpar conteudo if (VN = 'SACADOR_AVALISTA_REC') or (VN = 'CODIGO_AVALISTA') then begin if VarToStr(Value) = '0' then Value := ''; end else if (VN = 'CNPJ_CPF_AVALISTA') and (VarToStr(Value) <> '') then Value := TFuncoesString.FormataCnpjCpf(Value); end; end; end; -
Dúvidas sobre Linha Digitavél Banco Inter
Antonio Gomes replied to Jhonlenon Ribeiro's tópico in ACBrBoleto
Eu já faço a assim tem tempo, uso o acbrboleto, só para gerar esses dados, a impressão é uma minha, personalizada. O que você precisa fazer é alinhar os dados de código de barras e linha digitável manual no fr3. Coisa fácil de resolver. -
Como pegar o Digito do Nosso Número gerado pelo ACBrBoleto?
Antonio Gomes replied to karlouchoa's tópico in ACBrBoleto
qual banco ? -
Correção unit ACBrBancoBancoob.pas layout 240
Antonio Gomes replied to Sandro Andre Reghelin's tópico in ACBrBoleto
Sandro: Essa modificação já foi solicitada por varios aqui, voce precisa alinhar ela com zero passando para a property DigitoVerificadorAgenciaConta dentro do seu sistema. Nem todas agencias estão nessa versão pedindo o zero. @Juliana Tamizou @Sandro Andre Reghelin Atente para esse topico: Sandro: Se seu manual for novo, 2022, posta para gente por favor aqui, preciso ficar de olho nisso, tenho cliente com isso. Dispara o coração a modificação nessa unit desse banco. kkkk -
@Juliana Tamizouencerra o tópico por favor.
-
ficou bacana, assim pode colocar dm ou mandar 99 mesmo...
-
Voce nao colocou modalidade = 01 Confere se repassou esses dados tudo: Carteira: 1 e modalidade: 01 Cedente.Modalidade := 1 no titulo: ATituloNaLista.Carteira:= 01 Sugestão: https://acbr.sourceforge.io/ACBrMonitor/Particularidades.html
-
Duvida na Baixa de Boleto do Banco do brasil via API
Antonio Gomes replied to Jhonlenon Ribeiro's tópico in ACBrBoleto
ah entendi, o inter gera uma falha diferente, no BB nao gera tambem? Esses retornos de API True false, eu nao aproveito o retorno, quando preciso algo mais rebuscado, faço como falou analiso manual o retWS, nem sempre o false dele, me convém, aka nas nfse (aff) -
Duvida na Baixa de Boleto do Banco do brasil via API
Antonio Gomes replied to Jhonlenon Ribeiro's tópico in ACBrBoleto
o comando seu de update nao tem que ficar dentro do for? Ali vai fazer só do ultimo, se vier mais de um retorno. E seu for está duplicado no mesmo retorno não ? for j := 0 to Retorno.Count-1 do for I := 0 to Pred(Retorno.Count) do A variavel retorno, está em loop, mas voce usa ACBrBoleto.ListaRetornoWeb... penso ser assim: PrecisaDeCommit:= 0; for I := 0 to ACBrBoleto.ListaRetornoWeb.Count-1 do begin CONTRATO :=ACBrBoleto.ListaRetornoweb[i].DadosRet.TituloRet.Contrato; DATA_BAIXA_BOLETO :=ACBrBoleto.ListaRetornoweb[i].DadosRet.TituloRet.DataBaixa; if (CONTRATO <> '') and (DATA_BAIXA_BOLETO = DM.DATA_SEM_HORA) then begin mexer no banco de dados aqui Inc(PrecisaDeCommit); // controle para saber que teve retorno valido end; end; if PrecisaDeCommit> 0 then Commit; -
a ficha é so voce copiar do que é gerado pelo site deles, não? postei em uma resposta anterior.
-
NumeroCorrespondente no arquivo fr3 do fastreport
Antonio Gomes replied to murilojcosta's tópico in ACBrBoleto
é de algum banco isso murilo? se for, manda o manual? -
Acbr tem no projeto acesso e envio por api, o que você pode fazer, é pegar uma unit como base e desenvolver para essa carteira e anexar ao projeto, como ajuda. Pasta: ACBr2wc\Fontes\ACBrBoleto\WS
- 1 reply
-
- 1
-
-
Dúvidas com juros e multa no boleto sicredi
Antonio Gomes replied to Jhonlenon Ribeiro's tópico in ACBrBoleto
O banco, tem manual? Para analisar qual comando pede para multa ou juro, se é por valor ou percentual? posta o manual aqui. -
Valor do titulo arredondado na remessa errado
Antonio Gomes replied to Nemi vieira's tópico in ACBrBoleto
isso é problema do ASFloat do TField. Quando voce atualizar o componente, o problema volta. -
Valor do titulo arredondado na remessa errado
Antonio Gomes replied to Nemi vieira's tópico in ACBrBoleto
agora olha como está gravado no banco de dados esse campo bol_valor, se está 36,42 ou 36,426666666666. E voce deve arredondar na gravação, senao vai ter dor de cabeça sempre,no banco, ja deve entrar o valor com 2 decimais. dai para frente, é cair pro abraço. Dizimas, a gente deixa em valor unitario apenas. -
esse banco nao acata convenio, ou isso mudou? posta o manual aqui, era codigo de cedente a relação boleto/banco.
-
Valor do titulo arredondado na remessa errado
Antonio Gomes replied to Nemi vieira's tópico in ACBrBoleto
como sua aplicação faz essa atribuição dos valores para o componente? Teve uns casos no passado, que o programador enviava o valor como asfloat ou .value, e vinha errado. Se vier com dois decimais, nao ocasiona isso, posta como chega seu valor, atribuicao dos valores. -
Boleto exportado em pdf com vários caracteres especiais
Antonio Gomes replied to amaro.implantacao's tópico in ACBrBoleto
Só para efeito de testes, tente isso no seu fonte, e reporte por favor: Se >=FR6 uses: frxExportPDFHelpers frxPDFExport1.PDFVersion := TPDFVersion.pv15; Hoje apareceu um cliente reclamando disso, que abria um pdf dele no celular, e o meu não. Logo, solicitei os 2 pdfs para ele, e comparei a versão abrindo-os, pelo bloco de notas. O dele era versão 1.5 Versões mais recentes do FRreport, já instancia o exportpdf na versão 1.7.