Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   problema al recorrer un campo de tipo fecha (https://www.clubdelphi.com/foros/showthread.php?t=70748)

marcos_0586 09-11-2010 01:58:50

problema al recorrer un campo de tipo fecha
 
hola gente del foro, quisiera que vean este codigo porque la verdad es que es algo simple, o eso pensaba,yo tengo una tabla con los campos Fecha_pedido,Fecha_entrega,Fecha_entrega_real y Demorado
lo que nesecito hacer es listar aquellos pedidos que no tienen fecha_entrega_real osea que este campo esta vacio y que si la fecha_entrega supera a la fecha actual me agregue la palabra "SI" en el campo demorado, este es el codigo que use, la tabla se recorre pero no entra por el if de fecha=null

Código Delphi [-]
procedure TForm20.Button1Click(Sender: TObject); begin  form1.Table6.First;    
while not form1.Table6.Eof do     begin      
if (form1.table6.FieldByName('Fecha_entrega_real').AsDateTime=null and form1.table6.FieldByName('Fecha_entrega').AsDateTime>date) then       begin                 
  form1.table6.Edit;                 
  form1.table6.FieldByName('Demorado').AsString:='SI';                 
  form1.table6.Post;                 
  form1.table6.Next;            
end             
else                
  if form1.table6.FieldByName('Fecha_entrega').AsDateTime<=date() then                begin                 
    form1.table6.Edit;                  form1.table6.FieldByName('Demorado').AsString:='NO';                  
    form1.table6.Post;                  form1.table6.Next;                end;     end     else     
    form1.table6.Next;     
  end;  
end;

pd:lo intente con un query pero no me deja modificar el campo de la tabla
desde ya muchas gracias por su ayuda

ecfisa 09-11-2010 02:53:38

Hola marcos.

Si no entiendo mal la lógica de tu planteo, el código sería:
Código Delphi [-]
procedure TForm20.Button1Click(Sender: TObject);
begin
  with Form1.Table6 do
  begin
    First;
    while not Eof do
    begin
      if(FieldByName('Fecha_entrega_real').AsDateTime = null) or
        (FieldByName('Fecha_entrega').AsDateTime > date) then
      begin
        Edit;
        FieldByName('Demorado').AsString:= 'SI';
        Post;
      end
      else
      begin
        Edit;
        FieldByName('Demorado').AsString:= 'NO';
        Post;
      end;
      Next;
    end
  end
end;

Saludos. :)

ContraVeneno 09-11-2010 18:12:34

a caray... según yo, si la fecha de entrega es mayor a la fecha actual... eso está pendiente, pero no demorado... :confused:


La franja horaria es GMT +2. Ahora son las 17:40:12.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi