Dividir aplicação em Módulos. Como? .exe, dll ou packages.
24/05/2005
0
Na aplicação que trabalho ao pedir para visualizar os relatórios isso acaba travando o sistema, devido a grande quantidade de páginas nos relatórios. Por exemplo 200 páginas e até mais dependendo do usuário.
Nos relatórios não é possível mexer ou alterar por que eles controlam as ligações de todos os ramais de uma empresa de médio porte. Por aí dá para ter uma ídeia. E são muitos relatórios e gráficos com filtros diferentes.
Meu chefe pediu para separar os relatórios da aplicação.
A minha dúvida é como posso dividir a aplicação de maneira eficiente.
Qual opção seguir? Outro executável a parte? DLL? ou Packages?
Estou com dúvidas porque é a primeira vez que faço.
Desde já sou grato por vossa colaboração.
mazeu :lol:
Mazeu
Post mais votado
25/05/2005
Use Thread para fazer as operações que podem ´travar´ a máquina por alguns segundos.
Yallebr
Mais Posts
25/05/2005
Massuda
Só um detalhe... embora eu não conheça seu aplicativo, é pouco provável que modularizar o sistema vá resolver o problema na demora para gerar os relatórios. Geralmente a demora está relacionada com a execução das queries necessárias para gerar os dados do relatório. Se a modularização está sendo proposta para sanar esse problema, acho que o caminho não seria esse.
25/05/2005
Mazeu
Talvez eu não tenha me espressado direito.
O problema na verdade não é a demora na geração de relatórios, mesmo por que a quantidade deles é grande.
Na verdade o sistema tem muitas rotinas e tais se comunicam com a porta serial da máquina e isso acontece em miléssimos de segundos. O travamento acontece quando o usuário quer visualizar os relatórios. Então a comunicação com a placa serial é cortada, isso não pode acontecer em hipótese alguma é essencial que o programa trabalhe inimterruptamente. De fato não sabemos qual é a melhor solução para contornar este problema. Se alguém souber uma solução por favor me responda. Só gostaria de um direcionamento para a melhor solução
Grato,
mazeu :lol:
25/05/2005
Massuda
Normalmente, um aplicativo Delphi possui apenas uma thread de execução. No seu caso, como tudo está nessa thread, enquanto o aplicativo aguarda o relatório ser gerado ele não pode coletar dados da porta serial. O ideal seria criar uma thread só para fazer a coleta de dados da porta serial. Uma boa referência (em inglês) sobre threads em Delphi está [url=http://www.pergolesi.demon.co.uk/prog/threads/ToC.html]neste site[/url].
Se optar por ter dois programas, seria bom fazer um programa que coletasse e armazenasse os dados da porta serial e outro apenas para emitir os relatórios, sem necessidade de utilizar packages, DLLs e outros bichos.
Acho que a solução mais simples (e menos problemática) seria fazer os programas separados.
Independente da solução a ser adotada, espero que vocês estejam executando esse programa com um SO decente (Win NT, 2K ou XP) numa máquina adequada. Dependendo do volume de dados armazenados, o BD também é um gargalo que vale a pena ser investigado.
25/05/2005
Mazeu
Porém se alguém já viveu uma experiência similar gostaria de compartilhar.
Grato a todos, e bom trabalho!
mazeu :lol:
Clique aqui para fazer login e interagir na Comunidade :)