-
Total de ítens
1.303 -
Registro em
-
Última visita
-
Days Won
9
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que hleorj postou
-
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;
-
A mascara Default -> ###,###,###,##0.00
-
Conclusão. . Quem ira decidir não será o componente. Alguma sugestão ? para ser desenvolvida e aplicada.
-
Seguindo xml do post referindo teremos no demo ( Versao atual no Svn na presente data ) usando uma danfe em fast report -Usando Delphi XE5; Configurando para aplicar as atualizações sugeridas - Usando Delphi 10 Seattle; Resultado do demo com a atualização;
-
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 Resultado dos ajustes Segue unit e danfes para testes Report.rar == Atenção fazer teste exaustivos antes de colocar em produção ==
-
NFe - Formatação de valores (Qtde e Vl Unit) FortesReport
hleorj replied to carlos_tedex's tópico in ACBrNFe
Configurando a Solução para resolver o problema acima. -
NFe - Formatação de valores (Qtde e Vl Unit) FortesReport
hleorj replied to carlos_tedex's tópico in ACBrNFe
Segue as unit's para teste; Favor seguir o compactado . Fortes.rar -
NFe - Formatação de valores (Qtde e Vl Unit) FortesReport
hleorj replied to carlos_tedex's tópico in ACBrNFe
Daniel , estou desenvolvendo um outra solução , no componente ja temos toda a solução do problema. Existe a Propriedade : CasasDecimais ( Tag , _Mask_qcom, _Mask_vUnCom , _qcom, _vUnCom ) fIFormatacao = Tag ( 0 ou 1 ) FCasasDecimaisqCom = _qcom FCasasDecimaisvUnCom =_vUnCom fMask_qCom = _Mask_qcom fMask_vUnCom = _Mask_vUnCom cdsItens.FieldByName('QTDE').AsString := FormatQuantidade( Prod.qCom); cdsItens.FieldByName('VALOR').AsString := FormatValorUnitario( Prod.vUnCom); Function TfrlDANFeRLRetrato.FormatQuantidade( dValor : Double ) : String; begin case fIFormatacao of 0 : Result := FormatFloatBr( dValor , format(sDisplayFormat, [FCasasDecimaisqCom, 0])); 1 : Result := FormatFloatBr( dValor , fMask_qCom); end; end; Function TfrlDANFeRLRetrato.FormatValorUnitario( dValor : Double ) : String; begin case fIFormatacao of 0 : Result := FormatFloatBr( dValor , format(sDisplayFormat, [FCasasDecimaisvUnCom, 0])); 1 : Result := FormatFloatBr( dValor , fMask_vUnCom); end; end; Testando ..a solução; Em Danfe Fast Report teremos a mesma solução um pouco diferente mas aregra sera a mesma Function TACBrNFeFRClass.FormatQuantidade( dValor : Double ) : String; begin case FDANFEClassOwner.CasasDecimais.tag of 0 : Result := FormatFloatBr( dValor , format(sDisplayFormat, [FDANFEClassOwner.CasasDecimais._qCom, 0])); 1 : Result := FormatFloatBr( dValor , FDANFEClassOwner.CasasDecimais._Mask_qCom); end; end; Function TACBrNFeFRClass.FormatValorUnitario( dValor : Double ) : String; begin case FDANFEClassOwner.CasasDecimais.tag of 0 : Result := FormatFloatBr( dValor , format(sDisplayFormat, [FDANFEClassOwner.CasasDecimais._vUnCom, 0])); 1 : Result := FormatFloatBr( dValor , FDANFEClassOwner.CasasDecimais._Mask_vUnCom); end; end; -
NFe - Formatação de valores (Qtde e Vl Unit) FortesReport
hleorj replied to carlos_tedex's tópico in ACBrNFe
Gostei do seu sDisplayFormat .. vai QUASE com uma ideia de refatoração para Danfe Fast Report. onde teremos a correção da formatação dos milhares e decimais; Segue imagem de teste com erros nos campos ( valor total , Base , Valor icms ); se fosse alterado os tipo ( integer ) CasasDecimais._qCom := 4 CasasDecimais._vUnCom := 10; para String; CasasDecimais._qCom := '###,###,###,##0.0000###'; CasasDecimais._vUnCom := '###,###,###,##0.00000######'; Talvez seja uma solução , mas....( Façam seus comentários para ajudar na tomada de decisão ) -
DANFE FastReport com 1 Veiculo Novo imprimindo em 2 folhas
hleorj replied to andrefaria's tópico in ACBrNFe
Danfe em Fortes Segue unit para testes Danfe Fortes para os casos acima ACBrNFeDANFeRL.pas ACBrNFeDANFeRLPaisagem.pas ACBrNFeDANFeRLRetrato.dfm ACBrNFeDANFeRLRetrato.pas ACBrNFeDANFeRLClass.pas ACBrNFeDANFeRLPaisagem.dfm -
DANFE FastReport com 1 Veiculo Novo imprimindo em 2 folhas
hleorj replied to andrefaria's tópico in ACBrNFe
Segue para testes; Nova propriedade fQuebraLinhaEmVeiculos : Boolean; Novo tratamento em ManterVeiculos para os casos acima. ACBrNFeDANFEFR.pas ACBrNFeDANFEFRDM.pas -
DANFE FastReport com 1 Veiculo Novo imprimindo em 2 folhas
hleorj replied to andrefaria's tópico in ACBrNFe
-
DANFE FastReport com 1 Veiculo Novo imprimindo em 2 folhas
hleorj replied to andrefaria's tópico in ACBrNFe
Regis , não pode ser criada uma propriedade para controlar o ManterVeiculo ? Para este caso de quebrar ou não. Não esqueça que existe o ManterVeiculo na Danfe, em Fortes Report também. Exemplo : Function TACBrNFeFRClass.ManterVeiculos( inItem: integer ) : String; Var sQuebraLinha : String; begin Result := ''; { detalhamento especifico de veículos } with FNFe.Det.Items[inItem].Prod do begin if veicProd.chassi > '' then begin // Criar a propriedade no componente bQuebraLinha if bQuebraLinha then sQuebraLinha := ';' else sQuebraLinha := ' - ' //---------------- Result := sQuebraLinha; Result := Result + ACBrStr('TIPO DE OPERAÇÃO: ' + VeiculosTipoOperStr( veicProd.tpOP ) ) + sQuebraLinha; Result := Result + ACBrStr('CHASSI: ' )+ veicProd.chassi + sQuebraLinha; Result := Result + ACBrStr('CÓDIGO DA COR: ' )+ veicProd.cCor + sQuebraLinha; Result := Result + ACBrStr('NOME DA COR: ') + veicProd.xCor + sQuebraLinha; Result := Result + ACBrStr('POTÊNCIA DO MOTOR: ') + veicProd.pot + sQuebraLinha; Result := Result + ACBrStr('CILINDRADAS: ') + veicProd.Cilin + sQuebraLinha; Result := Result + ACBrStr('PESO LÍQUIDO: ') + veicProd.pesoL + sQuebraLinha; Result := Result + ACBrStr('PESO BRUTO: ' )+ veicProd.pesoB + sQuebraLinha; Result := Result + ACBrStr('NÚMERO DE SÉRIE: ') + veicProd.nSerie + sQuebraLinha; Result := Result + ACBrStr('COMBUSTÍVEL: ' + VeiculosCombustivelStr( veicProd.tpComb ) ) + sQuebraLinha; Result := Result + ACBrStr('NÚMERO DO MOTOR: ') + veicProd.nMotor + sQuebraLinha; Result := Result + ACBrStr('CAP. MÁX. TRAÇÃO: ') + veicProd.CMT + sQuebraLinha; Result := Result + ACBrStr('DISTÂNCIA ENTRE EIXOS: ') + veicProd.dist + sQuebraLinha; Result := Result + ACBrStr('ANO DO MODELO: ' )+ IntToStr(veicProd.anoMod) + sQuebraLinha; Result := Result + ACBrStr('ANO DE FABRICAÇÃO: ') + IntToStr(veicProd.anoFab) + sQuebraLinha; Result := Result + ACBrStr('TIPO DE PINTURA: ') + veicProd.tpPint + sQuebraLinha; Result := Result + ACBrStr('TIPO DE VEÍCULO: ' + VeiculosTipoStr( veicProd.tpVeic ) )+ sQuebraLinha; Result := Result + ACBrStr('ESPÉCIE DO VEÍCULO: ' +VeiculosEspecieStr( veicProd.espVeic )) + sQuebraLinha; Result := Result + ACBrStr('VIN (CHASSI): ' + VeiculosVinStr( veicProd.VIN ) )+ sQuebraLinha; Result := Result + ACBrStr('CONDIÇÃO DO VEÍCULO: ' +VeiculosCondicaoStr( veicProd.condVeic)) + sQuebraLinha; Result := Result + ACBrStr('CÓDIGO MARCA MODELO: ') + veicProd.cMod + sQuebraLinha; Result := Result + ACBrStr('CÓDIGO COR DENATRAN: ' +VeiculosCorDENATRANSTr( veicProd.cCorDENATRAN )) + sQuebraLinha; Result := Result + ACBrStr('CAP.MÁXIMA DE LOTAÇÃO: ') +IntToStr(veicProd.lota) + sQuebraLinha; Result := Result + ACBrStr('RESTRIÇÃO: ' +VeiculosRestricaoStr( veicProd.tpRest ) )+ ';'; end; end; end; -
O mesmo erro na versão em Lasarus .
-
Alterar Tamanho de Logo, Posição do Nome da Empresa, Tamanho do Endereço
hleorj replied to rodrigoogioni's tópico in ACBrNFe
Seja bem vindo ao mundo open-source. Espero que seje feliz na sua empreitada. -
Obrigado
-
C:\Delphi Files\Componentes - DXE10\Acbr\Fontes\ACBrComum\ACBrUtil.pas(3365) Warning: W1050 WideChar reduced to byte char in set expressions. Consider using 'CharInSet' function in 'SysUtils' unit. C:\Delphi Files\Componentes - DXE10\Acbr\Fontes\ACBrDFe\ACBrDFeWebService.pas(377) Error: E2003 Undeclared identifier: 'ACBrStrToUTF8'
-
Alterar Tamanho de Logo, Posição do Nome da Empresa, Tamanho do Endereço
hleorj replied to rodrigoogioni's tópico in ACBrNFe
Post Somente as AcbrNfeDanfeRLClass, AcbrNfeDanfeRLRetrato, AcbrNFEDanfeClass e AcbrNfeDanfeRL; Atualize elas para ficar compativel com svn, Ficou dificil de entender; -
Pq nao usa as feitas em FastReport ?
-
Qual danfe q apresenta este erro de impressão em duplicidade ?
-
Teste de Impressão no Demo com a Danfe - Fast Report ( DANFeRetrato.Fr3 ). Impressão da Danfe na aplicação em produção.
-
Apos Atualização; O Campo Prod.nItemPed foi modificado o tipo. Antes era Integer passou para String; Ocasionando erro de compilacao do demo nfe. De trvwNFe.Items.AddChild(NodeItem,'nItemPedido=' +InToStr(Prod.nItemPed)) ; Para trvwNFe.Items.AddChild(NodeItem,'nItemPedido=' +Prod.nItemPed) ;
-
1 - Danfe´s com impressão dos devidos campos,. Estará fora do padrão . 2 - Danfe´s do componente não saem impressos os devidos campos. Você pode alterar as Danfe´s para atender as suas necessidades. conforme o manual de integração.