Ir para conteúdo
  • Cadastre-se

dev botao

Acbrnfe + Firemonkey ²


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

Recommended Posts

Prezados, sou novo no fórum, e estou prestando um serviço pra uma determinada empresa, onde ela está realizando um mini projeto de emissão de NFE no firemonkey, ela anteriormente veio utilizando a VCL + ACBRNFe.

A questão é que no Delphi XE3 ao inserir um componente da ACBR no firemonkey ele nem mesmo compila, então resolvi fazer uma adaptação para que o ACBR funciona-se no FMX. Avaliando o projeto ele não tem nenhum impedimento para funcionar no firemonkey, visto que nada ou quase nada utiliza interface.

 

O único problema que eu pude visualiza foi em relação a biblioteca ACBRCAPICOM_TLB.PAS onde é utilizado o OleServer.pas que somente existe na VCL. Mas analisando esta biblioteca pode-se verificar que ela somente faz uso das API do Windows, que também podem ser acessadas do firemonkey, escrevi um arquivo chamado FMX.OleServer.Pas e FMX.OleConsts.Pas para fazer a substituição trocando o bloco de código

 

uses Vcl.OleConst, Vcl.Controls;

 

Por

 

uses FMX.OleConst, FMX.Controls, FMX.Types;

 

E no final do arquivo

 

initialization
  GroupDescendentsWith(TOleServer, Vcl.Controls.TControl);

 

Por

 

initialization
  GroupDescendentsWith(TOleServer, FMX.Types.TControl);

O segundo problema é que tanto no Delphi XE2 e no Delphi XE3 não existe conditional compilation para determinar se o projeto é proveniente do Firemonkey ou VCL, então a solução encontrada por mim seria utilizar a Conditional Defines disponibilizada nas opções dos projetos, desta forma seria possível o mesmo componente ser utilizado para VCL e Firemonkey sem grandes dificuldades, é claro que deve ser de bom censo de todos que utilizam o componente sem o código fonte, que as DCU compiladas para o FMX não serão utilizadas na VCL e vice-versa.

 

firemonkeydemo.png

 

Os demais arquivos alterados foram:

 

ACBrCAPICOM_TLB.pas

ACBrDFeUtil.pas

ACBrMSXML2_TLB.pas

ACBrNFe.pas

ACBrNFeDANFEClass.pas

ACBrNFeNotasFiscais.pas

ACBrNFeWebServices.pas

FMX.OleServer.pas

FMX.OleConst.pas

 

Os seguintes itens foram testados em Delphi XE3 no Windows 8 x64 no ambiente de Homologação:

  • Pedido de Seleção do Certificado Pela Capicom no repositório do Windows.
  • Pedido de Status do Servidor
  • Envio de Nota Fiscal

Vale lembrar que este recurso é somente para o Windows!

 

Editado em 17/01/2013 - Correção na função GetAppExeName

ACBrNFeUtil.pas

 

Editado em 17/01/2013 15:30 - Unit PCN forçando uso da VCL no FMX (Corrigido)

pcnNFe.pas

 

ACBrCAPICOM_TLB.pas

ACBrDFeUtil.pas

ACBrMSXML2_TLB.pas

ACBrNFe.pas

ACBrNFeDANFEClass.pas

ACBrNFeNotasFiscais.pas

ACBrNFeWebServices.pas

FMX.OleServer.pas

FMX.OleConst.pas

ACBrNFeUtil.pas

pcnNFe.pas

Editado por Macgayver Armini
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

No caso foi adicionado diretivas verificando a plataforma que está usando?

seria interessante se for pois assim continua compatível

 

Sim, teoricamente quando se adiciona na uses a unit "Forms" por exemplo, o Delphi deveria entender se é para usar a do Firemonkey ou VCL, se não me engano na primeira versão do Delphi XE2 isso acontecia, agora no XE3 por exemplo isso não acontece, você precisa identificar com "VCL." ou "FMX.". Mas alguns recursos mudam ,como a chamadas de diálogos.

    {$IFDEF FMX}
      MessageDlg(Msg, TMsgDlgType.mtInformation, [TMsgDlgBtn.mbOK],0);
    {$ELSE}
       MessageDlg(Msg ,mtInformation ,[mbOk],0);
    {$ENDIF}

Ou Por Exemplo

 

function GetAppExeName:string;
begin
  {$IFDEF FMX}
     Result := ParamStr(0);
  {$ELSE}
      Result := Application.ExeName;
  {$ENDIF}
end;
Editado por Macgayver Armini
Link para o comentário
Compartilhar em outros sites

  • Moderadores

Isso mesmo.. Acredito que logo algum commiter visualize suas alterações e teste para ver a compatibilidade para subir ao SVN, acredito ser de interesse de algumas amigos da comunidade

Parabéns

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

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

 

Link para o comentário
Compartilhar em outros sites

A fim de facilitar nos testes que estou fazendo, e também para quem for analisar estou postando o exemplo da ACBrNFe convertido "parcialmente" para o Firemonkey, alguns recursos podem não existir ou terem que ser adaptados:

  • TWebBrowser não existe.
  • TTreeView foi adaptado
  • Dialogs
  • TRadioGroup não existe foi trocado por TListBox
  • Danfe não existe, mas agora o FastReport existe para o FMX e com suporte ao OSX então é possível de ser implementado.

acbrnfedemonstrao.png

 

segue o exemplo: ACBrNFE Firemonkey DEMO.zip

Link para o comentário
Compartilhar em outros sites

NOVAS ALTERAÇÕES

 

Desde o último post neste tópico estive trabalhando na conversão da versão do DANFE Fast em VCL para a nova versão do Fast para firemonkey, é claro que a conversão não implica somente no arquivo do relatório, mas também de um pacote novo para o firemonkey além de outros detalhes importantes.

 

Características do FastReport para o Firemonkey

  • É multiplataforma
  • Não tem gerador de PDF.
  • Não conta com componente para código de barras.

Baseado na informação acima, foi necessário utilizar uma solução para o código de barras, que é mais complexo que o EAN13, então levou mais tempo, a solução encontrada foi um componente de um site francês (http://sourceforge.net/projects/openbarcodes/) onde utiliza-se uma fonte ".ttf" na pasta font do windows, e então uma biblioteca para gerar a codificação para a fonte entender qual informação irá ser exibida, ou seja não basta informar o valor numérico.

 

O problema é que a biblioteca estava escrita em visual basic, no site (http://grandzebu.net/informatique/codbar-en/code128.htm) existe duas bibliotecas para Pascal, mas todas elas estavam gerando o retorno incorreto, então reescrevi a biblioteca baseado no código original em VB. No processo final para instalação do pacote, basta instalar a fonte Code128.ttf que depois instalar o pacote do danfe FRFMX, a qualidade do código de barra ficou muito boa. 

 

Quando ao gerador de PDF ainda não procurei uma solução, e acredito que opensource para firemonkey ainda não tenha.

 

 

Gostaria que alguém do fórum  verifica-se as modificações para subir logo para o subversion, porque se não as revisões vão ficando muito afastadas da versão que eu estava alterando.

 

Revisão destes arquivos alterados: 4645

Revisão Atual da ACBR: 4668

 

O Arquivo abaixo conta com:

  • Todas os arquivos do primeiro Post que originou este tópico.
  • As bibliotecas criadas.
  • Os arquivos EVENTOSFMX.fr3 e DANFEFMX.fr3 para a versão do Fast para Firemonkey
  • O demo atualizado com o Danfe funcionando postado também neste tópico anteriormente
  • A fonte utilizada na criação do código de barras.

ACBRFMX.zip (e88ad1b649d759c2c6d1a3bbf9ebe723)

 

A versão do Fast para Firemonkey utilizada foi a de demonstração disponibilizada pelo site deles, você pode fazer o Download aqui

 

O Resultado final do Danfe ainda precisa de pequenos acertos de alinhamento , mas está funcional.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 3 meses depois ...
  • 1 ano depois...
  • Moderadores

Como está o desenvolvimento da compatibilidade do ACBr boleto com o FireMonkey?

Boa tarde

foi parado ou pelo menos não subimos nada de nenhum dos casos pois ser faz necessário grandes mudanças!

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

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

 

Link para o comentário
Compartilhar em outros sites

  • 5 meses depois ...

Boa tarde!

 

Me ponho a disposição para atualização dos fontes para FMX.

 

Tenho um projeto em desenvolvimento e vou começar a usar alguns componentes ACBr, logo vou encontrar necessidade de tradução, caso fala alguma alteração que ajude a comunidade, irei disponibilizar aqui!

 

Estou testando a versão XE7 e disponho de testes em todos os SO em target.

 

Um abraço!

Link para o comentário
Compartilhar em outros sites

Aqui se encontra alguns fontes convertidos, mas como postei o ACBr da forma que é hoje não consegue ir totalmente para FMX, esbarrei no componente ACBrECF que terá que recriar a sua classe base e dela herdar as existentes hoje, mudança essa que não foi aprovada, por justificativa que não vale a pena pela demanda, parado no ACBrECF nem olhei o ACBrNFe.

  • Curtir 2

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

Concordo Isaque, mas em tempos de mudança, com possibilidade de em breve não haver muito mais o ECF, sua possível substituição nacional pela NFC-e, seria talvez uma possibilidade de volta ao trabalho que parece ser o futuro do nosso querido Delphi, sendo assim, me coloco a disposição para contribuir.

 

Um abraço!

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 1 mês depois ...

Voltamos a fazer analises para levar o ACBr para FMX, estou usando a colaboração como fonte para o NFe, gostaria de saber do usuário Delphi in Delphi, se ele está usando ainda em produção e se tem alguma novidades, para postar aqui.

  • Curtir 2

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

  • 3 meses depois ...

Até onde sei está sim, pois os fontes foram todos ajustados para funcionar com FMX, desenvolva um ap demo e faça alguns testes como consulta, coisa basica.

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

Até onde sei está sim, pois os fontes foram todos ajustados para funcionar com FMX, desenvolva um ap demo e faça alguns testes como consulta, coisa basica.

Então Isaque sou novo aqui no forum, porém baixei o componente CBR VIA SVN e o mesmo quando compilo por exemplo o nfe1 possui varios erros, poderia me ajudar?

Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...
  • Moderadores

Não!

android e ios a nf-e e nfc-e dependem de certificado e somente roda com openssl e capicom

mas sim funciona em firemonkey windows

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

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

 

Link para o comentário
Compartilhar em outros sites

  • 3 meses depois ...
Em 24/11/2016 at 13:19, Juliomar Marchetti disse:

Não!

android e ios a nf-e e nfc-e dependem de certificado e somente roda com openssl e capicom

mas sim funciona em firemonkey windows

Juliomar,

Bom dia. Estava lendo esse post e como estou tentando compilar no delphi Berlin sem sucesso, gostaria de saber se tenho que fazer alguma adaptação para funcionar no firemonkey windows. Segue a imagem com os erros, tentando compilar na última versão do trunk2.

 

Sem título.png

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2580 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.