Fórum Atualizar Banco (ClientDataset) #299955
19/10/2005
0
meu problema e o seguinte:
Tenho um grid que controla os pedidos de uma pizzaria e neste grid tenho um campo com Hora_prev_entrega, gostaria que quando este pedido ultrapassar 30 min ele seja pintado de outra cor no grid , isto ira mostrar que pedido ja esta a mais de 30 min na cozinha..
1 - Como posso atualizar as informacoes a cada 5 minutos.
2 - Pode usar o Timer para fazer isto.
3 - Como atualizar o grid , estou usando o ClientDataset. (close\open\refresh)
4 - Como pintar o pedido(Grid) de cor diferente se ultrapassou os 30 minutos.
estou usando Delphi 7 e FB 1.5
valeu pessoal..
ate +
Chmelo
Curtir tópico
+ 0Posts
19/10/2005
Bruno Belchior
if Column.Field = DtStHoraPedito then begin if MinuteOf(Now - DtStHoraPedito.AsDateTime) >= 30 then begin DBGrid1.Canvas.Font.Color := clBlue; DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State); end; end;
Gostei + 0
19/10/2005
Chmelo
obrigado pela atencao, o grid ate que eu consigo pintar , mas o maior problema e que gostaria de atualizar estes pedidos que estao a mais de 30 minutos na cozinha, e por isso que eu preciso atualizar o grid , para poder ver qual o pedido que esta demorando para ser entregue na mesa do cliente.
valeu...
Gostei + 0
19/10/2005
Bruno Belchior
Gostei + 0
19/10/2005
Chmelo
Mas nao sei como posso implementar esta rotina para ele poder checar a cada n minutos se o pedido esta ou nao atrasado...
ate +
Gostei + 0
19/10/2005
Bruno Belchior
Gostei + 0
19/10/2005
Chmelo
Mas como faco para ele atualizar o DBGrid1DrawColumnCell !!!
Tenho que usar o Timer para fazer isto ?
Gostei + 0
19/10/2005
Bruno Belchior
DBGrid1.Refresh
Gostei + 0
19/10/2005
Chmelo
Agora preciso verificar o porque nao esta sendo repintado o grid apos dar o refresh no grid...
OBs.: quando e dado o refresh no grid ele automaticamente executa o comando do DBGrid1DrawColumnCell automaticamente ??
obrigado pela ajuda..
ate +
Gostei + 0
19/10/2005
Bruno Belchior
if Column.Field = DtStHoraPedito then begin if MinuteOf(Now - DtStHoraPedito.AsDateTime) >= 30 then begin DBGrid1.Canvas.Font.Color := clBlue; end; DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State); end;
Gostei + 0
19/10/2005
Chmelo
Esta funcionando , so que quando o timer e executado ele nao esta conseguindo mudar a cor do grid, mesmo com este novos comandos que voce me paasou...
valeu..
Gostei + 0
20/10/2005
Bruno Belchior
Gostei + 0
20/10/2005
Chmelo
O que esta acontecendo e o seguinte:
- Apos dar o tempo no timer a linha que deveria ser pintada nao esta sendo , pois o comando Repaint ou invalidate nao esta funcionando dentro do timer.
Ex.: tenho um horario 19:30:00, o horario do micro marca 20:01:00, gostaria que a cor da celula do grid que esta com o pedido ja atrasado mudasse de cor mas o apos o timer checar nao esta mudando a cor.
valeu ..
Gostei + 0
20/10/2005
Chmelo
Valeu pelas dicas, esta funcionando legal, o grid nao estava mudando pq
eu nao estava atualizando uma variavel de hora dentro do timer...
obrigado..
ate +
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)