Ver Mensaje Individual
  #16  
Antiguo 01-11-2006
OscarRd OscarRd is offline
Miembro
 
Registrado: sep 2006
Posts: 14
Reputación: 0
OscarRd Va por buen camino
Gracias a todos, por su valiosa colaboracion
con sus consejos y recomendaciones pude lograr mi objetivo.

A continuacion esta el codigo:
Una ves mas Gracias a todos....
Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
var
  Present,PrimerDia,primerDiaMesSig,
   m,ndia,dFecha,dFecha2,dFecha3,dFecha4: TDateTime;
   cantDiaMes,re: word;
   Year, Month, Day, Hour, Min, Sec, MSec, Tf : Word;
    n :integer;
    date, Date2, date3, Date4,
   sYear,sDia,cFecha,cFecha2,cFecha3,cFecha4 : string;
    I,iCount, DiaTopeMes, inDias :Integer;
   quinc1, quinc2:Real;
begin
  case  rgpPeriodos.ItemIndex of
   0:begin {Semanal}
      DiaTopeMes := 30;
     quinc1:= DiaTopeMes/2;
    quinc2:= quinc1 + 1;
    with Query1 do
     begin
        Sql.Clear;
        close;
        try
         sql.add('create table #TempPeri(fecha_1 char(20),fecha_2 char(20))');
          ExecSQL;
        except

        end;
         sYear :=copy(DateEdit971.text,7,10); //Año
          sDia :=copy(DateEdit971.text,1,2); //Dia
       For i:= 1 to 12 Do
       Begin
         Month:= Month + 1;
           if Length(IntToStr(Month)) <> 2 then
           begin
             Date := sDia+'/'+'0'+IntToStr(Month)+'/'+sYear;
           end
           else
           begin
               Date := sDia+'/'+IntToStr(Month)+'/'+sYear;
           end;

            dFecha :=strTodate(Date);

          //----------------------------------------------------------
           {Obtiene el Total de dias del mes}
           PrimerDia := StrToDate(Date);
         PrimerDiaMesSig := incMonth(PrimerDia,1);
         cantDiaMes := round(PrimerDiaMesSig - PrimerDia);

            for iCount := 1 to 4 do
            Begin
             inDias := 7;
              if iCount = 1 then
              begin
                dFecha4 :=  dFecha;
              dFecha  :=  dFecha+7;
              Dfecha  :=  dFecha -1;
              end
              else
              begin
                dFecha4 := dFecha;
              dFecha  := dFecha+7;
              end;

              cfecha  := DateTostr(dFecha);
              cFecha4 := DateTostr(dFecha4);

              if iCount = 1 then
              begin
               Close;
              sql.Clear ;
                Sql.Add('insert into #TempPeri');
                sql.add('Values('+QuotedStr(cFecha4)+','+QuotedStr(cFecha)+')');
                ExecSQL;
              end;

              dFecha2 := dFecha+1;
              cFecha2 := DateTostr(dFecha2);

              dFecha3 := dFecha+7;
              cFecha3 := DateTostr(dFecha3);

             sql.Clear ;
               Sql.Add('insert into #TempPeri');
             sql.add('Values('+QuotedStr(cFecha2)+','+QuotedStr(cFecha3)+')');
             ExecSQL;
            end;
       end;
     end;
     With query2 do
     begin
        sql.clear;
        close;
        sql.add('select * from #TempPeri');
        open;
     end;{=======FIN SEMANAL=======}
   end;

   1:begin {Quincenal}
      DiaTopeMes := 30;
     quinc1:= DiaTopeMes/2;
    quinc2:= quinc1 + 1;
    with Query1 do
     begin
        Sql.Clear;
        close;
        try
         sql.add('create table #TempPeri(fecha_1 char(20),fecha_2 char(20))');
          ExecSQL;
        except

        end;
         sYear :=copy(DateEdit971.text,7,10); //Año
          sDia :=copy(DateEdit971.text,1,2); //Dia
       For i:= 1 to 12 Do
       Begin
         Month:= Month + 1;
           if Length(IntToStr(Month)) <> 2 then
           begin
             Date := sDia+'/'+'0'+IntToStr(Month)+'/'+sYear;
              Date2 := FloatToStr(quinc1) +'/'+'0'+IntToStr(Month)+'/'+sYear;
           end
           else
           begin
               Date := sDia+'/'+IntToStr(Month)+'/'+sYear;
              Date2 := FloatToStr(quinc1) +'/'+IntToStr(Month)+'/'+sYear;
           end;

           //----------------------------------------------------------
           {Obtiene el Total de dias del mes}
           PrimerDia :=StrToDate(Date);
         PrimerDiaMesSig := incMonth(PrimerDia,1);
         cantDiaMes := round(PrimerDiaMesSig - PrimerDia);
           //-----------------------------------------------------------
           if Length(IntToStr(Month)) <> 2 then
           begin
          Date3 := FloatToStr(quinc2) +'/'+'0'+IntToStr(Month)+'/'+sYear;
             Date4 := IntToStr(cantDiaMes ) +'/'+'0'+IntToStr(Month)+'/'+sYear;
           end
           else
           begin
           Date3 := FloatToStr(quinc2) +'/'+IntToStr(Month)+'/'+sYear;
            Date4 := IntToStr(cantDiaMes ) +'/'+IntToStr(Month)+'/'+sYear;
           end;


           Close;
           sql.Clear ;
           Sql.Add('insert into #TempPeri');
           sql.add('Values('+QuotedStr(Date)+','+QuotedStr(Date2)+')');
           ExecSQL;

           sql.Clear ;
             Sql.Add('insert into #TempPeri');
           sql.add('Values('+QuotedStr(Date3)+','+QuotedStr(Date4)+')');
           ExecSQL;
       end;
     end;
     With query2 do
     begin
        sql.clear;
        close;
        sql.add('select * from #TempPeri');
        open;
     end;
   end; {===============Fin Quincenal===============}

   2:begin {Mensual}
      DiaTopeMes := 30;
     quinc1:= DiaTopeMes/2;
    quinc2:= quinc1 + 1;
    with Query1 do
     begin
        Sql.Clear;
        close;
        try
            Sql.add('drop table #TempPeri');
            Sql.Clear;
            close;
        sql.add('create table #TempPeri(fecha_1 char(20),fecha_2 char(20))');
          ExecSQL;
        except
        end;
         sYear :=copy(DateEdit971.text,7,10); //Año
          sDia :=copy(DateEdit971.text,1,2); //Dia
       For i:= 1 to 12 Do
       Begin
         Month:= Month + 1;
           if Length(IntToStr(Month)) <> 2 then
           begin
             Date := sDia+'/'+'0'+IntToStr(Month)+'/'+sYear;
           end
           else
           begin
               Date := sDia+'/'+IntToStr(Month)+'/'+sYear;
           end;

           //----------------------------------------------------------
           {Obtiene el Total de dias del mes}
           PrimerDia :=StrToDate(Date);
         PrimerDiaMesSig := incMonth(PrimerDia,1);
         cantDiaMes := round(PrimerDiaMesSig - PrimerDia);
           //-----------------------------------------------------------
           if Length(IntToStr(Month)) <> 2 then
           begin
             Date4 := IntToStr(cantDiaMes ) +'/'+'0'+IntToStr(Month)+'/'+sYear;
           end
           else
           begin
             Date4 := IntToStr(cantDiaMes ) +'/'+IntToStr(Month)+'/'+sYear;
           end;

           Close;
           sql.Clear ;
           Sql.Add('insert into #TempPeri');
           sql.add('Values('+QuotedStr(Date)+','+QuotedStr(Date4)+')');
           ExecSQL;
       end;
     end;
     With query2 do
     begin
        sql.clear;
        close;
        sql.add('select * from #TempPeri');
        open;
     end; {===============Fin Mensual====================}
     end;
     3:begin {Anual}
       with Query1 do
      begin
        Sql.Clear;
       close;
       try
          Sql.add('drop table #TempPeri');
           Sql.Clear;
            close;
        sql.add('create table #TempPeri(fecha_1 char(20),fecha_2 char(20))');
          ExecSQL;
         except
         end;

         sYear := copy(DateEdit971.text,7,10); //Año
          sDia  := copy(DateEdit971.text,1,2); //Dia

         if Length(IntToStr(Month)) <> 2 then
         begin
          Date := sDia+'/'+'01'+'/'+sYear;
         end
        else
        begin
          Date := sDia+'/'+IntToStr(Month)+'/'+sYear;
        end;

         dFecha := StrTodate(Date);
         cFecha := DateTostr(dFecha);

         cFecha2 := '31/12/'+sYear;


         sql.Clear;
         Close;
        Sql.Add('insert into #TempPeri');
        sql.add('Values('+QuotedStr(cFecha)+','+QuotedStr(cFecha2)+')');
         ExecSQL;
        end;
         With query2 do
        begin
          sql.clear;
          close;
          sql.add('select * from #TempPeri');
          open;
        end;
       end;{=============Anual==================}
 end;
end;

Última edición por jachguate fecha: 02-11-2006 a las 15:10:39.
Responder Con Cita