process2.pas

来自「pasa人力资源考勤管理系统」· PAS 代码 · 共 487 行 · 第 1/2 页

PAS
487
字号
var i,j,k:integer;
    list:TStringList;
begin
  j:=0;
  list:=TStringList.Create;
  for i:=0 to listbox2.items.count-1 do
       list.add(listbox2.items[i]);
  //for i:=0 to listbox2.items.count-1 do
  //  begin
   //j:=i;
    //break;
    //end;
    k:=0;
 for i:=0 to listbox2.items.count-1 do
    if listbox2.Selected[i] then
    begin
    j:=i;
      list.delete(j-k);
      inc(k);
    end;
  listbox2.items.clear;
  for i:=0 to list.Count-1 do
    listbox2.Items.Add(list.Strings[i]);
  for i:=0 to list.count-1 do
      if j=list.count then
      begin
      listbox2.selected[j-1]:=true;
      end else
     begin
     listbox2.selected[j]:=true;
     break;
     end ;

   //  else
   //  begin
    //listbox2.itemindex:=j;
    //listbox2.selected[j]:=true
   // end;
    ////////////////////////////////
    label1.caption:=inttostr(listbox2.items.count);
    label1.update;
end;

procedure Tformprocess2.SpeedButton4Click(Sender: TObject);
begin
  listbox2.clear;
    label1.caption:=inttostr(listbox2.items.count);
    label1.update;
end;

procedure Tformprocess2.FormCreate(Sender: TObject);
begin
    datetimepicker1.date:=now;
    listbox1.items.clear;
    listbox2.items.clear;

    Qry1.close;
    Qry1.sql.text:='Select * from pub05010 ';
    Qry1.open;
    combobox1.items.clear;
    combobox2.items.clear;
    combobox3.items.clear;
    While not Qry1.eof do
    begin
       Combobox1.Items.add(Qry1.fieldbyname('dno').asstring+copychar(' ',Qry1.fieldbyname('dno').size-length(Qry1.fieldbyname('dno').asstring))+'   '+Qry1.fieldbyname('dept').asstring);

    combobox2.items.add(qry1.fieldbyname('dept').asstring);

    combobox3.items.add(qry1.fieldbyname('dept').asstring);
    qry1.next;
    end;
    Qry1.close;
    Qry1.sql.text:='Select * from lab01010 ';
    Qry1.open;
end;

procedure Tformprocess2.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if (activecontrol=edit1) or (activecontrol=combobox1) then exit;
  if key=#13 then
  begin
    key:=#0;
    Selectnext(activecontrol,true,true);
  end;
end;

procedure Tformprocess2.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
   if key=VK_F1 then
      begin
        //showmessage('ok!')
     //MessageDlg(Key + ' has been pressed', mtInformation, [mbOK], 0);
      Application.HelpFile :=Extractfilepath(application.ExeName)+ 'help\pasahelp.hlp';
      application.HelpJump('SHM_CONTENTS0042');
    end;
end;

procedure Tformprocess2.DateTimePicker1CloseUp(Sender: TObject);
begin
   maskedit1.text:=datetostr(datetimepicker1.date);
end;

procedure Tformprocess2.Button1Click(Sender: TObject);
var i,ygbhcd,id:integer;
    hangh,c3,c2:string;

   startrq,endrq:TDate;

begin
       Panel1.Visible:=true;
       Gauge1.MaxValue:=Listbox2.Items.Count;
       Gauge1.Progress :=0;
       datamod.adopublic.open;
       qry1.close;
       qry1.sql.clear;
       qry1.sql.add('delete workno');
       qry1.execsql;
       ygbhcd:=datamod.adopublicworknolength.AsInteger;
       For i:=0 to Listbox2.Items.Count -1 do
       begin
         hanGh:=Copy(Listbox2.Items[i],1,ygbhcd );
         try
         adoquery1.close;
         adoquery1.SQL.clear;
         adoquery1.sql.add('insert into workno(workno) values('''+hanGh+''')');
         adoquery1.execsql;
         except
         end;
         Gauge1.AddProgress(1);
         end;
            panel1.visible:=false;
            datamod.adopublic.close;
            formprocess2.close;
             //pbar1.stepit;
end;

 {
   with datamod do
   begin
      //if
       formprocess2.Hide;
       Panel1.Visible:=true;
       Gauge1.MaxValue:=Listbox2.Items.Count;
       Gauge1.Progress :=0;
       adopublic.open;
       ygbhcd:=adopublicworknolength.AsInteger;

     with formprocess do
     begin
        if application.messagebox(pchar('你确定要处理从'''+cbrq1.text+'/'+cbday1.text+'''到'''+cbrq2.text+'/'+cbday2.text+'''的考勤?'),'齐协提示',mb_yesno+mb_iconquestion)=idyes then
          Button1.Enabled := False;
          Button2.Enabled := True;

     cbrq1.visible:=false; cbrq2.visible:=false; cbday1.visible:=false; cbday2.visible:=false; label3.visible:=false;
     append(f);


     try
        Animate1.active:=TRUE;
        startrq:=strtodate(cbrq1.text+'/'+cbday1.text);
        endrq:=strtodate(cbrq2.text+'/'+cbday2.text);
        pbar1.max:=trunc(endrq-startrq)+1;
        pbar1.position:=0;
        pbar1.step:=1;
        try
        writeln(f,'-------------------------------------------------------');
        writeln(f,pchar(formatdatetime('yyyy/mm/dd hh:mm:ss',now)+'开始初始化考勤处理'));
        while startrq<=endrq do
        begin
           label1.caption:='开始日期'+formatdatetime('yyyy/mm/dd',startrq)+'的考勤处理';
           label1.update;
           label2.caption:='开始初始化考勤处理,读打卡资料和考勤分析';
           label2.update;
                For i:=0 to Listbox2.Items.Count -1 do
       begin
         hanGh:=Copy(Listbox2.Items[i],1,ygbhcd );
         try
            c3:='''+hanGh+''';

               Adocommand1.CommandText:='Exec kaoqinall '''+formatdatetime('yyyy/mm/dd',startrq)+''','''+hanGh+''' ';
               Adocommand1.Execute;
        except

               writeln(f,pchar('处理'+formatdatetime('yyyy/mm/dd',startrq)+'的考勤时出错'));

         end;
         Gauge1.AddProgress(1);
         end;
            panel1.visible:=false;
            adopublic.close;
             pbar1.stepit;
            startrq:=startrq+1;

       end;  //fo
        //Synchronize(paint);
       // end;
        writeln(f,pchar(formatdatetime('yyyy/mm/dd hh:mm:ss',now)+'结束考勤处理'));
        writeln(f,'-------------------------------------------------------');
        except
          Application.messagebox('考勤处理和薪资计算时出错.','Error',mb_ok+mb_iconerror);
          exit;
        end;
        datamod.adoclock.close;
        datamod.adosalset.close;
        datamod.adoatdset.close;
     finally
        closefile(f);
     end;
   label1.caption:='考勤处理完毕';
   label1.update;
  // terminate;
   Button1.Enabled := True;
   Button2.Enabled := False;
   Animate1.active:=false;
   cbrq1.visible:=true; cbrq2.visible:=true; cbday1.visible:=true; cbday2.visible:=true; label3.visible:=true;
   label1.caption:='开始日期:'; label1.update;
   label2.caption:='起';  label2.update;
   pbar1.position:=0;


end;
  application.messagebox('考勤处理成功!','成功',mb_ok+mb_iconinformation);
  close;
  //formprocess2. }

procedure Tformprocess2.Edit3Exit(Sender: TObject);
begin
 //edit7.text:=(((edit2.text).asinteger+1.5*(edit4.text).asinteger+2*(edit5.text).asinteger+3*(edit6.text).asinteger)*(edit3.text).asinteger).asstring;
edit7.text:=floattostr((strtofloat(edit2.text)+strtofloat(edit4.text)*1.5+strtofloat(edit5.text)*2+strtofloat(edit6.text)*3)*strtofloat(edit3.text));


 end;

procedure Tformprocess2.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
action:=cafree;
formprocess2:=nil;
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?