overtime.pas

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

PAS
867
字号
   end;
end;

procedure TFormot.N4Click(Sender: TObject);
var i:1..5;
begin
  datamod.ADOot.Sort:='';
  for i:=1 to fcount do
  begin
   if dbgrid1.Columns[findex[i]].Color=clgray then
    begin
     datamod.ADOot.Sort :=datamod.ADOot.Sort+dbgrid1.Columns[findex[i]].FieldName+' '+fsort[i];
     if i<fcount then datamod.ADOot.Sort:=datamod.ADOot.Sort+',';
    end;
  end;
end;

procedure TFormot.N3Click(Sender: TObject);
var i:1..5;
begin
  for i:=1 to fcount do
    dbgrid1.Columns[findex[i]].Color :=clwindow;
  fcount:=0;
end;

procedure TFormot.DBNavigator1BeforeAction(Sender: TObject;
  Button: TNavigateBtn);
begin
   if button=nbinsert then
    datamod.ADOot.Append;
   if button=nbedit then
    datamod.ADOot.Edit;
   if datamod.adootman.recordcount=0 then
     whatdo:='new'
   else
     whatdo:='old';
  if button in [nbinsert,nbedit] then
  begin
   formchangeschedefine:=Tformchangeschedefine.create(self);
   with formchangeschedefine do
   begin
      formchangeschedefine.Position:=poMainFormCenter;
     caption:='加班的具体内容和人员';
     groupbox3.caption:='加班人员列表';
     label1.caption:='右边是加班的人员';
     panel1.Visible :=false;
     panel2.Visible:=true;
     Tbstate:=whatdo;

   end;
     if whatdo='old' then
     begin
       with datamod do
       begin
         ADOotman.First;
         while not ADOotman.eof do
         begin
           formchangeschedefine.ListBox2.Items.Add (ADOotman.fieldbyname('workno').asstring+copychar(' ',ADOotman.fieldbyname('workno').size-length(ADOotman.fieldbyname('workno').asstring))+'  '+
              ADOotman.fieldbyname('name').asstring+copychar(' ',ADOotman.fieldbyname('name').size-length(ADOotman.fieldbyname('name').asstring)));
           ADOotman.next;
         end;
       end; //with
     end;
   formchangeschedefine.Position:=poScreenCenter;
   try
     formchangeschedefine.Label25.caption:=inttostr(formchangeschedefine.ListBox2.Items.Count);
     formchangeschedefine.showmodal;
   finally
     formchangeschedefine.free;
   end;
  end;


{  case button of       //当修改或新建换班单时,调出换班具体作业
    nbinsert,
    nbedit:begin
             formchangeschedefine:=Tformchangeschedefine.Create(self);
             formchangeschedefine.panel2.Visible :=true;
             formchangeschedefine.Panel1.Visible:=false;
             formchangeschedefine.panel2.align :=alclient;
             if button=nbinsert then
              begin
               datamod.ADOchangebc.Insert;
               formchangeschedefine.Tbstate :='new'
              end
             else
              begin
               datamod.ADOchangebc.Edit;
               formchangeschedefine.Tbstate :='old';
              end;
             if button=nbinsert then
               for i:=1 to 10 do
                begin
                  with formchangeschedefine do
                  begin
                   dbcx:=Tdbcheckbox(findcomponent('DBCheckBox'+inttostr(i)));
                  end;
                  with dbcx do
                  begin
                    dbcx.checked:=false;
                  end;
                end
              else if button=nbedit then
                  with datamod do
                  begin
                     adochangebcman.First;
                     while not ADOchangebcman.Eof do
                     begin
                         formchangeschedefine.ListBox2.Items.Add (ADOchangebcman.fieldbyname('workno').asstring+'        '+
                           ADOchangebcman.fieldbyname('name').asstring+'    '+ADOchangebcman.fieldbyname('sexname').asstring);
                         ADOchangebcman.Next;
                     end;
                  end;
                try
                  formchangeschedefine.ShowModal;
                finally
                  formchangeschedefine.free;
                end;
           end;
  end; }
end;

procedure TFormot.DBGrid1TitleClick(Column: TColumn);
begin
    if f='DESC' then
     f:='ASC'
   else
     f:='DESC';
   datamod.ADOot.Sort :=column.FieldName+' '+f;
end;

procedure TFormot.DBGrid2TitleClick(Column: TColumn);
begin
   if f='DESC' then
     f:='ASC'
   else
     f:='DESC';
   datamod.ADOotman.Sort :=column.FieldName+' '+f;
end;

procedure TFormot.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if activecontrol=dbgrid1 then exit;
   if key=#13 then
    begin
      key:=#0;
      selectnext(activecontrol,true,true);
    end;
end;

procedure TFormot.DateTimePicker1CloseUp(Sender: TObject);
begin
  //  datamod.adoot.edit;
//datamod.adootstartrq.asstring:=datetostr(datetimepicker1.date);
end;

procedure TFormot.DateTimePicker2CloseUp(Sender: TObject);
begin
  //  datamod.adoot.edit;
  //  datamod.adootendrq.asstring:=datetostr(datetimepicker2.date);
end;

procedure TFormot.FormActivate(Sender: TObject);
begin
{  with datamod do
   begin
    //==============2003/04/16修改=============================
     adoot.close;
     adoot.commandtext:='Select * from atd11010 where otdate>='''+maskedit1.Text+''' and otdate<='''+maskedit2.text+''' order by otdate ';
     adoot.Open;
     ADOotman.open;
     adopersonal.Open;
     adosalset.open;
     if (adoot.recordcount>0) then
       Button1.enabled:=true
     else button1.enabled:=false;
  end;
    DBComboBox1.ItemIndex:=0;
}end;

procedure TFormot.FormCreate(Sender: TObject);
begin
{  datetimepicker1.Date :=date;
  datetimepicker2.Date :=date;
  datetimepicker3.date :=date;
  datetimepicker4.Date :=date;
  maskedit1.Text:=datetostr(date);
  maskedit2.text:=datetostr(date);  }
  //adodataset1.Open;
  datamod.ADOot.Open;
  datamod.ADOotman.Close;
  datamod.ADOotman.CommandText:='select * from atd11011 where otid=:otid ';
  datamod.ADOotman.Open;
end;

procedure TFormot.ComboBox1Exit(Sender: TObject);
begin
 { if trim(combobox1.text)<>'' then
    begin
     //==============2003/04/16修改=============================
      datamod.adoot.close;
      datamod.adoot.commandtext:='select a.* from atd11010 a left join atd11011 b  on a.otno = b.otno left join per24010 d on d.workno=b.workno where (a.otno='''+combobox1.text+''' or b.workno='''+combobox1.text+''' or d.name = '''+combobox1.text+''') order by a.otno ';
      datamod.adoot.open;
     if (datamod.adoot.recordcount>0) then
       Button1.enabled:=true
     else button1.enabled:=false;
    end;
}end;

procedure TFormot.MaskEdit2Exit(Sender: TObject);
var fmat1:string;
begin
{  if fmat='/' then
    fmat1:='    /  /  ';
  if fmat='-' then
    fmat1:='    -  -  ';
  if maskedit2.text<>fmat1 then
    if (not isdate(maskedit1.Text)) or (not isdate(maskedit2.text)) then
      begin
       Application.MessageBox('对不起,您输入的不是有效日期','Warning',mb_ok+mb_iconwarning);
       maskedit1.SetFocus;
      end
    else begin
     //==============2003/04/16修改=============================
      datamod.adoot.close;
      datamod.adoot.commandtext:='select * from atd11010 where startrq<='''+maskedit2.text+''' and startrq>='''+maskedit1.text+''' order by startrq ';
      datamod.adoot.open;
     if (datamod.adoot.recordcount>0) then
       Button1.enabled:=true
     else button1.enabled:=false;
    end;
}end;

procedure TFormot.DateTimePicker3CloseUp(Sender: TObject);
begin
  maskedit1.Text :=datetostr(datetimepicker3.Date);
end;

procedure TFormot.DateTimePicker4CloseUp(Sender: TObject);
begin
  maskedit2.Text :=datetostr(datetimepicker4.Date);
end;

procedure TFormot.ToolButton6Click(Sender: TObject);
var fmat1:string;
begin
 { if fmat='/' then
    fmat1:='    /  /  ';
  if fmat='-' then
    fmat1:='    -  -  ';
  datamod.adoot.close;
  datamod.adoot.commandtext:='select * from atd11010 order by startrq';
  datamod.adoot.open;
   //==============2003/04/16修改=============================
  if (datamod.adoot.recordcount>0) then
    Button1.enabled:=true
  else button1.enabled:=false;
  maskedit2.Text:=fmat1;
  maskedit1.Text:=fmat1;
}end;

procedure TFormot.N5Click(Sender: TObject);
begin
  datamod.ADOotman.Delete;
end;

procedure TFormot.N6Click(Sender: TObject);
begin
  datamod.ADOotman.Insert;
end;

procedure TFormot.N7Click(Sender: TObject);
begin
  datamod.adoot.Edit;
end;

procedure TFormot.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key=vk_f1 then
  begin
   Application.helpfile :=extractfilepath(application.exename) +'help\pasahelp.hlp';
   application.HelpJump('shm_contents0023');
  end;
end;

//hxw 2003/04/06
procedure TFormot.tbnprintClick(Sender: TObject);
var
mymon:string;
begin
  mymon:=inputbox('系统提示','请输入要列印的月份(''yyyy/mm'')',''''+formatdatetime('yyyy/mm',now)+'''');
  adodataset1.close;
  adodataset1.commandtext:='select per24010.workno,name, a1.hours1,a2.hours2,a3.hours3 from  per24010 left join '+
                            ' (select workno,sum( hours) hours1  from atd11010 b inner join '+
                            ' atd11011 c  on b.otno=c.otno where otkind=''平时'' and left(convert(varchar,b.startrq,111),7)='+mymon+' group by  workno) a1 on per24010.workno=a1.workno  left join '+
                            ' (select workno,sum(hours) hours2 from atd11010 d inner join  atd11011 e on d.otno=e.otno where otkind=''节日'' and left(convert(varchar,d.startrq,111),7)='+mymon+' group by workno ) a2 on per24010.workno=a2.workno '+
                            ' left join (select workno,sum(hours) hours3 from atd11010 e  inner join  atd11011 f on e.otno=f.otno where otkind=''假日'' and left(convert(varchar,e.startrq,111),7)='+mymon+' group by workno) a3 on per24010.workno=a3.workno ';
  adodataset1.open;
  ppreport2.print;
end;
procedure TFormot.ppReport1PreviewFormCreate(Sender: TObject);
begin
  tppReport(Sender).PreviewForm.WindowState:=wsMaximized;
end;

procedure TFormot.ppReport1BeforePrint(Sender: TObject);
begin
  pplabel1.caption:=companyname1;
  pplabel20.caption:=pubworkname;
end;

procedure TFormot.DBGrid2MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
 //==============2003/04/16修改=============================
   DBGrid2.hint:='本张单上共有:'+inttostr(datamod.adootman.recordcount)+'个人';
end;

procedure TFormot.DBEdit4Exit(Sender: TObject);
begin
{  if dbedit4.text<dbedit2.text then
    begin
      application.MessageBox('您输入的结束日期小於开始日期,请重新输入,否则您的作业将产生一想不到的结果','Warning',mb_ok+mb_iconwarning);
      dbedit4.setfocus;
    end;
}end;

procedure TFormot.ToolButton2Click(Sender: TObject);
begin
   if not assigned(form3) then
     form3:=TForm3.create(application);
     form3.Width:=331;
     form3.Height:=324;
   form3.show;
 // formotmx:=Tformotmx.create(application);
  //formotmx.ShowModal;
end;

procedure TFormot.DBEdit5Exit(Sender: TObject);
begin
{  if (dbedit4.text=dbedit2.text) and (dbedit5.text<dbedit3.Text)  then
    begin
      application.MessageBox('您输入的结束日期小於开始日期,请重新输入,否则您的作业将产生一想不到的结果','Warning',mb_ok+mb_iconwarning);
      dbedit5.setfocus;
    end;
}end;

procedure TFormot.ppReport2PreviewFormCreate(Sender: TObject);
begin
  tppReport(Sender).PreviewForm.WindowState:=wsMaximized;
end;

procedure TFormot.ppReport2BeforePrint(Sender: TObject);
begin
  pplabel21.caption:=companyname1;
  pplabel22.caption:=pubworkname;
end;

procedure TFormot.BitBtn2Click(Sender: TObject);
var i:string;
begin
if messagedlg('注意:移除前,请确认是删除此记录'+#13+'是否要进行移除',mtinformation,[mbyes,mbno],0)=mryes then
begin
  Animate1.Active:=true;
  Datamod.adoquery1.Close;
  datamod.adoquery1.SQL.Clear;
  label20.Caption:='正在移除资料,请稍後........';
  label20.Visible:=true;
  label20.Update;
  datamod.adoquery1.SQL.text:='exec otback ''1'','''+formatdatetime('yyyy/mm/dd',DateTimePicker5.DateTime)+''','''+formatdatetime('yyyy/mm/dd',DateTimePicker6.datetime)+'''';
  try
  datamod.adoquery1.ExecSQL;
  except
    ;
  end;
  label20.Caption:='移除完毕';
  label20.Update;
  Datamod.Adoot.close;
  Datamod.ADOotman.Close;
  Datamod.Adoot.commandtext:=' Select * from atd11010 order by startrq ';
  Datamod.Adootman.CommandText:='select atd11011.workno,per24010.name,per24010.sexname,per24010.prof,per24010.dept,atd11011.operator,atd11011.cdate from atd11011 '+
                                ' left join per24010 on atd11011.workno=per24010.workno where otno=:otno ';

  Datamod.Adoot.Open;
  Datamod.ADOotman.Open;
  messagedlg('移除成功,谢谢使用!!!!',mtinformation,[mbok],0);
  Animate1.Active:=false;
  label20.Visible:=false;
end;
end;
procedure TFormot.BitBtn3Click(Sender: TObject);
  var i:string;
begin
if messagedlg('注意:还原前,将删除现有的记录'+#13+'是否要进行还原',mtinformation,[mbyes,mbno],0)=mryes then
begin
  Animate1.Active:=true;
  datamod.adoquery1.Close;
  datamod.adoquery1.SQL.Clear;
  label20.Caption:='正在还原资料,请稍後........';
  label20.Visible:=true;
  label20.Update;
  datamod.adoquery1.SQL.text:=' exec otback ''0'','''+formatdatetime('yyyy/mm/dd',DateTimePicker5.DateTime)+''','''+formatdatetime('yyyy/mm/dd',DateTimePicker6.datetime)+'''';
  try
  datamod.adoquery1.ExecSQL;
  except
    ;
  end;
  label20.Caption:='还原完毕';
  label20.Update;
  Datamod.Adoot.close;
  Datamod.ADOotman.close;
  Datamod.Adoot.commandtext:=' Select * from atd11010 order by startrq ';
  Datamod.Adootman.CommandText:='select atd11011.workno,per24010.name,per24010.sexname,per24010.prof,per24010.dept,atd11011.operator,atd11011.cdate from atd11011 '+
                                ' left join per24010 on atd11011.workno=per24010.workno where otno=:otno ';
  Datamod.Adoot.Open;
  datamod.ADOotman.Open;
  messagedlg('移除成功,谢谢使用!!!!',mtinformation,[mbok],0);
  Animate1.Active:=false;
  label20.Visible:=false;
end;
end;
procedure TFormot.BitBtn1Click(Sender: TObject);
begin
  panel4.Visible:=false;
  label20.Visible:=false;
  datetimepicker5.Date :=now;
  datetimepicker6.Date :=now;
  Animate1.Active:=false;
end;
end.

⌨️ 快捷键说明

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