Ir para conteúdo
  • Cadastre-se

Waldir Paim

Moderadores
  • Total de ítens

    610
  • Registro em

  • Última visita

  • Days Won

    4

Tudo que Waldir Paim postou

  1. veja se assim funciona procedure TfrlDANFeRLPaisagem.Itens; procedure TfrlDANFeRLPaisagem.Itens; var nItem : Integer ; sCST, sBCICMS, sALIQICMS, sVALORICMS, sALIQIPI, sVALORIPI : String ; begin ... cdsItens.FieldByName('QTDE').AsString := FormatFloat(format( sDisplayFormat ,[FCasasDecimaisqCom,0]),qCom); //cdsItens.FieldByName('QTDE').AsString := NotaUtil.FormatFloat(qCom, sDisplayFormat[FCasasDecimaisqCom]); cdsItens.FieldByName('VALOR').AsString := FormatFloat(format( sDisplayFormat ,FCasasDecimaisvUnCom,0]),vUnCom); //cdsItens.FieldByName('VALOR').AsString := NotaUtil.FormatFloat(vUnCom, sDisplayFormat[FCasasDecimaisvUnCom]); ... Qualquer coisa só avisar! Waldir Paim
  2. Passe pelo menos os valores dos campos; Waldir Paim
  3. Olá Felipe! Acho que podemos compatibilizar com a versão 3.23 tambem! Vou tentar abstrair um pouco mais o código!
  4. Olá Renato, pelo que sei não temos DANFE ainda para Lazarus! Essa semana ainda devo me dedicar um pouco mais em portar o DANFE em Fortes Report para Lazarus! Se tiver interesse veja nesse link Waldir Paim
  5. try... envio... showmessage('Enviado'); except on E : Exception do showmessage(e.message); end;
  6. Sérgio, eu pessoalmente prefiro usar com fontes! e como disse anteriormente Acredito que devemos fazer ser compatível com ambas as versões! Waldir Paim
  7. Adauri_jr, bom dia Passei a utilizar o DANFE em fortes a pouco tempo! por pretender mudar meu emissor de notas para o lazarus em breve! Não percebi a dificuldade, as alterações no DANFE foram sutis e de estruturas, acredito não ser esse o motivo do desconforto relatado! O Fortes pode ter sofrido alguma melhoria que resultou no relatado!. Qual versão está utilizando e qual utilizava?, aproveita e faz um teste pra gente, um projeto novo só com o fortes em varias paginas e veja se nota o esse tempo entre as copias! Waldir Paim
  8. joeldm, uso pelo svn: https://fortesreport.svn.sourceforge.ne ... rtesreport a versão 3.71B
  9. Olá pessoal, mais algumas alterações! Se valer a pena! Fiquem a vontade para mandar ao SVN! Waldir Paim DANFeRL.zip
  10. Sérgio! te respondi anteriormente! na Unit RLConsts.pas
  11. Sérgio, isso ai é uma verificação do Fortes! Eu fiz assim pra funcionar! na Unit RLConsts.pas procedure CheckVersion(Component: TComponent); begin (* if Assigned(Component) and (csDesigning in Component.ComponentState) then Exit; if (KnownCommercialVersion <> KnownCommercialVersion) or (KnownReleaseVersion <> ReleaseVersion) or (KnownCommentVersion <> CommentVersion) then if not ReportServiceMode then ShowMessage( 'Sistema não está de acordo com a versão do FortesReport.'#13 + #13 + 'Versão atual ' + IntToStr(CommercialVersion) + '.' + IntToStr(ReleaseVersion) + CommentVersion);*) end; na unit do DANFE eu tinha usado esse procedimento SetVersion( CommercialVersion, ReleaseVersion, CommentVersion); porem o mesmo foi comentado, acredito que versões mais antigas do Fortes não a utilização!
  12. Olá Peterson! Que bom conseguir ajudar! Fiz mais algumas! ve se vale a pena! Waldir Paim ps: O anexo foi adicionado no primeiro post! o forum não esta aceitando mais anexos neste post!
  13. Waldir Paim

    ACBrNFeDANFeRL

    Fiz algumas alterações no DANFE para o Fortes Reports! Segue units com as alterações! Pretendo portar para o Lazarus em breve! Poderiam avaliar as alterações e se possível enviar ao SVN. Waldir Paim danfe.zip
  14. Segue um pequeno ajuste na classe TACBrSPEDFiscal Em destaque abaixo! procedure TACBrSPEDFiscal.SetCurMascara(const Value: ansistring); begin FCurMascara := Value; FACBrTXT.CurMascara := Value; //faltando passar a mascara para o componente base FBloco_0.CurMascara := Value; FBloco_1.CurMascara := Value; FBloco_C.CurMascara := Value; FBloco_D.CurMascara := Value; FBloco_E.CurMascara := Value; FBloco_G.CurMascara := Value; FBloco_H.CurMascara := Value; FBloco_9.CurMascara := Value; end;
  15. Segue uma pequena correção abaixo em negrito! { Vende o Item } procedure TACBrECF.VendeItem(Codigo, Descricao: String; AliquotaICMS : String ; Qtd: Double; ValorUnitario: Double; ValorDescontoAcrescimo: Double; Unidade: String; TipoDescontoAcrescimo : String; DescontoAcrescimo : String); Var AliquotaECF : String ; Aliquota : TACBrECFAliquota ; Tratado : Boolean; {$IFNDEF CONSOLE} Linha, Buffer, StrQtd, StrPreco, StrDescAcre : String ; Total, PorcDesc, ValDesc : Double ; {$ENDIF} begin ... if Assigned( fOnAntesVendeItem ) then fOnAntesVendeItem( Codigo, Descricao, AliquotaECF, Qtd, ValorUnitario, ValorDescontoAcrescimo, Unidade, TipoDescontoAcrescimo, DescontoAcrescimo); try Tratado := False; fsECF.VendeItem( Codigo, Descricao, AliquotaECF, Qtd, ValorUnitario, ValorDescontoAcrescimo, Unidade, TipoDescontoAcrescimo, DescontoAcrescimo ); except if Assigned( FOnErrorVendeItem ) then FOnErrorAbreCupom(Tratado); //possivelmente errado FOnErrorVendeItem(Tratado); //corrigido if not Tratado then raise; end; end; ... end;
  16. Elton, como te disse foi apenas um exemplo, sei que as informações devem serem as mais consistentes possíveis! e sei tambêm que isso não seria uma simples inclusão de eventos e que causaria uma serie de alterações nas sub classes de cada ECF, pois o evento teria que agir diretamente na ação e capturar esses valores do retorno do ECF; Mais se a coisa for pensada assim acho que com o tempo os eventos consigam efetivamente esse objetivo final de minimizar os a comunicação direta com os ECF; Conte comigo se resolver seguir em frente nesse ponto de vista! Abraço. Waldir Paim
  17. Oi Elton, Acho que poderíamos por em alguns eventos OnAfert, como por exemplo o OnAfterAbreCupom, um parâmetro onde seja possível capturar as informações NumCupom, COO entre outros sem a necessidade de fazer uma nova requisição ao ECF Esse parâmetro poderia ser um tipo record, pensei num TACBrECF mais ele sempre faz um requisição ao ECF para obter os dados, Percebi que a maioria dos ECFs retornam um string com os dados e nesse caso o evento poderia obter os dados no ato do evento destas string e com isso otimizar a comunicação e reduzir requisições ao ECF! Waldir Paim
×
×
  • 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.

The popup will be closed in 10 segundos...