Ir para conteúdo
  • Cadastre-se

dev botao

Acbrnfemonitor Para Xe2(Indy10)


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

Recommended Posts

Boa tarde.

 

      Estava com a necessidade de um projeto do ACBrNFeMonitor adequado para o Indy 10 para uso com o Delphi XE2 e não encontrei nenhum pelo fórum, mas acabei encontrando várias pessoas com o mesmo interesse. Então baixei os fontes atuais a partir do SVN e efetuei as mudanças necessárias para adequar aos componentes do Indy 10. Apenas removi os componentes Rave por não usa-los e nem ter o mesmo instalado em meu Delphi, seria fácil de voltar eles ao projeto através de um Diff, sem maiores complicações.

      Gostaria de saber se seria possível dar esta contribuição com o projeto para adequá-lo ao Indy 10, ou mesmo se algum usário teria interesse nos fontes do projeto.

 

 

 

Att, Evandro.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Humm.. resta saber se a Indy10 roda corretamente no D7...

 

O ideal seria remover a dependecia da Indy, usando apenas o ACBrTCPServer (que encapsula a Synapse), assim como ocorreu no ACBrMonitor

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

     Segue em anexo os fontes, desculpe a demora, estou lidando com o projeto no meu expediente de trabalho, e devido ao feriado prolongado não estava com acesso aos fontes, e também estava tentando resolver um problema que não consegui e irei aproveitar para pedir a ajuda de vocês, abaixo vou fazer algumas observações:

 

- Todas as funções da DANFE não estão funcionando, pois o meu compilador não tem Rave e não usamos a impressão do monitor, porém como já disse é possível com um simples diff voltar o que foi comentado/retirado do form.

 

- Tem uma anotação no código com o comentário //REVER SINCRONIZAÇÃO, vale a pena dar uma olhada na mesma. (EDIT: fiz uma alteração aqui, que seria para manter a sincronização e funcionar corretamente em caso de mais de uma execução simultanea, abaixo deste comentário tem a linha chamando o procedimento 'processar', substituir a linha por      TIdSync.SynchronizeMethod(Processar); Lembrando que deve-se adicionar o use da unit IdSync.)

 

- Como mencionado acima, estava com um problema que não consegui resolver, e precisei contornar o mesmo para poder executar e testar, estive com problemas nas funções StringToFloatDef e StringToFloat em ACBrUtil, quando o sistema não encontrava a linha no arquivo IniRec, ao entrar nessas funções o valor de NumString era '', mas ao inves de dar erro e cair no except e voltar o valor default, o compilador dava erro de conversão ignorando o except, tentei de várias formas e nada, e nem ao menos entendi a real razão do problema, por conta disso precisei contornar o problema atribuindo em StringToFloat o valor de '0' para a variavel NumString caso a mesma fosse de valor '', e ao retornar para a função StringToFloatDef, troquei o except por um finally, aonde ao verificar o valor 0, ele usaria o valor default, resolveu o problema para testar as funcionalidades, porém está extremamente errado, e gostaria da ajuda de vocês para resolver esta situação. Espero que tenha dado para entender esta parte do problema.


Abaixo como contornei a situação citada acima no ACBrUtil, e a qual preciso de ajuda:
Function StringToFloatDef( const NumString : String ;
   const DefaultValue : Double ) : Double ;
begin
  try
     Result := StringToFloat( NumString ) ;
  finally
     if (Result = 0) and (NumString = '') then
        Result := DefaultValue ;

  end ;
end ;

Function StringToFloat( NumString : String ) : Double ;
begin
  NumString := Trim( NumString ) ;

  if DecimalSeparator <> '.' then
     NumString := StringReplace(NumString,'.',DecimalSeparator,[rfReplaceAll]) ;

  if DecimalSeparator <> ',' then
     NumString := StringReplace(NumString,',',DecimalSeparator,[rfReplaceAll]) ;

  if NumString = '' then
     NumString := '0';

 
  Result := StrToFloat(NumString)
end ;

Monitor.rar

Editado por EvandroPG
Link para o comentário
Compartilhar em outros sites

Humm.. resta saber se a Indy10 roda corretamente no D7...

 

O ideal seria remover a dependecia da Indy, usando apenas o ACBrTCPServer (que encapsula a Synapse), assim como ocorreu no ACBrMonitor

 

Segui este tutorial

http://fabriciodev.blogspot.com.br/2012/09/instalando-indy-10-no-delphi-7.html

 

Rodou perfeitamente o Indy10 no meu D7, mas acredito que a melhor opção fosse manter um código que funcione para ambos ou remover a dependencia como dito. Tabem existe a opção de diretrizes de compilação, onde é possível manter um código para Indy9 e Indy10 ao mesmo tempo.

Link para o comentário
Compartilhar em outros sites

Alguma alma bondosa poderia tentar me ajudar com o problema citado no post do anexo? :mrgreen:

estive com problemas nas funções StringToFloatDef e StringToFloat em ACBrUtil, quando o sistema não encontrava a linha no arquivo IniRec, ao entrar nessas funções o valor de NumString era '', mas ao inves de dar erro e cair no except e voltar o valor default, o compilador dava erro de conversão ignorando o except, tentei de várias formas e nada
Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
  • Fundadores

Tenta usar o ACBrTCPServer... ele é bem mais simples do que a Indy.. e você pode ver um exemplo de implementação nos fontes do ACBrMonitor (em Lazarus)

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

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

The popup will be closed in 10 segundos...