empface.pas

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

PAS
779
字号

procedure Tformempface.qryempfaceBeforeDelete(DataSet: TDataSet);
begin
  writerecorder(datamod.adoempface,true);
end;

procedure Tformempface.ScrollBox1DragOver(Sender, Source: TObject; X,
  Y: Integer; State: TDragState; var Accept: Boolean);
begin
  accept:=true;
  panel2.Top :=y;
  panel2.Left :=x;
end;

procedure Tformempface.RxDBGrid1DragOver(Sender, Source: TObject; X,
  Y: Integer; State: TDragState; var Accept: Boolean);
begin
  accept:=true;
  panel2.Top :=y;
  panel2.Left :=x;
end;

procedure Tformempface.Panel2DragDrop(Sender, Source: TObject; X,
  Y: Integer);
begin
  panel2.Top :=x;
  panel2.Left :=y;
end;

procedure Tformempface.FormDockOver(Sender: TObject;
  Source: TDragDockObject; X, Y: Integer; State: TDragState;
  var Accept: Boolean);
begin
  accept:=true;
  panel2.Top :=y;
  panel2.Left :=x;
end;

procedure Tformempface.qryempfaceBeforePost(DataSet: TDataSet);
begin
  if datamod.adoempface.State=dsinsert then
  begin
    if datamod.adoempface.FieldByName('ifok').asstring='1' then
     begin
      datamod.adoempface.FieldByName('state1').asstring:='1';
      datamod.adoempface.FieldByName('state2').asstring:='1';
     end; 
  end;
end;

procedure Tformempface.SpeedButton1Click(Sender: TObject);
begin
  panel2.Visible :=false;
  datamod.qryexchange.close;
end;

procedure Tformempface.FormActivate(Sender: TObject);
var mytextfile:Textfile;
    myfile,s:string;
    i:integer;
begin
    getdbgridwidth(dbgrid1,'p'+'empface');
     //把合格的资料写走(周期)
    datamod.ADOQuery1.sql.clear;
    datamod.ADOQuery1.sql.add('select * from emp07010 where ifok=1 and state1=1 and state2=1 and cdate<='''+datetostr(date+7)+''' ');
    datamod.ADOQuery1.open;
    if not datamod.ADOQuery1.eof then
    begin
     myfile:=extractfilepath(application.ExeName)+'data\123.txt';
     if not fileexists(myfile) then
      begin
        assignfile(mytextfile,myfile);
        rewrite(mytextfile);
      end
     else
      begin
        assignfile(mytextfile,myfile);
        append(mytextfile);
      end;
     while not datamod.ADOQuery1.eof do
      begin
       //把合格的资料写走
         s:='';
         for i:=0 to datamod.ADOQuery1.fields.Count-1 do
           s:=s+datamod.ADOQuery1.fields[i].AsString+'/~';
         writeln(mytextfile,s);
       datamod.adoquery1.next;
      end;
      closefile(mytextfile);
    end;
    datamod.ADOQuery1.close;
    datamod.ADOQuery1.sql.Clear;
    datamod.ADOQuery1.sql.add('delete emp07010 where ifok=1 and state1=1 and state2=1 and cdate<='''+datetostr(date+7)+''' ');
    datamod.ADOQuery1.execsql;
    datamod.ADOQuery1.close;
    dbprovince.clear;   //籍贯
    dbdegree.clear;     //学历
    dbcombobox2.clear;  //科系
    dbcombobox4.clear;  //职务
    dbcombobox6.clear;  //职务
    dbcombobox8.clear;  //职务
    dbcombobox5.clear;  //部门
    dbcombobox7.clear;  //应聘来源
    with datamod.ADOQuery1 do
     begin
       sql.Text :='select * from per03010';
       open;
       while not eof do
        begin
          dbprovince.Items.Add(fieldbyname('provname').asstring); //籍贯
          next;
        end;
        close;
        sql.text:='select * from per04010';
        open;
        while not eof do
         begin
           dbdegree.Items.Add(fieldbyname('degreename').asstring);  //学历
           next;
         end;
        close;
        sql.Text :='select * from per05010';
        open;
        while not eof do
         begin
           dbcombobox2.Items.Add (fieldbyname('coursename').asstring);//科系
           next;
         end;
        close;
        sql.Text :='select * from per01010';      //职务
        open;
        while not eof do
         begin
           dbcombobox4.Items.Add (fieldbyname('profname').asstring);
           dbcombobox6.Items.Add (fieldbyname('profname').asstring);
           dbcombobox8.Items.Add (fieldbyname('profname').asstring);
           next;
         end;
        close;
        sql.text:='select dno from pub05010';
        open;
        while not eof do
         begin
           dbcombobox5.Items.Add (fieldbyname('dno').asstring);  //部门编号
           next;
         end;
        close;
        sql.text:='select source from emp02010';
        open;
        while not eof do
         begin
           dbcombobox7.Items.Add (fieldbyname('source').asstring);  //部门编号
           next;
         end;
        close;  
     end;
end;

procedure Tformempface.tbnsortClick(Sender: TObject);
var i:1..5;
begin
  if manyfield then
   begin
     manyfield:=false;
     tbnsort.hint:='设定多字段排序';
     popupmenu1.Items[0].Enabled :=false;
     popupmenu1.Items[1].Enabled :=false;
     popupmenu1.Items[2].Enabled :=false;
     popupmenu1.Items[3].Enabled :=false;
   end
  else begin
    manyfield:=true;
    tbnsort.hint:='取消多字段排序'; //说明现在dbgrid1正处于多字段排序中
    f:='';
    popupmenu1.Items[0].Enabled :=true;
    popupmenu1.Items[1].Enabled :=true;
    popupmenu1.Items[2].Enabled :=true;
    popupmenu1.Items[3].Enabled :=true;
    fcount:=0;
    for i:=1 to 5 do
     begin
      findex[i]:=0;
      fsort[i]:='';
     end;
  end;
end;

procedure Tformempface.N1Click(Sender: TObject);
var i:integer;
begin
  for i:=1 to fcount do
   if dbgrid1.SelectedIndex =findex[i] then
    begin
     fsort[i]:='ASC';
     exit;
    end;
  if fcount<5 then
   begin
    fcount:=fcount+1;
    findex[fcount]:=dbgrid1.selectedindex;
    fsort[fcount]:='ASC';
    dbgrid1.Columns[dbgrid1.selectedindex].Color :=clgray;
   end;
end;

procedure Tformempface.N2Click(Sender: TObject);
var i:integer;
begin
  for i:=1 to fcount do
   if dbgrid1.SelectedIndex =findex[i] then
    begin
     fsort[i]:='DESC';
     exit;
    end;
  if fcount<5 then
   begin
    fcount:=fcount+1;
    findex[fcount]:=dbgrid1.selectedindex;
    fsort[fcount]:='DESC';
    dbgrid1.Columns[dbgrid1.selectedindex].Color :=clgray;
   end;
end;

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

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

procedure Tformempface.DBGrid1DragOver(Sender, Source: TObject; X,
  Y: Integer; State: TDragState; var Accept: Boolean);
begin
  accept:=true;
  panel2.Top :=y;
  panel2.Left :=x;
end;

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

procedure Tformempface.tbnfindClick(Sender: TObject);
begin
  findrecorder(datamod.adoempface,'Adoempface','emp07010');   //调用publicfuction中的查询功能
end;

procedure Tformempface.DBComboBox3Exit(Sender: TObject);
begin
  if dbcombobox3.items.indexof(dbcombobox3.text)=-1 then
    Application.messagebox('对不起,您输入的值不在列表中','提示',mb_ok+mb_iconinformation);
end;

procedure Tformempface.DBComboBox5DrawItem(Control: TWinControl;
  Index: Integer; Rect: TRect; State: TOwnerDrawState);
begin
  with (control as Tdbcombobox).canvas do
  begin
    fillrect(rect);
    textout(rect.left,rect.top,(Control as TdbComboBox).Items[Index]);
    edit1.text:=showcombox(index,dbcombobox5.Items[index]);
  end;
end;

procedure Tformempface.DBComboBox5DropDown(Sender: TObject);
begin
  dbcombobox5.Style :=csOwnerDrawVariable;
  edit1.Visible :=true;
end;

procedure Tformempface.DBComboBox9Exit(Sender: TObject);
begin
  if (trim(dbcombobox9.Text)<>dbcombobox9.Items[0]) and (trim(dbcombobox9.Text)<>dbcombobox9.Items[1]) then
   begin
    Application.messagebox('请输入正确的性别/男/女','提示',mb_ok+mb_iconinformation);
    dbcombobox9.setfocus;
   end;
end;

procedure Tformempface.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if activecontrol=dbgrid1 then
    exit;
  if key=#13 then
   begin
     key:=#0;
     if activecontrol=dbmemo4 then
       begin
         if datamod.adoempface.state=dsinsert then
           begin
             datamod.adoempface.post;
             datamod.adoempface.append;
           end;
           dbedit2.setfocus;
       end
     else
       selectnext(activecontrol,true,true);
   end;
end;

procedure Tformempface.DBComboBox5Exit(Sender: TObject);
var aqy:Tadoquery;
begin
   dbcombobox5.Style :=csdropdown;
   edit1.Text :='';
   edit1.Visible :=false;
   if length(trim(dbcombobox5.text))<1 then
     exit;
   aqy:=Tadoquery.create(self);                     //判断部门编号输入的是否正确
   aqy.connection:=datamod.database1;
   aqy.sql.Clear;
   aqy.sql.Add('select * from pub05010 where dno='''+dbcombobox5.text+'''');
   aqy.open;
   if not aqy.eof then
    begin
     datamod.adoempface.fieldbyname('reqdept').asstring :=aqy.fieldbyname('dno').asstring;
     edit1.Text :=aqy.fieldbyname('dno').asstring;
    end;
   aqy.close;
   aqy.free;
end;

procedure Tformempface.DBComboBox5Enter(Sender: TObject);
begin
  edit1.text:='';
  edit1.Visible :=true;
end;

procedure Tformempface.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_CONTENTS0048');
    end;
end;

procedure Tformempface.ppReport1BeforePrint(Sender: TObject);
begin
   pplabel57.caption:=companyname1;
   pplabel55.caption:='制表人:'+pubworkname;
end;

procedure Tformempface.TbPRINTClick(Sender: TObject);
begin
   ppreport1.devicetype:='Screen';
   ppreport1.print;
end;

procedure Tformempface.ppReport1PreviewFormCreate(Sender: TObject);
begin
  tppReport(Sender).PreviewForm.WindowState:=wsMaximized;
end;

procedure Tformempface.DateTimePicker2Change(Sender: TObject);
begin
   datamod.adoempfacebirthday.Asstring:=datetostr(datetimepicker2.date);
end;

end.

⌨️ 快捷键说明

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