Página 1 de 1

Gaspro - Agenda

Enviado: 26 Set 2016 14:34
por prmuller
Amigos, boa tarde!

Em uma aplicação gerada pelo Gaspro e convertida segundo aprendi aqui no fórum, precisaria implementar uma agenda (que o Gaspro tem) para que umas quatro vezes ao dia o sistema verificasse pendências no arquivo de conferência de pedidos e alertasse ao usuário.
Para isso, a agenda nativa do Gas serviria muito bem, bastando que se fizesse, na primeira abertura do sisema os lançamentos correspondentes, mas, o problema é que a agenda não funciona, dando erro direto e não dispara o alarme.
Alguém teria alguma idéia de algo semelhante como um timer que controlasse os avisos?
Em tempo: a aplicação roda em modo console.

Antecipadamente grato,

Paulo Müller

Gaspro - Agenda

Enviado: 26 Set 2016 14:54
por Jairo Maia
Olá Paulo,

Em Harbour ou xHarbour, há várias formas de você controlar seu aplicativo da forma que você quiser com temporizadores. Porém, em se tratando de uma aplicação que foi migrada do GasPro, fica mais fácil ainda.

Posso lhe dar um exemplo nesse caso desde que você coloque sua função MouseGet(). Através dessa função, fica muito fácil, mas publique sua função como ela está, para que possamos apresentar um exemplo prático com seus fontes.

Gaspro - Agenda

Enviado: 26 Set 2016 15:13
por prmuller
Oi Jairo!

Obrigado pela pronta resposta. Vc, como sempre, ajudado a todos.
Segue a função MouseGet (arquivo gasp40hb.prg).

Sds,
Paulo Muller

Gaspro - Agenda

Enviado: 26 Set 2016 17:05
por Jairo Maia
Legal Paulo,

Estou encerrando hoje. Mas assim que retomar volto nesse tópico. Acho que vai ficar fácil, já que você usa essa função sem nenhuma customização ainda. Até mais...

Gaspro - Agenda

Enviado: 26 Set 2016 17:43
por prmuller
Valeu Jairo!

A propósito, o mouse foi totalmente desabilitado na aplicação em função daquele problema de consumo excessivo de CPU e, como ninguém reclamou, deixei quieto, rssss.

Sds,

Paulo Muller

Gaspro - Agenda

Enviado: 27 Set 2016 08:49
por Jairo Maia
Olá Paulo,
prmuller escreveu:A propósito, o mouse foi totalmente desabilitado na aplicação em função daquele problema de consumo excessivo de CPU
Estranho. Se você está usando o SecondsSleep() não deveria fazer isso. Deveria a CPU estar em 0 quando o sistema estiver parado.

Mas sendo assim, você pode usar dessa forma: Executar rotina após x minutos

Gaspro - Agenda

Enviado: 27 Set 2016 14:23
por prmuller
Oi Jairo!
Obg pela resposta e orientação. Vou testar e retorno.

Sds,
Paulo Muller

Gaspro - Agenda

Enviado: 27 Set 2016 17:41
por prmuller
Oi Jairo,

Muito legal a função que vc postou. Acredito que vá resolver o meu caso aqui.
Aproveitando, em que local do sistema eu faria a chamada? Na finalização?

Sds,
Paulo Muller

Gaspro - Agenda

Enviado: 29 Set 2016 08:40
por prmuller
Jairo, bom dia!

Testei a função que vc indicou e resolve, em parte o meu problema, mas, como todo bom fuçador, resolvi de outra forma e, estou postando pq pode ser útil para mais alguém.
Como eu disse, no Gaspro, se vc tentar implementar a sua agenda nativa num sistema já com muitos módulos, não funciona o alarme nem a pau, mas, se vc criar um projeto somente com o módulo agenda, funciona normalmente, sem problemas (vai entender né?)
Então, fiz isso. Criei isoladamenete a agenda e, usando as suas dicas, e usando o HB_OpenProcess e HB_Close process eu abro no inicio do sistema no servidor (com parâmetro .f. ela vai direto pro gerenciador de tarefas do Windos) e fecho no final do dia ao se encerrar o servidor.
Como o usuário do cpt de conferência de pedidos não vai ter acesso, na abertura do sistema eu faço três lançamentos no dbf da agenda (no caso, programei os avisos de pendências para as 12, 15 e 18 hs) e, existindo, a tela da agenda aparece com o aviso.
Eu acho que ficou legal, mas, gostaria de agradecê-lo pela ajuda, aliás, bem típica de vc.
Valeu mesmo!

Sds,
Paulo Muller