Ver Mensaje Individual
  #1  
Antiguo 26-09-2007
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Reputación: 20
FGarcia Va por buen camino
No continua la ejecucion un procedimiento

Hola!

Tengo un procedimiento que es llamado cada segundo desde un timer. La Intencion de este procedimiento es que revisa la hora del dia y:

1. Si es la hora exacta actualiza un stringgrid.
2. Si es otra hora y coincide con una ya almacenada genera un reporte impreso llamado diario.
3. Nuevamente si es otra hora y coincide con otra ya almacenada genera otro reporte llamado de turno el cual puede comprender tres periodos diferentes.

En forma individual cada actualizacion del stringgrid y reporte se genera perfectamente. Sin embargo si la hora de la actualizacion del stringgrid (Exacto a la hora) coincide con la hora el reporte de diario y/o de turno estos no se generan, solo se genera la actualizacion del stringgrid. Tambien si la hora de los reportes no coincide con la del stringgrid estos reportes (ambos) se generan correctamente.

El codigo que uso:

Código Delphi [-]
Procedure TfrmMain.CadaSegundo ;
begin
  //Decodifico la hora actual
  DecodeTime(Now, miHora,miMin,miSeg,miMseg);
  
  //Si es la Hora exacta actualiza los datos en la rejilla 
  if (miMin = 0) and (miSeg = 0) then
    begin
      //Resto 60 min a la hora actual
      UltimaHora := IncMinute(Now, -60);
      ActualizaCadaHora(Datetimetostr(UltimaHora),DateTimetoStr(Now));
    end;
  
  if (rpdImprime) and (rpdHabilita) then
    if (miHora = dHora) and (miMin = dMin) and (miSeg = dSeg) then DataCnx.GeneraDiario;
    
  if (rptImprime) and (rptHabilita) then
    begin
     if (miHora = pHora) and (miMin =pMin) and (miSeg = pSeg) then
        begin
          DataCnx.GeneraPrimero;
          exit
        end;
      
      if (miHora = sHora) and (miMin = sMin) and (miSeg = sSeg)then
        begin
          DataCnx.GeneraSegundo;
          Exit;
        end;
      
      if (miHora = tHora) and (miMin = tmin) and (miSeg = tSeg) then
        begin
          DataCnx.GeneraTercero;
          Exit;
        end;
    end;
end;

Agradesco su ayuda.
Responder Con Cita