Ir para conteúdo
  • Cadastre-se

EMBarbosa

Consultores
  • Total de ítens

    9.935
  • Registro em

  • Última visita

  • Days Won

    127

Tudo que EMBarbosa postou

  1. Parece que está ok. Obrigado Juliomar.
  2. Me pareceu que no arquivo anexado não dá pra ver o ACBrECF listando as alíquotas e suas descrições...
  3. Talvez possa ser a diferença da versão do Software Básico. Já verificou essa possibilidade?
  4. Normalmente aconselhamos colocar na mesma pasta do Executável.
  5. Conforme o post no site do SPED datado de hoje 16/06/2014: Fiquem atentos.
  6. Este problema é devido a uma alteração feita pelo Juliomar na revisão 6977. Vou precisar verificar com ele o que foi que levou à alteração.
  7. Como? Bem isso a legislação não diz. Mas ele deve ser guardado de maneira que você garanta a recuperação. Ou você pode sofrer a penalidade de receber multas e tributações pelo que você não tem como provar que vendeu ou não vendeu. No entanto, se depois de recuperar o arquivo (seja do campo BLOB ou outro lugar) você não conseguir reproduzir a assinatura digital, isso significa que o arquivo é inválido.
  8. O caso do Pedro_Paulo foi resolvido conforme o
  9. Veja: Aproveitando, crie um tópico novo para uma dúvida nova conforme as regras. Veja neste em especial a "2.2 - Permaneça no assunto".
  10. O registro C114 é filho do C110. Você está criando os registros C110 antes? Não consegui reproduzir seu problema com o Demo do ACBrSPEDFiscal. Você fez alguma alteração no código do Demo para testar? Queira disponibilizar para que eu possa averiguar.
  11. EMBarbosa

    ACBRDownload

    Vai ser necessário fazer uma limpeza no seu computador e reinstalar o ACBr. Siga os passos delineados
  12. Você vai precisar usar o debug, usando o F7, e descobrir qual exatamente a linha do método RegistroC114New onde acontece esse problema.
  13. Infelizmente, sem as exatas alterações que eu pedi e sem os logs eu não tenho como aprofundar mais nesse problema até que consiga um ECF físico e tempo para testar...
  14. Bem, eu não tenho um ECF destes aqui para testar... Por favor, faça as alterações que eu sugeri, faça o build e anexe o log depois de cada alteração. Tenha certeza de que só as alterações que eu sugeri estão no código.
  15. Olá EddieBr, Vou pedir para que você faça dois testes. Vou apontar onde você vai alterar no código e vamos ver o comportamento se melhora ok? Você deve fazer o seguinte. Faça uma alteração primeiro. Faça Build dos componentes. Faça o Build do ECFTeste. Faça o teste. Anexe o log. Faça a outra alteração. Faça Build dos componentes. Faça o Build do ECFTeste. Faça o teste. Anexe o log. Aqui vão: Arquivo ACBrECFClass.pas, método TACBrECFClass.DoLeResposta (por volta da linha 1851), aumente o timeout do fpDevice.LeString de 100 para 2000, conforme abaixo: Fim := True ; if not FimLeitura then begin Fim := False ; try fpRespostaComando := fpRespostaComando + { Le conteudo da porta } fpDevice.LeString(2000) ; // ALTERADO AQUI !!!!! // fpDevice.LeString(100) ; // ESTAVA ASSIM!!!!! Segunda e Terceira Alteração são no arquivo ACBrECFBematech.pas. Método TACBrECFBematech.VerificaFimImpressao, por volta da linha 1044. Veja abaixo: try GravaLog(' '+FormatDateTime('hh:nn:ss:zzz',now)+' VerificaFimImpressao: Pedindo o Status (19)' ) ; fpDevice.Serial.Purge ; // Limpa buffer de Entrada e Saida // fpDevice.EnviaString( Cmd ); // Envia comando // // espera ACK chegar na Porta por 1,5s // wACK := fpDevice.LeByte( 3000 ) ; //ALTERADO AQUI !!!! // wACK := fpDevice.LeByte( 1500 ) ; //ESTAVA ASSIM !!!! if wACK = 6 then // ECF Respondeu corretamente, portanto está trabalhando // begin GravaLog(' '+FormatDateTime('hh:nn:ss:zzz',now)+' VerificaFimImpressao: ACK = 6, OK... Aguardando ST1 e ST2' ) ; TempoLimite := IncSecond(now, TimeOut); fsFalhasFimImpressao := 0 ; // Aguarda ST1 e ST2 por mais 2 segundos // RetCmd := fpDevice.LeString( 4000, 2 ) ; // ALTERADO AQUI!!!!! // RetCmd := fpDevice.LeString( 2000, 2 ) ; // ESTAVA ASSIM !!!! Result := (Length( RetCmd ) >= 2) ; end else raise EACBrECFErro.Create( 'ACK <> 6' );
  16. O que a está escrito na wikipédia é justamente o que eu escrevi ali acima. O documento que eu citei tem uma explicação mais profunda. A propósito, esse é um problema de qualquer linguagem. O que acontece é que algumas tem uma precisão maior, então pode ter passado despercebido. Claro, a forma como o compilador trata as variáveis e as constantes também pode influir. Mas sempre haverá o problema da imprecisão por se tentar representar um conjunto infinito de números num espaço limitado de memória ou seja um conjunto finito.
  17. Apenas para explicar, as dlls devem ser de acordo com o aplicativo que fará as chamadas e não com o sistema operacional. Assim, se o aplicativo é 32 bits, mesmo estando instalado em um sistema operacional de 64 bits, as dlls devem ser 32 bits.
  18. Talvez alguma incompatibilidade do Delphi 2010 com o Windows 8.1 64 bits.
  19. Que problemas? Poderia ser mais específico? Qual o comportamento que você esperava? Qual o comportamento que encontrou?
  20. Daria pra reproduzir o cabeçalho do arquivo de log deste teste no ECFTeste? Informe outros parâmetros também (Intervalo entre comando, por exemplo). Parece que o timeout é pequeno.
  21. Na verdade, a princípio, você não deveria fazer esse tipo de comparação. É para isso que existem as funções como SameValue, CompareValue, IsZero na unit Math do Delphi (e Lazarus). Daniel, provavelmente o que você quer é algo mais parecido com o What Every Computer Scientist Should Know About Floating- Point Arithmetic. De forma resumida, o que acontece é que, como existem números infinitos e memória limitada, alguns números não são possíveis ser representados. Então para esses números os valores são armazenados internamente com uma aproximação. Então, dependendo do valor, temos que lidar com uma aproximação. Tem outro tópico no fórum onde teremos que lidar com um problema semelhante devido as peculiaridades dos pontos flutuantes. Inclusive com código para teste. Finalmente, essas diferenças são o motivo de muitas pessoas aconselharem a trabalhar com o tipo Currency para valores monetários ou onde não se pode perder a precisão. O tipo Currency não é armazenado como um float, mas como de ponto fixo (mais precisamente como um int64). O problema é que nesse caso, ele possui um número de dígitos significativos limitado, não sendo possível expressar nenhuma diferença entre valores fora de sua precisão (que é 4). Assim, para os valores Currency, não há diferença entre 1,12345678 ou 1,12348765.
  22. Olá Poliany, você tentou ler o log? Tem alguma informação a mais? Poderia anexar o log?
  23. Parece que o comando que pega o NumLoja não foi pego no log. Poderia verificar se faltou chamar esse refazendo os passos?
  24. Esse é um erro fatal originado por um outro erro. Você precisa postar a mensagem completa de erro especialmente com os erros imediatamente anteriores a esse, para sabermos o que aconteceu.
×
×
  • 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...