Lembrete de agendamento (tipo do Outlook)

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
Alexandre Costa
Usuário Nível 1
Usuário Nível 1
Mensagens: 25
Registrado em: 27 Dez 2005 10:49
Localização: Cambé - PR

Lembrete de agendamento (tipo do Outlook)

Mensagem por Alexandre Costa »

Tem como fazer um lembrete automático no Clipper??

Eu agendo a data e o horário que tenho de fazer uma ligação para o cliente e quando der a hora o sistema abre uma caixinha me avisando (semelhante aquele do Outlook).

Será que tem alguma função no clipper para isso?

Estou usando Cl53b e Blinker 7.

[]s,
Alexandre
Krinski
Usuário Nível 1
Usuário Nível 1
Mensagens: 30
Registrado em: 10 Dez 2004 11:42
Localização: Brasília-DF

Mensagem por Krinski »

Como voce nao especificou bem que situacao vamos esclarecer o seguinte...

O Clipper não é um programa residente, entao se estiver fechado ... bau bau

Se a sua intencao é cadastrar os compromissos e o programa ficar sempre olhando para disparar uma janelinha... isso tem jeito.. voce usará uma funcao tipo VerCompromisso() no menu principal para que le vá sempre consultando essa agenda. Se o programa estiver parado no get, tem como disparar algo de tempos em tempos,, se for um "menu to" tem outros artificios... Preciso saber direito o que vc quer...

Sucesso!
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

MSTASK

Mensagem por Pablo César »

Caro Alexandre,

Não quero desanimar você nesse desejo de criar uma agenda eletronica em Clipper. Mas a chances de que isso dê muito certo não são muito boas. Veja que na linguagem Clipper, não temos (creio eu) como deixar uma tarefa funcionando em background ao mesmo tempo que estaria funcionando teu aplicativo, a não ser que abra outra sessão e deixe minimizada. Mas você deve saber como é usuário... a vezes irá fechar sem saber ou abrir duas janelas do mesmo aplicativo ao mesmo tempo.

E visto que você iria gastar um tempo muito grande em criar, todas a variantes como:

diariamente
semanalmente
uma unica vez
cada nn dias
ao iniciar o sistema
repetir operação em

e sua outras variante como:
no dia nn
todas as segundas/terças/quartas...
nos meses ...

Bem, eu confesso, que també tive essa idéia. Mas quando lembrei de uma ditado que dizia: "Para qué re-inventar a roda se ela ja existe", acho que é isso. Se bem que eu sou a favor de que sempre devemos intentar criar, inventar, ajustar, melhorar. E sempre tem espaço pra isso, mas tempo ????.

Eu sugiro que dê uma olhada no aplicativo MSTAK.exe do proprio WINDOWS que ele é bem completinho e não te dará problemas pelo acionamento de INTERRUPÇÕES que é do proprio sistema. Uma coisa que eu queria descobrir é poder criar tarefas ".JOB" que ficam armazenadas no \WINDOWS\TASKS. Sei que pode ser abertas COM "VBScript/WSF". Mas eu desconhço como. O único que encontrei é isto, neste link:

http://www.eggheadcafe.com/ng/microsoft ... 965078.asp


9/2/2004 1:05:03 AM Re: how to create/modify/delete tasks using vbscript
"Olli Krollmann" <ollik@krollmann.com> wrote in message =

news:01C9F179-D5FD-417D-98CA-B0D56D28CF8F@microsoft.com...

vbscript=20

scheduled=20

insufficient=20

tab of=20

Hello,

The SchAgent object not only does the above, but the most recent release =

can open

a task (.Job file) as VBScript/WSF code. You can quickly make changes in =

the GUI

and then see how it is done via code.

Eventually you may prefer to create scheduled tasks via code and skip =

the GUI. I get

tired of having to type my 10 char passwords twice into the prompt.

Here is a sample WSF script that opens a Job file into my favorite =

script editor

as code. If all is well, I can run it and recreate the Job. Multiple =

triggers are

supported. For now, only VBScript/WSF works. Perl and JScript will come =

later.

----------- begin DumpJAC.wsf ------------------

<Job id=3D"DumpCode">

<object id=3D"oFso" progid=3D"Scripting.FileSystemObject" =

reference=3D"yes" />

<object id=3D"WSHShell" progid=3D"WScript.Shell" reference=3D"yes" />

<reference object=3D"Scheduler.SchAgent" />

<script language=3D"VBScript">=20

'

' Author: tlviewer@FIRECHENEYyahoo.com

' script: DumpJAC.wsf=20

' Description: dump an mstask Job file as VBScript/WSF

' keywords: mstask dump schagent

' Date: 09/02/04

'=20

dim ts

set ts =3D createobject("Scheduler.SchAgent")

=20

dim jb, MyJob

' enter your Job basename here =20

MyJob =3D "IdleTest"=20

=20

' the 2nd argument must be true if you want to dump code via

' DumpJAC->GetJCScript()

set jb =3D ts.Activate(MyJob & ".job", vbtrue)

=20

dim sScript, DJAC

set DJAC =3D jb.DumpJAC =20

sScript =3D DJAC.GetJCScript(ljVBScript)

=20

with oFso.CreateTextFile( MyJob & ".wsf", vbTrue)

.write sScript

.close()

end with

=20

dim lRes

lRes =3D WSHShell.Run( "UEdit32.exe " & MyJob & ".wsf" , 1, vbFalse)

</script>

</job>

------------- end code ---------


Mas não é tão simples (na verdade quase entendo bolhufas alguma)

Um clip-abraço :xau
Avatar do usuário
Alexandre Costa
Usuário Nível 1
Usuário Nível 1
Mensagens: 25
Registrado em: 27 Dez 2005 10:49
Localização: Cambé - PR

Mensagem por Alexandre Costa »

É, estou repensando a idéia!!

Este assunto surgiu porque tenho um sistema em uma empresa de telemarketing, onde os usuarios agendam a data da próxima ligação ao cliente.

Eles mesmos pediram para ver se tem jeito. Meu único medo é diminuir o desempenho do sistema que funciona tão bem.

Obrigado pelas dicas!!

[]s,

Alexandre
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Mensagem por alaminojunior »

Olá meu caro, tem uma maneira de implementar isso.
No meu caso, como o sistema trabalha muito com tbrowse, dá para fazer com que a cada estabilização, ele dê uma olhadinha no possível banco de dados da agenda. Por exemplo:

Tb4:= TbColumnne(Vcab, { || str(cabped,6)+" "+cabnom)})
Tb3:= TbrowseDB(05,01,12,78)
Tb3:HeadSep:= "Ä"
Tb3:ColorSpec:= "n/w,gr+/b,n+/w,n+/n,g/w"
Tb4:DefColor:= {5}
Tb3:AddColumn(Tb4)
Do While .t.
Do While !Tb3:Stabilize()
Enddo

Aqui entraria a bendita função de olhar no banco de dados da agenda

tempo:= Inkey(60)
Do Case
Case Tempo = 0
loop
Case Tempo = K_DOWN
Tb3:Down()
Case Tempo = K_UP
Tb3:Up()
Case Tempo = K_PGUP
Tb3:PageUp()
Case Tempo = K_PGDN
Tb3:PageDown()
case tempo = 27
set colo to
@ 03,00 say "* Fechando Arquivos ..."
Clos Data
exit
case tempo = -1
Mot()
case tempo = -2
Balcao()
case tempo = -4
Visual()
case tempo = K_INS
Inc_Nf()
case tempo = K_SPACE
Alt_Nf()
case tempo = K_DEL
Apaga(CabPed)
Endcase
Tb3:RefreshAll()
Loop
Enddo
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Tente

Mensagem por Pablo César »

Oi Alexandre,

Desculpe meu pessimismo, quando falei de que não precisava inventar... que a roda ja estava inventada. Acho válido a gente inventar, senão não seriamos criadores de sistemas. Eu também ao igual que o nosso colega "alaminio", também uso muito os TBROWSE. São muito prático para programar e tem um bom visual, mas tenho que concordar que exigem muito da máquina. E não sei não se essa idéia não vai deixar mais lento o sistema. Gostaria que nos contasse se você tem o TBROWSE e como ficou com uma função que olha a toda hora sem tem algo.

Mas tudo bem, eu também ja pensei nisso e ainda penso que talvez não valha a pena. Mas gostaria ser sorprendido com a suas inovações.

Sorte ! :)Pos
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Mensagem por alaminojunior »

Caríssimos,
pensando bem, dependendo do sistema, até que não ficaria lenta esta rotina.
Até porque, poderíamos fazer com que ela rodasse apenas de 30 em 30 min, ou talvez mais.
Mas vou tentar, acho que não ficaria lento não ...
Avatar do usuário
Alexandre Costa
Usuário Nível 1
Usuário Nível 1
Mensagens: 25
Registrado em: 27 Dez 2005 10:49
Localização: Cambé - PR

Mensagem por Alexandre Costa »

Gostei da idéia de implementar um arotina no TBROWSE.

Sim, eu utilizo o TBROWSE, respondendo ao amigo Pablo, que aliás não acho sua resposta pessimista.

Vou tentar a dica do alaminojunior. Depois posto os resultados aqui.

Obrigado a todos.

[]s,

Alexandre
Responder