Ir para conteúdo
  • Cadastre-se

RibaSoft

Membros
  • Total de ítens

    146
  • Registro em

  • Última visita

  • Days Won

    1

Tudo que RibaSoft postou

  1. Eureca!!! Ficou assim... No DataModulo //Adiciona a procedure ao evento Application.OnException := @OnException; //Forms //============================= ON EXCEPTION =================================\\ procedure TDataModulo.OnException(Sender: TObject; E: Exception); var auxLog: TextFile; begin try AssignFile(auxLog, 'Log_Exceptions.txt'); if (FileExists('Log_Exceptions.txt')) then begin Append(auxLog); end else begin Rewrite(auxLog); WriteLn(auxLog, 'Log de Erros!'); WriteLn(auxLog, ''); end; WriteLn(auxLog, FormatDateTime('dd/MM/yyyy - hh:mm:ss',now) + '=> Erro: ' + E.ClassName + ' - ' + E.Message); //Aqui é onde registra os detalhes do erro DumpExceptionBackTrace(auxLog); WriteLn(auxLog, '======================================================='+ '================================'); finally CloseFile(auxLog); end; Riba.Aviso('Erro: ' + E.ClassName + ' - ' + E.Message); end; //=============================== RESULTADO DO LOG 17/09/2019 - 00:40:48=> Erro: EConvertError - " " is an invalid integer $00501536 $0045C6C7 TFORMCLIENTES__EDITBUSCARCHANGE, line 290 of unitClientes.pas $005DB395 TCUSTOMEDIT__CHANGE, line 652 of ./include/customedit.inc $005DB33A TCUSTOMEDIT__TEXTCHANGED, line 644 of ./include/customedit.inc $005BCD6B TCONTROL__CMTEXTCHANGED, line 1203 of ./include/control.inc $0040E828 $005B4801 TWINCONTROL__WNDPROC, line 5419 of ./include/wincontrol.inc $005DAF03 TCUSTOMEDIT__WNDPROC, line 528 of ./include/customedit.inc $006525CF DELIVERMESSAGE, line 112 of lclmessageglue.pas $0059B5BD TWINDOWPROCHELPER__DOWINDOWPROC, line 2515 of win32callback.inc $0059BC8B WINDOWPROC, line 2677 of win32callback.inc $006491ED GROUPBOXWINDOWPROC, line 576 of win32wsstdctrls.pp $75E96238 $75E968EA $75E9CD1A $75E9CD81 $72596508 ======================================================================================= //Na segunda linha mostra o nome do form, o evento, a linha do erro e o nome da unit onde ocorreu o erro. Muito bom, brigadão EMBarbosa, perfeito!!!
  2. Não devo ter me espessado direito, mas é exatamente o que preciso, tratar erros que não foram tratados e criar um log que me ajude a identificar a origem do erro, não tenho palavras pra agradecer sua ajuda em me orientar, vou pesquisar sobre o callstack pois não sei como funciona, e quanto ao segundo modo citado, realmente não parece haver vantagens. DEUS abençoe pela ajuda.
  3. Arrumei conforme vc falou, testei no DataModulo e no FormPrincipal, o ruim de fazer assim é que não vem o nome do Form no Sender, dai meu log não vai registrar da onde veio o erro, e nem consigo fechar aquele form especifico, mas se fica mais estável vou seguir seu conselho e deixar como está, pelo menos não aparece mais o abort que o cliente sempre clica e fecha toda a aplicação. DEUS abençoe pela ajuda.
  4. Show a explicação, só uma ultima pergunta se não for abusar, eu usando o componente mencionado no datamodulo ele pegara as exception de toda a aplicação? pela logica acho que sim né pois vc falou que se trata de um evento da aplicação e não do form.
  5. Boa noite fico muito contente pelas suas explicações, vou tentar coloca-las em prática. Só para entender melhor, meu form padrão nunca é criado (instanciado), ele serve apenas para que os forms herdeiros herdem seus eventos e propriedades, o meu form que é instanciado junto com o sistema é o formPrincipal que também é herdeiro do form padrão, minha duvida é: Se esse evento o Application.OnException que é herdado pode dar problemas, o meus outros eventos herdados tambem podem dar problemas? tipo o onKeyPress que uso para fechar todos os forms com o ESC? Sou autodidata por isso não tenho tanta experiência, acho que não venho usando corretamente a herança de classes. Preciso estudar mais.
  6. Olá queridos companheiros, pesquisei muito sobre uma forma de tratar erros inesperados que causam o fechamento da aplicação e acabei descobrindo (ou inventando kkk), um modo de tratar todos os erros que não foram tratados, vi uma postagem de mais de um ano aq no forum mas não puder dar sequencia nela por estar fechada. Nesse post vi a sugestão do componente TApplicationProperties, para usar seu evento OnException, mas ao tentar usar ele, disparava 3 vezes, sem contar que ao colocar um componente em um form e herda-lo, ele componente fica aparecendo em todos os forms e eu só meio xarope e isso me incomoda. Seguinte.... Eu uso um FormPadrao no qual estão todas procedures (ferramentas) criadas por mim e algumas outras facilidades como mudar de campo com Enter, fechar as janelas com Esc, etc. E derivo todos os meus outros forms desse para herdarem essas funções e propriedades. Nele eu criei o seguinte procedimento. //================================== Inicio do Procedimento ==================================\\ procedure TFormPadrao.OnException(Sender: TObject; E: Exception); var auxLog: TextFile; begin try AssignFile(auxLog, 'Log_Exceptions.txt'); if (FileExists('Log_Exceptions.txt')) then begin Append(auxLog); end else begin Rewrite(auxLog); WriteLn(auxLog, 'Log de Erros!'); WriteLn(auxLog, ''); end; WriteLn(auxLog, FormatDateTime('dd/MM/yyyy - hh:mm:ss',now) + ' => Origem: ' + Sender.ToString + ' => Erro: ' + E.Message); finally CloseFile(auxLog); end; Riba.Aviso('Origem: ' + Sender.ToString + ' => Erro: ' + E.Message); if(Sender is TForm)then (Sender as TForm).Close; end; //================================== Fim do Procedimento ==================================\\ E no evento onCreate eu digitei essa linha que associa um procedimento ao um evento Application.OnException := @OnException; Agora todo erro não tratado é mostrado na tela, fecha só o form que deu o erro e faz um log dos erros. obs. Esse Riba.Aviso é pra mostrar mensagens na tela do meu jeito. Se eu fiz algo errado no post me corrijam por favor pois é meu primeiro post compartilhando informação. DEUS abençoe a todos.
  7. Desculpem, tinha retirado a tabela pra atualização mas já esta disponível novamente, DEUS abençoe
  8. Ola Eu tenho a tabela com relação ncm, cest, cfop, csosn, ibpt_estadual e ibpt_federal do parana www.ribasoft.com.br => downloads => regras Está em txt bem formatadinho com espaços
  9. Deu certinho, DEUS abençoe Era só a configuração das margens mesmo como o "DIMAS - DBSOFT" falou, como que marco como resolvido? Muito obrigado pela rapida resposta, era pra eu ter respondido antes mas to meio perdido ainda na forma de usar o forum
  10. Nos fonts antigos está normal mas quando atializo os fonts fica assim. Não sei se era o caso de criar um novo topico, me orientem por favor se fiz errado. DEUS abençoe
  11. Boa noite amigo, comigo esta acontecendo a mesma coisa, vc conseguiu resolver?
  12. DEU CERTO!!! Mudei para o Openssl dai resolveu, muito obrigado mesmo, DEUS abençoe a todos que se preocuparam em me ajudar.
  13. Só uso o A1 Muitissimo obrigado, vi que outro cliente meu esta com o mesmo problema e o provedor de internet é outro, deve ser isso mesmo que vc falou, vou testar e respondo aq depois, DEUS abençoe
  14. NFC.Configuracoes.Geral.SSLLib := libWinCrypt; NFC.Configuracoes.Geral.SSLXmlSignLib := xsLibXml2;
  15. Bom dia, muito obrigado pela atenção, é o erro 12152 e não o 12169, mas mesmo assim vou fazer esse procedimento, pois o cliente está a 2 dias sem emitir notas. Ainda falta eu trazer o pc dela pra ver se tem algo relacionado ao provedor de internet, dai eu posto aq o resultado. DEUS abençoe a todos.
  16. Muito obrigado pela boa vontade em me ajudar, o problema esta só em um cliente, vou trazer o PC dele pra testar na internet daqui, o provedor dele é diferente do meu. Já fiz de tudo, mudei as configurações de internet, troquei o antivírus, desabilitei o firewall e continua dando o mesmo erro. Sou da Cidade de Carlópolis, Paraná, se vc conseguir algo e puder me avisar ficarei muito grato. DEUS abençoe.
  17. Olá, tem um tópico parecido com esse aberto porem não finalizado, e estou com esse mesmo problema no pc de apenas um cliente, copiando o sistema dele para o meu pc funciona normal, alguém descobriu como solucionar esse erro interno 12152? To o dia inteiro pesquisando e não encontro nada que resolva Por favor é a primeira vez que peço ajuda, pois sempre pesquiso muito antes de incomodar os outros.
  18. Refiz todo o processo de emissão e tratamento de erro, coloquei pra só salvar o xml no banco quando for autorizado, mantendo o xml original em uma pasta e consultando através dela, assim ficam separados os xmls originais dos salvos em banco, vou distribuir e testar, muito obrigado pela ajuda. DEUS abençoe
  19. Ela é autorizada, pois quando tento enviar novamente da duplicidade, e quando tento consultar da digestvalue diferente. Muito obrigado pela atenção, vou seguir sua dica. DEUS abençoe.
  20. Boa tarde É a primeira vez que peço ajuda no forum, pois percebo que quando se faz pergunta que já foi feita, ou pergunta simples, o pessoal fica meio bravo em responder, (não que seja o seu caso), por isso desenvolvi minha aplicação inteira sem preguntar nada, mas estou com um problema que a muito tempo tenho pesquisado e não consigo resolver, tenho uns 15 clientes, e de vez em quando, em torno de 2 a cada 1400 notas, acontece o seguinte, na hora do retorno do xml autorizado, por algum problema, provavelmente conexão, é perdido o xml, e quando tento consultar dá que o disgest value esta diferente, ja tentei de várias formas, varios tipos de tratamento de erro, eu codigo ta virando uma bagunça e não consigo resolver, queria lhe pedir por favor que me ajude assim que possivel, não sei mais o que fazer. Ficarei eternamente grato. NFC.zip
  21. Tenho a mesma duvida, e vou tentar explicar melhor, tem como salvar em banco de dados as informações de retorno do sefaz para que seja gerada uma nota autorizada a qualquer momento, pois um pequena cagadinha e a gente perde o xml autorizado, o programa gratuito do governo tem uma opção de exportar xml, acho que ele faz dessa forma que queremos fazer.
×
×
  • 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.