Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 2388 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Bom dia, estou tentando colocar 8 casas decimais no danfe. ja fui nas configurações do danfe e tentei definir assim:
  self.ACBrNFe1.DANFE.CasasDecimais._qCom   := 8
  self.ACBrNFe1.DANFE.CasasDecimais._vUnCom := 8;

logico que em self.ACBrNFe1.DANFE.CasasDecimais._qCom sempre fica 2.

so que o cliente ta exigindo que a quantidade, preco e total de produtos tenha 8 casas decimais. estou passando tudo certinho no sistema. so que ao gerar o danfe ele sempre utiliza como se fosse duas casas decimais. nao sei se é do delphi Seattle isso, mas curreny so aceita duas casas decimais após virgula, ai os valores que eu mando por exemplo 0,23412390 na quantidade e  valores de produtos e etc devido a ser do tipo currency, mesmo tendo 8 casas decimais ele fica 0,24000000 :(

Sera que existe alguma forma de resolver isso?
 

  • Moderadores
Postado

@Rafael jorge

Tente

    ACBrNFe1.DANFE.CasasDecimais.Formato := tdetInteger;   // ou  ACBrNFe1.DANFE.CasasDecimais.Formato := 0;
    ACBrNFe1.DANFE.CasasDecimais._qCom   := 4;
    ACBrNFe1.DANFE.CasasDecimais._vUnCom := 8;

 

ou

    ACBrNFe1.DANFE.CasasDecimais.Formato := tdetMascara;   // ou  ACBrNFe1.DANFE.CasasDecimais.Formato := 1;
    ACBrNFe1.DANFE.CasasDecimais._Mask_qCom   := ###,###,###,##0.0000
    ACBrNFe1.DANFE.CasasDecimais._Mask_vUnCom := ###,###,###,##0.00000000

 

  • Curtir 2
Equipe ACBr Henrique Leonardo
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Tecnólogo em processamento de dados

E-mail [email protected] - Skype : hleorj

Postado

Já tentei isso tudo. E continua saindo como eu disse. O problema é que variáveis do tipo currency só aceitam 4 casas decimais. Por exemplo. Se eu passar 1,65789367 ele transforma em 1,6579 pois só aceita 4 casas. Mesmo botando máscara forzando e tudo o mais. É uma limitação do tipo de variável. 

  • Moderadores
Postado

Utilize esta regra :

    ACBrNFe1.DANFE.CasasDecimais.Formato := tdetMascara;   // ou  ACBrNFe1.DANFE.CasasDecimais.Formato := 1;
    ACBrNFe1.DANFE.CasasDecimais._Mask_qCom   := ###,###,###,##0.0000
    ACBrNFe1.DANFE.CasasDecimais._Mask_vUnCom := ###,###,###,##0.00000000

Ao utilizar 

    ACBrNFe1.DANFE.CasasDecimais.Formato := tdetInteger;   // ou  ACBrNFe1.DANFE.CasasDecimais.Formato := 0;

existe as regras para outros projetos :

procedure TCasasDecimais.Set_qCom(AValue: Integer);
begin
  if ((AValue >= 0) and
      (AValue <= 4))  then
    FqCom := AValue
  else
    FqCom := 2;
end;

procedure TCasasDecimais.Set_vUnCom(AValue: Integer);
begin
  if ((AValue >= 0) and
      (AValue <= 10))  then
    FvUnCom := AValue
  else
    FvUnCom := 2;
end;

que não deixa  alterar para valores superiores.

Equipe ACBr Henrique Leonardo
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Tecnólogo em processamento de dados

E-mail [email protected] - Skype : hleorj

  • Moderadores
Postado

Ps :

Ver manual 

• alterado a quantidade de casas decimais para 4 posições nos seguintes campos:
a. campo qCom (página 89) e campo qTrib (página 90) no grupo prod;
b. campo qUnid (página 100) - grupo IPI;
c. campo qBCProd (páginas 104, e 105) - grupo PIS;
d. campo qBCProd (páginas 107 e 108) - grupo COFINS; 

 

Equipe ACBr Henrique Leonardo
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Tecnólogo em processamento de dados

E-mail [email protected] - Skype : hleorj

  • 2 semanas depois ...
Postado
Em 2017-6-12 at 17:12, hleorj disse:

Ps :

Ver manual 


• alterado a quantidade de casas decimais para 4 posições nos seguintes campos:
a. campo qCom (página 89) e campo qTrib (página 90) no grupo prod;
b. campo qUnid (página 100) - grupo IPI;
c. campo qBCProd (páginas 104, e 105) - grupo PIS;
d. campo qBCProd (páginas 107 e 108) - grupo COFINS; 

 

Onde consigo esse manual?

Quero fazer um teste colocando o Cofins com 3 ou 4  casas decimais, pois em alguns casos o somatório do Cofins não está batendo, sempre dá uma diferença de 1 centavo.

 

Obrigado.

  • 10 meses depois ...
Postado

Sobre esse impasse com as casas decimais, estava com o mesmo problema e mesmo passando desta forma no código não pegava a configuração. Então resolvi conferir o TfrxReport no memo da quantidade (memqCom) e do valor unitário (memvUnCom) o format esta para number, então estava valendo o que estava no TfrxReport. Então coloquei o format como Text (no formatting) e agora ele pega de acordo com o que esta no código. Estou compartilhando a solução que resolveu comigo, se alguém ainda precisar esta ai. Valeu

  • Este tópico foi criado há 2388 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

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