Ir para conteúdo
  • Cadastre-se

Antonio Gomes

Membros
  • Total de ítens

    735
  • Registro em

  • Última visita

  • Days Won

    1

Tudo que Antonio Gomes postou

  1. pensa comigo... Se {$IFNDEF DELPHIXE2_UP} certamente, pq dela para baixo, e ela, não suporta o desligamento de diretiva, logo, ao definir a versão 28, algo está fazendo essa diretiva ser false.
  2. agora é descobrir de onde está vindo isso DELPHIXE2_UP sabe me falar? dei um grep search aqui, caiu em ACBr_jedi.inc da pasta \ACBr2wc\Fontes\ACBrComum
  3. 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}
  4. Achei uma solucao para string data loss: vou criar um bat, e colocar em cada unit isso {$IFDEF UNICODE} {$WARN IMPLICIT_STRING_CAST OFF} {$WARN IMPLICIT_STRING_CAST_LOSS OFF} {$ENDIF} Logo após a linha {$I ACBr.inc} Com poucas units, ja caiu de 3 mil para 2 mil warnings...
  5. Não tenho, mas posso anexar corrigida na ultima versão. Se tem que suportar tanta versão, pq já não orientar colocar diretivas? Pensa...
  6. 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
  7. funciona sim, eu faço assim: AFrxReport.Variables.Variables[Trim(CDS.FieldByName('VARIAVEL_RPERD').AsString)] := CDS.FieldByName('VALOR_RPERD').AsString;
  8. 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;
  9. 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.
  10. 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
  11. @Juliana Tamizouencerra o tópico por favor.
  12. ficou bacana, assim pode colocar dm ou mandar 99 mesmo...
  13. 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
  14. 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)
  15. 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;
  16. a ficha é so voce copiar do que é gerado pelo site deles, não? postei em uma resposta anterior.
  17. é de algum banco isso murilo? se for, manda o manual?
  18. 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
  19. O banco, tem manual? Para analisar qual comando pede para multa ou juro, se é por valor ou percentual? posta o manual aqui.
  20. isso é problema do ASFloat do TField. Quando voce atualizar o componente, o problema volta.
  21. 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.
  22. esse banco nao acata convenio, ou isso mudou? posta o manual aqui, era codigo de cedente a relação boleto/banco.
  23. 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.
  24. 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.
×
×
  • 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.