CODIGO A PROVA DE USUARIO
Bom dia!
Todo desenvolvedor de Software sabe que é muito difÃcil criar
um programa sem [Ô]BUG[Ô].Um dos motivos disto é o usuário.é
impossÃvel prever tudo o que um usuário fará, ao usar o programa.
Criei um programa, que em determinado momento gera um relatório.
Caso o usuário deseje , o relatório é exportado para o DeskTop no
formato .xls (Excel). Se já existir um relatório anterior no Desktop,
o mesmo é deletado e outro com mesmo nome salvo.Funcionava muito bem,
até que um dia o usuário reclamou que os relatórios não estavam mais
funcionando. Depois de vários testes, não consegui encontrar nenhum problema. Até que,
foi pedido ao usuário para narrar o dia-a-dia dele.Como ele lida
com o programa.
Descobriu-se que ele tira o mesmo relatório duas veses ao dia.Até aqui tudo bem.
O problema é que ao abrir o relatório exportado no Desktop, ele não o fechava
mas deixava aberto (Minimizado) até de tarde, quando tira e exporta o segundo relatório
para o Desktop. Resultado....
Ao tentar deletar o anterior no Desktop, o programa não consegue ,pois o mesmo
esta aberto(Minimizado) desde de manhã.....
E agora????????
Bom, pergunto aos colegas:
Existe algum código em VB que consiga forçar o fechamento de uma planilha que esteja
aberta (Minimizada) na tela?????
Todo desenvolvedor de Software sabe que é muito difÃcil criar
um programa sem [Ô]BUG[Ô].Um dos motivos disto é o usuário.é
impossÃvel prever tudo o que um usuário fará, ao usar o programa.
Criei um programa, que em determinado momento gera um relatório.
Caso o usuário deseje , o relatório é exportado para o DeskTop no
formato .xls (Excel). Se já existir um relatório anterior no Desktop,
o mesmo é deletado e outro com mesmo nome salvo.Funcionava muito bem,
até que um dia o usuário reclamou que os relatórios não estavam mais
funcionando. Depois de vários testes, não consegui encontrar nenhum problema. Até que,
foi pedido ao usuário para narrar o dia-a-dia dele.Como ele lida
com o programa.
Descobriu-se que ele tira o mesmo relatório duas veses ao dia.Até aqui tudo bem.
O problema é que ao abrir o relatório exportado no Desktop, ele não o fechava
mas deixava aberto (Minimizado) até de tarde, quando tira e exporta o segundo relatório
para o Desktop. Resultado....
Ao tentar deletar o anterior no Desktop, o programa não consegue ,pois o mesmo
esta aberto(Minimizado) desde de manhã.....
E agora????????
Bom, pergunto aos colegas:
Existe algum código em VB que consiga forçar o fechamento de uma planilha que esteja
aberta (Minimizada) na tela?????
Sugestão, não gere com o mesmo nome!
coloque além do nome a hora por exemplo.
EU ODEIO USUÃRIO, Mas quem paga a conta são eles!!!!!!!!!
coloque além do nome a hora por exemplo.
EU ODEIO USUÃRIO, Mas quem paga a conta são eles!!!!!!!!!
O princÃpio básico é: o usuário é um macaco, isso mesmo um macaco. Sempre tenha em mente que ele pode fazer as coisas mais absurdas possÃveis. Eu parei de me espantar com a capacidade deles de fazer besteira já faz tempo.
Mas como disse o amigo Jesuel, o melhor mesmo é gerar o arquivo com nome dinâmico, usando a hora como ele falou
concordo, gerando com com os caracteres da data e hora..
strsql = relatorio & format(date,[Ô]ddmmyyyy[Ô]) & format(time,[Ô]hh:mm:ss[Ô]) & [Ô].xls[Ô]
strsql = relatorio & format(date,[Ô]ddmmyyyy[Ô]) & format(time,[Ô]hh:mm:ss[Ô]) & [Ô].xls[Ô]
Encontre uma forma de exibir uma mensagem para o usuario [Ô]ARQUIVO EXCEL GERADO COM SUCESSO[Ô] ou [Ô]NÃO FOI POSSIVEL GERAR ARQUIVO EXCEL[Ô].
Voce pode fazer isso comparando a data e hora do arquivo antes e depois da geração, pois se a data e hora forem diferentes é porque foi gerado e se continuam iguais é porque não foi gerado.
Voce pode fazer isso comparando a data e hora do arquivo antes e depois da geração, pois se a data e hora forem diferentes é porque foi gerado e se continuam iguais é porque não foi gerado.
no meu caso sempre eu gero o arquivo passando data e hora, assim fica bem mais dificil da esse tipo de problema.
Citação::
O princÃpio básico é: o usuário é um macaco, isso mesmo um macaco...
Um macaco com um revólver na mão!!!
Tenho uma aplicação que AVISA ao usuário que, em um sistema de faturamento, outro usuário já está fazendo o faturamento para o produto. O usuário simplesmente fechava o programa (clicando no X). Depois reclamava que haviam inúmeras faturas diferentes para o mesmo produto.
O melhor códgo contra erros do usuário é abrir o FORM1 sem nenhum objeto dentro. O CABRA é CAPAZ DE ABRIR DUAS VEZES A APLICAÇÃO E DIZER QUE ESTà DENDO ERRO.
Engraçado como sempre procuramos um culpado para alguma coisa não?
Coitado do usuário (tenho vários e passo por isso todos os dias), mas como o ADEMILSON bem falou, os bugs sempre estão no programa, por culpa exclusiva do programador. O [Ô]Coitado[Ô] do usuário só fez o favor de encontrar e demonstrar que alguém fez algo errado ou pior, esqueceu de fazer todas as validações necessárias. Imaginem se o Windows não fizesse milhares de validações para qualquer coisa? Aquela telinha azul seria visÃvel talvez a cada x milessegundos.
Todo software tem que ter no mÃnimo um tratamento de erro genérico, algo não previsto que se ocorrer ele intercepta, avisa etc...
Neste caso especÃfico eu recomendaria que na rotina de criação de sua planilha, você fizesse vários testes, tentando gravar em mÃdias com permissão de acesso somente leitura, arquivos já existente, ou em uso e pegando os códigos de erro, desse o devido tratamento. Caso ocorra um erro não previsto, gera um aviso e aborta a ação, simples assim.
Deste modo se você abrir o arquivo com o excel e rodar seu programa para gravar novamente, terá o erro correspondente para tratá-lo e assim emitir um aviso correto ao usuário, tipo:
Favor fechar o arquivo xxx antes de continuar. e manda tentar novamente.
A sugestão de gerar o arquivo com nome diferente é válida, mas pode ir poluindo a tela do usuário, a menos que ele seja informado de que deve excluir o mesmo ao final do dia por exemplo.
Coitado do usuário (tenho vários e passo por isso todos os dias), mas como o ADEMILSON bem falou, os bugs sempre estão no programa, por culpa exclusiva do programador. O [Ô]Coitado[Ô] do usuário só fez o favor de encontrar e demonstrar que alguém fez algo errado ou pior, esqueceu de fazer todas as validações necessárias. Imaginem se o Windows não fizesse milhares de validações para qualquer coisa? Aquela telinha azul seria visÃvel talvez a cada x milessegundos.
Todo software tem que ter no mÃnimo um tratamento de erro genérico, algo não previsto que se ocorrer ele intercepta, avisa etc...
Neste caso especÃfico eu recomendaria que na rotina de criação de sua planilha, você fizesse vários testes, tentando gravar em mÃdias com permissão de acesso somente leitura, arquivos já existente, ou em uso e pegando os códigos de erro, desse o devido tratamento. Caso ocorra um erro não previsto, gera um aviso e aborta a ação, simples assim.
Deste modo se você abrir o arquivo com o excel e rodar seu programa para gravar novamente, terá o erro correspondente para tratá-lo e assim emitir um aviso correto ao usuário, tipo:
Favor fechar o arquivo xxx antes de continuar. e manda tentar novamente.
A sugestão de gerar o arquivo com nome diferente é válida, mas pode ir poluindo a tela do usuário, a menos que ele seja informado de que deve excluir o mesmo ao final do dia por exemplo.
Pessoal, muito obrigado!
A Solução de adicionar a data e horário de fato é a melhor.
Quanto ao usuário.......bom ,este não tem solução.
Rss
A Solução de adicionar a data e horário de fato é a melhor.
Quanto ao usuário.......bom ,este não tem solução.
Rss
Tópico encerrado , respostas não são mais permitidas