Atualização de campo na tela de consulta em tempo real
[img]http://arquivo.devmedia.com.br/forum/imagem/452216-20150911-230854.png[/img]Boa noite, pessoal!
É o seguinte tenho um sistema em delphi7 com banco em firebird funcionando normal. Mas agora preciso
fazer uma tela para que o diretor da empresa acompanhe os números do Sistema em tempo real, tal como pedidos feitos, vendedor. etc...
Acontece que tenho a tela pronta com s campos layout e tudo mais, só que só atualiza se eu ativar ou desativar a query, ou fechar o sistema e entrar novamente.
A Pergunta é: como posso criar um reflesh ou algo assim para atualizar o campo a cada 10 segundos por exemplo automaticamente?
Obs: não sei se vale de alguma coisa mas ativei o forcereflesh de todos estes campos.
Desde já agradeço a esta comunidade que muito tem feito para ajudar aos novos adeptos de banco de dados e etc...
E me desculpem se postei de forma errônea pois sou novato por aqui, e nas pesquisas que fiz no site não encontrei o assunto da forma que queria por isso postei a dúvida em
específico aqui.
É o seguinte tenho um sistema em delphi7 com banco em firebird funcionando normal. Mas agora preciso
fazer uma tela para que o diretor da empresa acompanhe os números do Sistema em tempo real, tal como pedidos feitos, vendedor. etc...
Acontece que tenho a tela pronta com s campos layout e tudo mais, só que só atualiza se eu ativar ou desativar a query, ou fechar o sistema e entrar novamente.
A Pergunta é: como posso criar um reflesh ou algo assim para atualizar o campo a cada 10 segundos por exemplo automaticamente?
Obs: não sei se vale de alguma coisa mas ativei o forcereflesh de todos estes campos.
Desde já agradeço a esta comunidade que muito tem feito para ajudar aos novos adeptos de banco de dados e etc...
E me desculpem se postei de forma errônea pois sou novato por aqui, e nas pesquisas que fiz no site não encontrei o assunto da forma que queria por isso postei a dúvida em
específico aqui.
Luis Paulo
Curtidas 0
Respostas
Raimundo Pereira
11/09/2015
Bom dia , Zafa.
Você pode fazer desta maneira funcional:
type
TForm1 = class(TForm)
REFRESH_TABLE: TTimer;
var
TEMPO:INTEGER;
TEMPO_REFRESH_TABLE:INTEGER;
procedure TFrm_CENTRO_CONTROLE.FormCreate(Sender: TObject);
begin
TEMPO_REFRESH_TABLE:=10;
//NO EXEMPLO EU DEFENIR 10SEGUNDOS
//VOCÊ PODE CRIAR UMA TABELA DE PARAMENTRO
//DM.PARAM.OPEN;
//TEMPO_REFRESH_TABLE:=DM.PARAM.FIELBYNAME('TEMPO_REFRESH_CENTRO_CONTROLE').ASINTEGER;
//DM.PARAM.CLOSE;
//
REFRESH_TABLE.ENABLED:=TRUE;
end;
EVENTO ONTIME
procedure TFrm_CENTRO_CONTROLE.REFRESH_TABLETimer(Sender: TObject);
begin
TEMPO:=TEMPO+1;
Form1.Caption:=IntToStr(TEMPO_REFRESH_TABLE-TEMPO);
if TEMPO=TEMPO_REFRESH_TABLE then
BEGIN
REFRESH_TABLE.Enabled:=FALSE;
TEMPO:=0;
DM.SUA_TABLE.CLOSE;
DM.SUA_TABLE.OPEN;
REFRESH_TABLE.Enabled:=TRUE;
END;
END;
- Testa ai : Estou aguardo.
Você pode fazer desta maneira funcional:
type
TForm1 = class(TForm)
REFRESH_TABLE: TTimer;
var
TEMPO:INTEGER;
TEMPO_REFRESH_TABLE:INTEGER;
procedure TFrm_CENTRO_CONTROLE.FormCreate(Sender: TObject);
begin
TEMPO_REFRESH_TABLE:=10;
//NO EXEMPLO EU DEFENIR 10SEGUNDOS
//VOCÊ PODE CRIAR UMA TABELA DE PARAMENTRO
//DM.PARAM.OPEN;
//TEMPO_REFRESH_TABLE:=DM.PARAM.FIELBYNAME('TEMPO_REFRESH_CENTRO_CONTROLE').ASINTEGER;
//DM.PARAM.CLOSE;
//
REFRESH_TABLE.ENABLED:=TRUE;
end;
EVENTO ONTIME
procedure TFrm_CENTRO_CONTROLE.REFRESH_TABLETimer(Sender: TObject);
begin
TEMPO:=TEMPO+1;
Form1.Caption:=IntToStr(TEMPO_REFRESH_TABLE-TEMPO);
if TEMPO=TEMPO_REFRESH_TABLE then
BEGIN
REFRESH_TABLE.Enabled:=FALSE;
TEMPO:=0;
DM.SUA_TABLE.CLOSE;
DM.SUA_TABLE.OPEN;
REFRESH_TABLE.Enabled:=TRUE;
END;
END;
- Testa ai : Estou aguardo.
GOSTEI 0
Luis Paulo
11/09/2015
Boa tarde, P2!
Cara desculpa não ter comentado seu post, é que estava viajando, vou dar uma olhada agora a noite e testar, e comento se deu certo.
Mas agradeço desde já pela sua resposta, e sua ajuda.
Cara desculpa não ter comentado seu post, é que estava viajando, vou dar uma olhada agora a noite e testar, e comento se deu certo.
Mas agradeço desde já pela sua resposta, e sua ajuda.
GOSTEI 0