Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Moderadores
Postado (editado)


Adicionado suporte as propriedades: CasasDecimais.Tag, CasasDecimais._Mask_qCom e CasasDecimais._Mask_vUnCom , CasasDecimais._qCom , CasasDecimais._vUnCom
Novos campos para o suporte (  sDisplayFormat , iFormato, Mask_qCom, Mask_vUnCom ) em cdsParametros
Alguns campos mudaram  o tipo de Float para String;

   

Criadas as DAnfes que darão suporte acima( todas com a terminação de _Dc.fr3 ( decimal ):


    DANFePaisagem_Basic_Dc.fr3
    DANFePaisagem_Dc.fr3
    DANFeRetrato_Basic_Dc.fr3
    DANFeRetrato_Dc.fr3
    DANFeRetratoFS_Basic_Dc.fr3
    DANFeRetratoFS_Basic_Dc.fr3

Nas danfes mudanças na formatação de campos para aceitar a separação de numeral para
ficar de acordo como  o exemplo;

    De   : 33235,00 
        Para : 33.325,00
       ou
        De   : 33235,00
        Para : 33.325,0000  

 Configurando o novo suporte

Usandofast.png

 

 

Resultado dos ajustesFast_conf.thumb.png.751ca11fed27a7814ad0

Segue unit e danfes para testes

Report.rar

== Atenção fazer teste exaustivos antes de colocar em produção ==

Editado por hleorj
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

Entra uma pergunta!

vi que um colega postou em casos que no mesmo danfe tem produtos com 2 , 3 ou até 4 casas

mas neste formato ele vai ter problemas concorda?

não deveria de tratar isso em cima da informação que é retornado no xml que lá tem as casas decimais ou estou enganado?

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • Moderadores
Postado (editado)

Seguindo xml do post referindo teremos no demo ( Versao atual no Svn na presente data ) usando uma danfe em fast report -Usando Delphi XE5;

VersaoAtual_Fast.thumb.png.57ef6876cb42d

Configurando para aplicar as  atualizações sugeridas - Usando Delphi 10 Seattle;

 

Configurando.thumb.png.3adb0e9e3f7e205f7

 

Resultado do demo com a atualização;

ResultadoAtualizacao.thumb.png.94c619725

Editado por hleorj
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 (editado)

Conclusão. . Quem ira decidir não será o componente.

Alguma sugestão ? para ser desenvolvida e aplicada.

 

 

 

Editado por hleorj
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

  • Fundadores
Postado

E se mudarmos no

constructor TACBrNFeDANFeRL.Create(AOwner: TComponent);

....

  fCasasDecimais._Mask_qCom   := '###,###,###,##0.00';
  fCasasDecimais._Mask_vUnCom := '###,###,###,##0.00'; 

para usar a mascara "mágica", como default ?

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Moderadores
Postado (editado)

E o  padrão ao criar componente.

constructor TACBrNFeDANFEFR.Create(AOwner: TComponent);
begin
  ......
  fCasasDecimais._Mask_qCom   := '###,###,###,##0.00';
  fCasasDecimais._Mask_vUnCom := '###,###,###,##0.00';
end;

Danfe em Fortes ou Fast.. seguiram o mesmo padrão de configuração.

Ainda existe a possibilidade de ser padrão em todo Acbr que usa  a Classe TcasasDecimais.

 TCasasDecimais = class(TComponent)
  ...

constructor TCasasDecimais.Create(AOwner: TComponent);
begin
  inherited create( AOwner );

  f_Mask_qCom   := '###,###,###,##0.00';
  f_Mask_vUnCom := '###,###,###,##0.00';
  FQCom     := 2;
  FvUnCom   := 2;
end;

 

Editado por hleorj
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

Na configuração atual da classe TCasasDecimais eu não tenho como deixar de usar a Tag ( 1 ) , e também , é necessário de manter a integridade dos usuários  ( milhares de aplicações - "Este ovo não devemos Quebrar " :) ) 

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 (editado)

 uma necessidade de alterar a Classe para facilitar a configuração 

 TDetFormat = ( detInteger , detMascara )
  
 TDetFormatos = set of TDetFormat

  TCasasDecimais = class(TComponent)
  private
    fFormato : TDetFormatos; 
    FqCom: Integer;
    FvUnCom: Integer;
    FMask_qCom: String;
    FMask_vUnCom: String;

    procedure Set_qCom(AValue: Integer);
    procedure Set_vUnCom(AValue: Integer);
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    property _qCom: Integer           read FQCom        write Set_qCom;
    property _vUnCom: Integer         read FvUnCom      write Set_vUnCom;
    property _Mask_qCom: String       read FMask_qCom   write FMask_qCom;
    property _Mask_vUnCom: String     read FMask_vUnCom write FMask_vUnCom;
    property Formato  TDetFormatos    read fFormato     write FFormato default detInteger;
  end;

 

Implantando algo parecido deixaria de usar Tag; 

Ate o presente momento .. :( ...não consegui, nos meus testes fazer funcionar.

 

Concluíndo a Tag dever ser igual 0 . 

 

 

 

Editado por hleorj
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 (editado)

Daniel , seria este padrão que estaria pensando ?

Na unit ACBrNFeDANFeESCPOS;

 

procedure TACBrNFeDANFeESCPOS.GerarItens;
...
  
      // formatar conforme configurado
      sVlrUnitario := FormatFloatBr(FpNFe.Det.Items[i].Prod.VUnCom,
        IfThen(CasasDecimais._Mask_vUnCom = '',
                        FloatMask(CasasDecimais._vUnCom),
                        CasasDecimais._Mask_vUnCom)
        );

      // formatar conforme configurado somente quando houver decimais
      // caso contrário mostrar somente o número inteiro
      fQuant := FpNFe.Det.Items[i].Prod.QCom;
      if Frac(fQuant) > 0 then
      begin
        sQuantidade  := FormatFloatBr(fQuant,
          IfThen(CasasDecimais._Mask_qCom = '',
                          FloatMask(CasasDecimais._qCom),
                          CasasDecimais._Mask_qCom)
          );
      end
  ..
  end;

Implementando parecido ira quebrar :) muita coisa 

 

Editado por hleorj
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

Algum commiter olhou o codigo ? para svn 


 

Segue unit e danfes para testes

Report.rar

== Atenção fazer teste exaustivos antes de colocar em produção ==

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


Adicionado suporte as propriedades: CasasDecimais.Tag, CasasDecimais._Mask_qCom e CasasDecimais._Mask_vUnCom , CasasDecimais._qCom , CasasDecimais._vUnCom
Novos campos para o suporte (  sDisplayFormat , iFormato, Mask_qCom, Mask_vUnCom ) em cdsParametros
Alguns campos mudaram  o tipo de Float para String;

   

Criadas as DAnfes que darão suporte acima( todas com a terminação de _Dc.fr3 ( decimal ):


    DANFePaisagem_Basic_Dc.fr3
    DANFePaisagem_Dc.fr3
    DANFeRetrato_Basic_Dc.fr3
    DANFeRetrato_Dc.fr3
    DANFeRetratoFS_Basic_Dc.fr3
    DANFeRetratoFS_Basic_Dc.fr3

Nas danfes mudanças na formatação de campos para aceitar a separação de numeral para
ficar de acordo como  o exemplo;

    De   : 33235,00 
        Para : 33.325,00
       ou
        De   : 33235,00
        Para : 33.325,0000  

 Configurando o novo suporte

Usandofast.png

 

 

Resultado dos ajustesFast_conf.thumb.png.751ca11fed27a7814ad0

Segue unit e danfes para testes

Report.rar

== Atenção fazer teste exaustivos antes de colocar em produção ==

Senão for abusar gostaria de pedir para que fizesse um update dos fontes e aplicasse ao código já existente, pois tem algumas diferenças grandes entre seu código e o svn!

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • Moderadores
Postado (editado)

Este código ficou ultrapassado . vem ai a Tag == > Formato  ( detInteger , detMascara ) 

Padrão para Formato = detInteger

NovaTag_Formato.thumb.png.09d608d848761b

Fechar post,  por favor

 

Editado por hleorj
  • Curtir 3
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

  • Este tópico foi criado há 3344 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.