Jump to content


Photo

¿Cómo excluyo dias de la semana?


  • Please log in to reply
3 replies to this topic

#1 enecumene

enecumene

    Webmaster

  • Administrador
  • 7419 posts
  • LocationRepública Dominicana

Posted 28 November 2008 - 09:10 AM

Hola colegas, como algunos saben hace tiempo he creando una aplicación para el manejo de las asistencias de empleado con un Lector dactilar, todo va perfecto, pero..., tengo un bucle donde registro las vacaciones de tal fecha a tal fecha, pero yo quisiera que en es bucle la forma de no incluir los Sábados o Los sábados y domingos, dejo el código es un poquito largo, así que sólo dejo la parte del problema:



delphi
  1. if rbRango.Checked then begin
  2.   Close;
  3.   SQL.Clear;
  4.   SQL.Text := 'INSERT INTO REGISTRO(REGNO,EMPID,EMPLEADO,FECHA,ENTRADA,SALIDA,VACACIONES) VALUES(NULL,:EMP,:NOM,:FEC,:ENT,:SAL,:VAC)';
  5.   Fecha := edDesde.Date;
  6.   FechaFinal := edHasta.Date;
  7.   while (Fecha < FechaFinal) do
  8.    begin
  9.     ParamByName('EMP').AsInteger := integer(TreeView1.Selected.Data);
  10.     ParamByName('FEC').AsDate := Fecha;
  11.     ParamByName('NOM').AsString := Label4.Caption;
  12.     ParamByName('ENT').Value := NULL;
  13.     ParamByName('SAL').Value := NULL;
  14.     ParamByName('VAC').AsString := 'X';
  15.     ExecSQL;
  16.     Fecha := IncDay(Fecha,1);
  17.     end;
  18.     Datos.ZConnection1.Commit;
  19.     ZVaca.Close;
  20.     ZVaca.Open;
  21.    end;



Saludos.

PD: Trabajo con Delphi7 y Firebird 2.0
  • 0

#2 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14469 posts
  • LocationMéxico

Posted 28 November 2008 - 10:13 AM

Hola



delphi
  1.   while ( Fecha < FechaFinal ) do begin
  2.       if ( DayoftheWeek(Fecha ) in [1..5] ) and
  3.           ( NoesFestivo(Fecha) ) then begin // NoesFestivo es una función que deberas crear para comparar la fecha :)
  4.           ParamByName('EMP').AsInteger := integer(TreeView1.Selected.Data);
  5.           ParamByName('FEC').AsDate := Fecha;
  6.           ParamByName('NOM').AsString := Label4.Caption;
  7.           ParamByName('ENT').Value := NULL;
  8.           ParamByName('SAL').Value := NULL;
  9.           ParamByName('VAC').AsString := 'X';
  10.           ExecSQL;
  11.       end;
  12.       Fecha := IncDay(Fecha,1);
  13.   end;
  14.   Datos.ZConnection1.Commit;
  15.   ZVaca.Close;
  16.   ZVaca.Open;



Para omitir sabados y domingos es muy facil, para los dias festivos lo mas fácil es crear una tabla de dias festivos y comparar si no es dia festivo en una funcion booleana como lo puse ahi :)

Salud OS
  • 0

#3 enecumene

enecumene

    Webmaster

  • Administrador
  • 7419 posts
  • LocationRepública Dominicana

Posted 28 November 2008 - 10:31 AM

Amigo, cuanta creatividad tienes, por eso eres un maestro, en la noche lo pruebo. Muchas gracias.

Saludos.
  • 0

#4 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14469 posts
  • LocationMéxico

Posted 28 November 2008 - 10:37 AM

Amigo, cuanta creatividad tienes, por eso eres un maestro, en la noche lo pruebo. Muchas gracias.

Saludos.


Hombre amigo favor que me haces, F1 amigo F1 :D :D :D

Salud OS
  • 0




IP.Board spam blocked by CleanTalk.