Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Olá Pessoal!

 

Faz alguns anos (seis ou sete) que uso o projeto ACBr. Porém, sempre usei para uso pessoal (até hoje não desenvolvi aplicativos para vender). Tenho um PDV feito totalmente com ACBr (ECF, TEF e outros componentes).

No entanto, sempre sonhei com esse PDV e outros softwares que pretendo desenvolver rodando em Linux ou MacOS.

Há algum tempo tenho me esforçado para usar o ACBr nesses ambientes, junto com o Lazarus/FPC. Todavia, não tem sido muito fácil.

 

É óbvio que a maioria dos utilizadores e colaboradores do projeto usam exclusivamente Windows. Porém. acho que é possível avançar no desenvolvimento do ACBr atendendo a outras plataformas sem prejudicar o que já está feito (para windows).

O motivo desse post é o seguinte:

Já consegui instalar uma quantidade absurda de componentes no Lazarus/Linux e também no Lazarus/MacOS, porém toda vez que atualizo via svn, é uma tortura! Meu Deus!

Tem uma unit (ACBrECFBematech.pas) do pacote serial que me assombra toda vez. Até resolvi deixar uma cópia que consegui modificar e estava funcionando perfeitamente para substituir assim que atualizasse via svn.

 

Acontece, que vez ou outra, o pacote recebe atualizações mais severas e fica dependente de alguma nova função criada em ACBrECFBematech.pas aí o bicho pega! Só para começar tem dezenas de diretivas de compilação do tipo {$IFDEF LINUX}. Essa diretiva é a pior de todas, pois quando o compilador passa por ela no ambiente MacOS, ele ignora os procedimentos, e não devia. O ideal era substituí-la por {$IFNDEF MSWINDOWS} pois assim o código serviria tanto para Linux como para MAcOS.

Para justificar todo esse discurso, tenho uma proposta: Não seria possível criar um grupo de alguns desenvolvedores (talvez até eu mesmo consigo ajudar) para compilar os pacotes uma vez por semana em diferentes ambientes (IDE's e S.O.'s). Cada um poderia assumir um ambiente, assim podeŕiamos corrigir essas pequenas coisas que atravancam o o desenvolvimento do ACBr multiplataforma "de verdade".

 

Att,

 

Messias Henrique

Link para o comentário
Compartilhar em outros sites

  • Fundadores

A ideia é essa mesma...

 

Em  um projeto de código aberto, cada um trabalha onde tem interesse... e um projeto é tão forte quanto a sua comunidade esteja disposta a ajudar...

 

E no momento, parece que poucas pessoas tem necessidade do ACBr em  Linux ou Mac... PDV em Linux faz sentido... mas em Mac faria ? (quem vai comprar um Mac, que custa 2 vezes mais que um PC, pra rodar PDV ?)

 

Eu não tenho tempo de testar o ACBr em Linux sempre, e não tenho Mac...

 

O ideal seria usar algo parecido com o que existe no Lazarus, onde o próprio Servidor compila os fontes em diversas plataformas, toda noite...

 

Fique a vontade para sugerir alguma ação, ou captar ajuda, que possa mitigar esse problema...

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.

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Acredito Daniel que seria interessante ele subir em anexo os fontes com esses IFDEFS e com certeza nós poderiam subir ao SVN

o que acha Messias? assim como você já tem algumas correções! ;)

  • Curtir 1
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

Olá Juliomar!

 

Então, conforme você mesmo sugeriu, segue em anexo o arquivo "ACBrECFBematech.pas" com as devidas correções e já testado, no Lazarus, nas plataformas Windows, Linux e MacOS. Nesses ambientes está tudo funcionando perfeitamente.

 

Peço, por favor, a quem tiver condições, a gentileza de testar no Delphi / Windows. Apesar de que não acredito que haverá algum problema, é sempre bom prevenir.

 

Talvez o meu post inicial tenha "soado" de forma meio estranha, mas o meu objetivo é simplesmente me oferecer para ajudar nesse sentido. Como eu já disse, acompanho a história do ACBr há muito tempo, usando e apreciando, e sei das dificuldades de manter um projeto como esse.

 

Daniel, quanto ao uso de um computar da Apple para PDV, eu também acho meio estranho / ilógico, mas não descarto totalmente. No entanto, considero muito mais ainda a possibilidade de uso de outros componentes do ACBr para aplicativos no sistema da maçã. Como exemplo, podemos citar ACBrNFe, ACBrNFSe e tantos outros que serão muito úteis para quem deseja usar o computador pessoal (macbook, por exemplo) também na empresa.

 

Nesse momento mesmo, estou tentando desenvolver para um amigo, um aplicativo que fará agendamento dos seus clientes e controle financeiro do seu consultório. Ele quer que o aplicativo rode em MacOS X. Estou usando alguns componentes do ACBr para isso. Coisas simples, mas que estão sendo úteis.

Sobre a forma de testar diariamente usando um servidor que o faça automaticamente, acho que é possível... Tenho que pesquisar um pouco mais... Atualizar através de uma tarefa agendada é fácil, o problema é compilar e descobrir se deu certo ou não... Talvez dê para pegar a saída pelo console... confesso que ainda não sei. Mas vou pensar mais. Desconheço os detalhes de como os snapshots do lazarus são feitos.

 

No mais, sempre estou disposto a contribuir com o projeto.

 

Att.

 

Messias Henrique

ACBrECFBematech.pas

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

  • Fundadores

Oi Messias,

 

Suas correções estão corretas... testei no Delphi 7 e Lazarus...

 

Porém não consigo subi-las para o repositório... Estou trabalhando fora do escritório, e debaixo de um firewall com muitas restrições...

 

@Juliomar,

Pode me ajudar com o commit ?

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.

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Oi Messias,

 

Suas correções estão corretas... testei no Delphi 7 e Lazarus...

 

Porém não consigo subi-las para o repositório... Estou trabalhando fora do escritório, e debaixo de um firewall com muitas restrições...

 

@Juliomar,

Pode me ajudar com o commit ?

sim com certeza Daniel 

assim que possível hoje faço

  • Curtir 1
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

  • Consultores

Olá Messias,

 

  apesar de não fazer uso dos componentes em Linux e MacOS você está de parabéns pela iniciativa. Espero que mais usuários copiem seu exemplo.

 

  Eu gostaria de apenas esclarecer um ponto sobre a nossa parte como desenvolvedores do projeto ACBr, pois acredito que outros usuários do ACBr podem ter o mesmo mal-entendido. O ponto é este: "Talvez o meu post inicial tenha "soado" de forma meio estranha, mas o meu objetivo é simplesmente me oferecer para ajudar nesse sentido."

 

  Realmente, pelo menos a princípio pra mim, seu post soou de forma "estranha" nessa parte, onde o grifo é meu:

 

 

Há algum tempo tenho me esforçado para usar o ACBr nesses ambientes, junto com o Lazarus/FPC. Todavia, não tem sido muito fácil.

 

É óbvio que a maioria dos utilizadores e colaboradores do projeto usam exclusivamente Windows. Porém. acho que é possível avançar no desenvolvimento do ACBr atendendo a outras plataformas sem prejudicar o que já está feito (para windows).

O motivo desse post é o seguinte:

Já consegui instalar uma quantidade absurda de componentes no Lazarus/Linux e também no Lazarus/MacOS, porém toda vez que atualizo via svn, é uma tortura! Meu Deus!

 

Tem uma unit (ACBrECFBematech.pas) do pacote serial que me assombra toda vez. Até resolvi deixar uma cópia que consegui modificar e estava funcionando perfeitamente para substituir assim que atualizasse via svn.

  

  Explico o porquê soou estranho. Você já algum tempo atrás fez um tópico aqui no fórum sobre seu objetivo de portar E até onde eu sei, foi muito bem recebido pelos outros desenvolvedores, inclusive com o Daniel lhe ajudando. Eu mesmo postei lá me oferecendo a ajudar, embora não faça nenhum uso dos sistemas operacionais mencionados.

  Então, eu particularmente esperava que você voltasse no fórum postando os erros e dificuldades que tinha encontrado ou postando o código com os sucessos que tinha obtido. Mas não esperava um post dizendo que está tendo problemas a atualizar faz tempo por causa de correções que fez no código que você ainda não disponibilizou para os outros.

 

  Contudo, estou fazendo este post não por sua causa. Mas porque eu acredito que ainda há outros usuários que não entendem que eles devem entrar aqui no fórum, pesquisar e postar os problemas e também soluções que encontram. É com a participação que o projeto cresce. Um projeto de desenvolvimento open-source é tão forte quanto sua comunidade.

 

  Mais uma vez, contribuições inéditas como a sua são muito apreciadas. E sua disposição em contribuir é um bom exemplo. Parabéns e que continue com o bom trabalho!

  • Curtir 3

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

Olá Pessoal!
 
Desculpem-me pela demora ao voltar a este tópico. Infelizmente os últimos dias não foram fáceis (minha esposa perdeu o bebê que esperávamos...), mas vamos ao que interessa:
 
Daniel e Juliomar obrigado pela pronta disponibiliade em avaliar as modificações no "ACBrECFBematech.pas" e subirem ao repositório.
 

Você já algum tempo atrás fez um tópico aqui no fórum sobre seu objetivo de portar E até onde eu sei, foi muito bem recebido pelos outros desenvolvedores, inclusive com o Daniel lhe ajudando. Eu mesmo postei lá me oferecendo a ajudar, embora não faça nenhum uso dos sistemas operacionais mencionados.

  Então, eu particularmente esperava que você voltasse no fórum postando os erros e dificuldades que tinha encontrado ou postando o código com os sucessos que tinha obtido. Mas não esperava um post dizendo que está tendo problemas a atualizar faz tempo por causa de correções que fez no código que você ainda não disponibilizou para os outros.

 

Elton, obrigado pelos elogios e também por expor sua opinião sobre os trechos grifados do meu post. Realmente, pareceu apelativo e concordo com você sobre a necessidade de contribuir para fortalecer a comunidade...

Contudo, não para justificar, mas sim para desfazer qualquer confusão, desde sempre o meu propósito é colaborar com o projeto. No tópico que você mesmo citou (sobre a instalaçao dos componentes no Mac OS X) nao sei se observou bem, mas eu enviei todos os arquivos que consegui modificar para a instalação dos componentes que consegui fazer funcionar no Lazarus/MacOSX. Foram pequenas alterações, mas ainda assim fiz questão de enviar. Inclusive o Daniel fez algumas modificações a partir dessas e o próprio arquivo "ACBrBematech.pas" (que eu mantinha como cópia para pos atualização via svn) já havia sido enviado na ocasião. Mas deixa isso pra lá. Estou relatando só para frisar que pretendo, à medida que conseguir, contribuir efetivamente com o ACBr.

Bem, não tive muito tempo essa semana, mas estou enviando outros dois arquivos ("ACBrNFeDANFeRLPaisagem.pas" e "ACBrNFeDANFeRLRetrato.pas") ambos do diretório de fontes do ACBrNFe2. Fiz uma modificação bem simples em cada um deles: apenas troquei a linha (linha 1004 no ACBrNFeDANFeRLPaisagem)

TRLLabel((TRLBand(RLNFe.Controls[b])).Controls[i]).Font.Style := [fsBold];

por essa:

acOSXTRLLabel((TRLBand(RLNFe.Controls[b])).Controls[i]).Font.Bold;

Isso porque houve um problema com antiga linha na compilação do pacote no Lazarus em ambiente Linux (a versão do FortesReport é a mais recente). 

 

Só para ficar claro, esse problema só ocorreu na instalação do ACBrNFeDANFeRL no Lazarus/Linux. No windows funciona das duas formas.

 

Acredito que também vai funcionar no Delphi.

Nesse caso específico, não testei no Lazarus/MacOSX, pois ainda não consegui instalar o ACBrNFe nesse ambiente nem no Linux 64 bits.

 

Aliás, já perdi algumas madrugadas tentanto, mas ainda não sei porque o "xmlsec" está "empipinando"... Já compilei manualmente tudo que pude imaginar... (libxml2, libxslt e libxmlsec) além de outras dependências, mas por enquanto nada... Vou continuar tentando, uma hora sai...

 

Estou anexando os dois arquivos modificados, peço que vejam a viabiliadade de subí-los ao svn.

 

No mais, agradeço mais uma vez pela atenção de todos.

 

Att.

 

Messias Henrique

ACBrNFeDANFeRLPaisagem.pas

ACBrNFeDANFeRLRetrato.pas

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

  • Fundadores

Não notei nenhuma diferença no arquivo "Retrato"...

 

E a linha modificada, acredito que não funcione... Não sei se em TRLLabel é diferente... mas em TFont o correto seria atribuir um valor Booleano...  Algo como:

Label1.Font.Bold := True;
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.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Olá Messias,

Elton, obrigado pelos elogios e também por expor sua opinião sobre os trechos grifados do meu post. Realmente, pareceu apelativo e concordo com você sobre a necessidade de contribuir para fortalecer a comunidade...

Contudo, não para justificar, mas sim para desfazer qualquer confusão, desde sempre o meu propósito é colaborar com o projeto.

  Por mim já não há mais confusão, entendi bem a sua disposição. Obrigado por procurar me entender também.

Ah! E não precisa agradecer pelos elogios, foram sinceros. É realmente como eu penso.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

Olá Daniel!

 

 

Não notei nenhuma diferença no arquivo "Retrato"...

 

E a linha modificada, acredito que não funcione... Não sei se em TRLLabel é diferente... mas em TFont o correto seria atribuir um valor Booleano...  Algo como:

Label1.Font.Bold := True;

 

Você tem razão. a sintaxe correta deveria ser 

...font.bold := true;

Mas é óbvio que isso teria o mesmo efeito que

...font.style := [fsbold];

que é o que está no arquivo original.

 

O fato é que estava dando erro apenas no Linux, aí investiguei melhor e vi que a unidade "Graphics" estava declarada dentro de uma diretiva {$IFDEF MSWINDOWS}, o que faz com que fique fora de escopo do compilador no Linux. No entanto, essa unidade (Graphics) pode ser declarada abertamente sem restrições, então apenas modifiquei isso.

 

Ah! também me equivoquei quanto aos arquivos. Um deles é realmente o "ACBrNFeDANFeRLPaisagem.pas" porém o outro é o "ACBrNFeDANFeEventoRLRetrato.pas".

 

Estou anexando os dois arquivos com a simples alteração da forma de declarar essa unidade. Peço a gentileza de verificar, quando puder, é claro.

 

Mais uma vez, obrigado pela atenção!

 

Att.

 

Messias Henrique

ACBrNFeDANFeEventoRLRetrato.pas

ACBrNFeDANFeRLPaisagem.pas

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

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