Preciso de uma luz/ideia de como organizar uma tela

Delphi

18/10/2006

Boa tarde!

Eu sou mais de ler do que postar, mas estou com uma duvida e gostaria de compartilhar com vcs e surgir uma ideia legal para resolver esse problema

bom eu to desenvolvendo um sistema de cadastro de atendimento, onde tenho uma tela que sao os atendimento que estão pendentes.

tentei procurar de varias formas uma maneira de dar o refresh de X em X minutos no meu DBGrid, ai que esta o problema:

- Quando faço isso e dou um duplo click no atendimento para fazer a finalização do atendimento, o clock da o reload e volta para o primeiro registro

- Tentei colocar a consulta do dbgrid com outra query porem quando quero puxar os dados do grid para os edits ele não vem pois esta ligado a DataSource diferentes

O que vcs sugerem?

Como vcs sugerem para dar o refresh no grid? ja tentei dando close/open na query e até na tabela, mas ele nao da o refresh de modo algum

ja tentei isso tudo e nada

QryFimAtendimento.Active := False; DSFimAtendimento.Enabled := False; TFimAtendimento.Active := False; TFimAtendimento.Active := True; DSFimAtendimento.Enabled := True; QryFimAtendimento.Active := True;


Aceito sugestões


Corcos

Corcos

Curtidas 0

Respostas

Corcos

Corcos

18/10/2006

nao achei o botão para editar...

so para dizer ja tentei

QryFimAtendimento.Close; QryFimAtendimento.Open;



GOSTEI 0
Ronaldo.cutu

Ronaldo.cutu

18/10/2006

No duplo click no grid desligue o timer e assim que vc sair do fechamento do atendimento ligue o novamente

att

Ronaldo


GOSTEI 0
Corcos

Corcos

18/10/2006

ronaldo vou fazer o teste obrigado

Alguem tem ideia de como fazer o refresh automatico?

Eu já tentei tudo e nada, se eu fecho e abro a tela aparece o registro gravado.


GOSTEI 0
Motta

Motta

18/10/2006

Já fiz algo parecido, num Timer coloquei Close/Open do Dataset, funcionou.


GOSTEI 0
Aerreira

Aerreira

18/10/2006

As coisas estão se misturando um pouco aqui.

O que o Corcos está precisando é um grid que se atualize automaticamente com um timer, porém ao dar um duplo-clique num item, abrir uma janela para editar o registro e depois retornar no registro corrente. (é isso?)

A solução que o Ronaldo.cutu deu foi para ao dar o duplo-clique, desligar o timer e abrir uma nova janela com ShowModal, ao retornar fechando a janela modal, ligar o timer novamente. Porém acho que o Corcos não entendeu isso direito e continuou querendo saber sobre o timer (refresh automático). Mas o caso já estava resolvido.

Então o Motta sugeriu no fundo a mesma coisa. Fechar e Abrir o dataset no timer.

Então, Corcos, basta no timer fechar/abrir o dataset, porém esse timer precisa parar quando estiver editando um determinado registro, por isso colocar uma parada no timer quando der o duplo-clique e ao final da rotina do duplo-clique, após ter terminado a edição, ligar o timer de novo.

O que vai ocorrer é que seu ponteiro no grid estará posicionado no primeiro registro e não no último que foi editado (onde foi dado o duplo-clique). Para isso precisará guardar um bookmark para indicar onde estava quando deu o duplo-click e depois do refresh reposicionar seu bookmark.

Acho que isso irá resolver seu problema.


GOSTEI 0
Leonardobhbr

Leonardobhbr

18/10/2006

[color=green:10127e1fea]
var
bmk : TBookmark;

bmk := table1.GetBookMark; //Para marcar onde esta no cliente o query

table1.GotoBookMark(bmk); // Volta para a posição marcada

table1.FreeBookMark(bmk);

ou

existe as propriedades disableControls e EnabledControls no cliente para isso também

[/color:10127e1fea]


GOSTEI 0
Corcos

Corcos

18/10/2006

Gostei das ideias, obrigado a todos

Vou fazer um teste aqui e ja aviso


GOSTEI 0
POSTAR