Dividir aplicação em Módulos. Como? .exe, dll ou packages.

24/05/2005

0

Olá Amigos.
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

Mazeu

Responder

Post mais votado

25/05/2005

Amigo,


Use Thread para fazer as operações que podem ´travar´ a máquina por alguns segundos.


Yallebr

Yallebr
Responder

Mais Posts

25/05/2005

Massuda

Esse assunto é frequentemente abordado aqui no fórum. Experimente [url=http://forum.clubedelphi.net/search.php]pesquisar[/url] o fórum pelo termo [b:afbd231932]modularização[/b:afbd231932].

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.


Responder

25/05/2005

Mazeu

Obrigado pela resposta.
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:


Responder

25/05/2005

Massuda

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.
Nesse caso, o que você precisam é fazer processamento multithread ou dividir o programa em dois programas distintos (´modularização´).

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.


Responder

25/05/2005

Mazeu

Obrigado pela orientação, vou fazer os testes mas acredito que o mais indicado seja mesmo o thread.
Porém se alguém já viveu uma experiência similar gostaria de compartilhar.

Grato a todos, e bom trabalho!

mazeu :lol:


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar