Ir para conteúdo
  • Cadastre-se

Gabriel Frones

Membros
  • Total de ítens

    115
  • Registro em

  • Última visita

  • Days Won

    2

Posts postados por Gabriel Frones

  1. Colegas,

    Linha 122:

      I := RetornarPosEx('"', Leitor.Arquivo, I + 2);
    
      if I = 0 then
    
        raise Exception.Create('Não encontrei inicio do URI: aspas inicial');

    Existe alguma razão para não haver suporte a XML's com aspas simples nos campos?

    Abraços.

  2. Colegas,

    Linha 669 do arquivo Fontes\PCN2\pcnGerador.pas:

    Conteúdo atual:

    
                      if StrToIntDef(Copy(ConteudoProcessado, pos(DecimalSeparator, ConteudoProcessado) + NumeroDecimais + 1, 6),0) > 0 then
    
                        walerta(ID, Tag, Descricao, ERR_MSG_MAXIMO_DECIMAIS + ' ' + IntToStr(NumeroDecimais));
    Problema: Quando o valor é inteiro, pos(DecimalSeparator,ConteudoProcessado) = 0, e dessa forma, o alerta é sempre gerado. Sugestão: Verificar diretamente na variável float valor se o número de casas decimais excede NumeroDecimais:
    
                      if not SameValue(Abs(Frac(valor*Power(10,NumeroDecimais))), 0.0, {epsilon = }0.0000001) then
    
                        walerta(ID, Tag, Descricao, ERR_MSG_MAXIMO_DECIMAIS + ' ' + IntToStr(NumeroDecimais));

    Nota: Em tese, o valor de Abs(Frac(valor*Power(10,NumeroDecimais))) deveria ser exatamente igual a zero, caso não hajam mais casas decimais do que o esperado. Mas é sabido que comparações do tipo == com floats são problemáticas.

    Nota 2: Tem que adicionar a unit Math nos uses.

    Abraços.

  3. Você pode:

    - Copiar a função do ACBr (na unit ACBrNFeNotasFiscais.pas) e fazer as modificações necessarias;

    - Enviar por Indy, com um dos milhares de exemplos que existem por aí; ou

    - Criar uma nova função utilizando a Synapse (biblioteca leve, que o ACBr usa).

    Os servidores do GMail são SMTP, normal.

    Abraços.

×
×
  • 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.