Ir al contenido


Foto

¿Cómo excluyo dias de la semana?


  • Por favor identifícate para responder
3 respuestas en este tema

#1 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 28 noviembre 2008 - 09:10

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
  • 14.448 mensajes
  • LocationMéxico

Escrito 28 noviembre 2008 - 10:13

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
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 28 noviembre 2008 - 10:31

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
  • 14.448 mensajes
  • LocationMéxico

Escrito 28 noviembre 2008 - 10:37

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.