⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit3.pas

📁 劳保管理 ACCESS数据库 作为设计的一个参考
💻 PAS
📖 第 1 页 / 共 4 页
字号:
    end;
    sl.SaveToFile(FileName);
  finally
    sl.Free;
    Screen.Cursor := crDefault;
  end
end;



procedure TForm3.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
 begin
 edit4.setfocus;
 edit4.text:=getpy1(edit3.text);
 end;
end;

procedure TForm3.Edit4KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
  begin
    combobox2.setfocus;
    combobox2.DroppedDown:=true;
  end;
end;

procedure TForm3.ComboBox2KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
 begin
 combobox3.setfocus;
 combobox3.DroppedDown:=true;
 end;

end;

procedure TForm3.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9',#8,#13]) then key:=#0 ;
if key=#13 then edit3.setfocus;
end;

procedure TForm3.Edit3Exit(Sender: TObject);
begin
 edit4.setfocus;
 edit4.text:=getpy1(edit3.text);
end;

procedure TForm3.ComboBox1Exit(Sender: TObject);
begin
with table1 do
 begin
    if (combobox1.Text<>'') and (findkey([combobox1.Text])) then
    begin
        edit1.text:=FieldValues['bmbh'];
        exit;
    end;
    if (combobox1.Text<>'') and (not findkey([combobox1.Text])) then
    begin
    MessageDlg('没有此单位名称!', mtWarning, [mbOk], 0);
    exit;
    end;
  end;
end;

procedure TForm3.ComboBox3Exit(Sender: TObject);
begin
with table2 do
 begin
    if (combobox3.Text<>'') and (findkey([combobox3.Text])) then
    begin
        edit5.text:=FieldValues['gzbh'];
//        combobox4.setfocus;
//        combobox4.DroppedDown:=true;
        exit;
    end;
    if (combobox3.Text<>'') and (not findkey([combobox3.Text])) then
    begin
    MessageDlg('没有工种!', mtWarning, [mbOk], 0);
    exit;
    end;
  end;
end;

procedure TForm3.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
 begin
 combobox4.setfocus;
 combobox4.DroppedDown:=true;
 end;

end;

procedure TForm3.ComboBox4KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
 begin
 combobox5.setfocus;
 combobox5.DroppedDown:=true;
 end;

end;

procedure TForm3.ComboBox5KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
 begin
 combobox6.setfocus;
 combobox6.DroppedDown:=true;
 end;

end;

procedure TForm3.ComboBox6KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
 begin
 edit6.text:=combobox6.text;
 edit7.text:=combobox6.text;
 edit8.text:=combobox6.text;
 combobox7.setfocus;
 combobox7.DroppedDown:=true;
 end;

end;

procedure TForm3.ComboBox7KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
 begin
 combobox8.setfocus;
 combobox8.DroppedDown:=true;
 end;
end;

procedure TForm3.ComboBox8KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then bitbtn1.SetFocus;
end;

procedure TForm3.BitBtn1Click(Sender: TObject);
var
i:integer;
yy,mm,dd:word;
ffrq:string;
begin
if (combobox1.text='') or (edit1.text='') or (edit2.text='')
or (edit3.text='') or (edit4.text='') or (edit5.text='')
or (combobox3.text='') or (combobox2.text='') then
   begin
    MessageDlg('资料输入不全!', mtWarning, [mbOk], 0);
    exit;
   end;
table3.active:=true;
with table3 do
begin
  append;
  FieldValues['bmbh'] := trim(edit1.text);
  FieldValues['ygbh'] := trim(edit2.text);
  FieldValues['xm'] := trim(edit3.text);
  FieldValues['xmdm'] := trim(Edit4.text);
  FieldValues['xb'] := trim(combobox2.text);
  FieldValues['gzbh'] := trim(edit5.text);
  FieldValues['gzfgg'] :=combobox4.text;
  FieldValues['mygg'] :=combobox5.text;
  FieldValues['bwx'] :=combobox6.text;
  FieldValues['bjx'] :=FieldValues['bwx'];
  FieldValues['jx'] := FieldValues['bwx'];
  FieldValues['jyx'] :=FieldValues['bwx'];
  FieldValues['cygg'] :=trim(combobox7.text);
  FieldValues['xz'] :=trim(combobox8.text);
  Post;
 end;
//开始生成发放记录
with Query1 do
     begin
       close;
       SQL.clear;
       SQL.add('select lbmc,ffzq from gzlb');
       Sql.add(' where gzbh=:p1');
       ParamByname('p1').Asstring:=trim(edit5.text);
       prepare;
       open;
     end;
//生成初始发放日期
decodedate(Date,yy,mm,dd);
ffrq:=inttostr(yy)+'-07-01';
//发放记录填写
table4.Open;
with table4 do
begin
 for i:= 1 to query1.recordcount do
  begin
  append;
  FieldValues['bmbh'] := trim(edit1.text);
  FieldValues['gzbh'] := trim(edit5.text);
  FieldValues['ygbh'] := trim(edit2.text);
  FieldValues['lbmc'] := query1.FieldValues['lbmc'];
  FieldValues['ffzq'] := query1.FieldValues['ffzq'];
  FieldValues['ffrq'] := ffrq;
  post;
  query1.Next;
  end;
end;
table4.close;
//将发放记录列出供修改
with Query2 do
     begin
       close;
       SQL.clear;
       SQL.add('select lbmc,ffzq,ffrq from ffjl');
       Sql.add(' where ygbh=:p1');
       ParamByname('p1').Asstring:=trim(edit2.text);
       prepare;
       open;
     end;
//清理组件
edit2.text:='';
edit3.text:='';
edit4.text:='';
combobox1.SetFocus;
end;

procedure TForm3.Table3PostError(DataSet: TDataSet; E: EDatabaseError;
  var Action: TDataAction);
const
eKeyViol = 9729;
begin
    if (E is EDBEngineError) then
if (E as EDBEngineError).Errors[0].Errorcode = eKeyViol then
    begin
      MessageDlg('员工编号重复,请检查!', mtWarning, [mbOK], 0);
      Table3.Cancel;
      Abort;
    end;
end;


procedure TForm3.BitBtn3Click(Sender: TObject);
var
i:integer;
yy,mm,dd:word;
ffrq,s,s1:string;
begin
if (edit9.text='') or (edit11.text='') then
    begin
      MessageDlg('员工编号、部门编号、新工种编号缺一不可!', mtWarning, [mbOK], 0);
      exit;
    end;
//判断员工是否存在或对应的工种是否存在
with Query1 do
     begin
       close;
       SQL.clear;
       SQL.add('select lkyg.ygbh,gz.gzbh from lkyg,gz');
       Sql.add(' where lkyg.ygbh=:p1 and gz.gzbh=:p2');
       ParamByname('p1').Asstring:=trim(edit9.text);
       ParamByname('p2').Asstring:=trim(edit11.text);
       prepare;
       open;
     end;
if query1.RecordCount =0 then
    begin
      MessageDlg('员工不存在或者工种不存在!', mtWarning, [mbOK], 0);
      exit;
    end;
//删除原来记录
with Query1 do
     begin
       close;
       SQL.clear;
       SQL.add('delete  from ffjl');
       Sql.add(' where ygbh=:p1');
       ParamByname('p1').Asstring:=trim(edit9.text);
       prepare;
       ExecSQL;
     end;
//开始生成更新发放记录
with Query1 do
     begin
       close;
       SQL.clear;
       SQL.add('select gzlb.lbmc,ffzq,lkyg.bmbh from gzlb,lkyg');
       Sql.add(' where gzlb.gzbh=:p1 and ygbh=:p2');
       ParamByname('p1').Asstring:=trim(edit11.text);
       ParamByname('p2').Asstring:=trim(edit9.text);
       prepare;
       open;
     end;
//生成初始发放日期
decodedate(Date,yy,mm,dd);
ffrq:=inttostr(yy)+'-07-01';
//发放记录填写
with table4 do
begin
 for i:= 1 to query1.recordcount do
  begin
  append;
  FieldValues['bmbh'] := query1.FieldValues['bmbh'];
  FieldValues['ygbh'] := trim(edit9.text);
  FieldValues['gzbh'] := trim(edit11.text);
  FieldValues['lbmc'] := query1.FieldValues['lbmc'];
  FieldValues['ffzq'] := query1.FieldValues['ffzq'];
  FieldValues['ffrq'] := ffrq;
  post;
  query1.Next;
  end;
end;
//将发放记录列出供修改
with Query2 do
     begin
       close;
       SQL.clear;
       SQL.add('select lbmc,ffzq,ffrq from ffjl');
       Sql.add(' where ygbh=:p1');
       ParamByname('p1').Asstring:=trim(edit9.text);
       prepare;
       open;
     end;
//更改主库中工种代码
s1:=trim(edit11.Text );
s:='update lkyg set gzbh='''+s1+''' where ygbh=:p1';
with Query1 do
     begin
       close;
       SQL.clear;
       SQL.add(s);
       ParamByname('p1').Asstring:=trim(edit9.text);
       prepare;
       ExecSQL;
     end;

end;

procedure TForm3.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then edit2.SetFocus;
end;

procedure TForm3.ComboBox3KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
 begin
 combobox4.setfocus;
 combobox4.DroppedDown:=true;
 end;
end;

procedure TForm3.BitBtn2Click(Sender: TObject);
begin
if (edit9.text='') or (edit11.text='') then
    begin
      MessageDlg('员工编号、新工种编号缺一不可!', mtWarning, [mbOK], 0);
      exit;
    end;

with Query2 do
     begin
       close;
       SQL.clear;
       SQL.add('select lbmc,ffzq,ffrq from ffjl');
       Sql.add(' where ygbh=:p1');
       ParamByname('p1').Asstring:=trim(edit9.text);
       prepare;
       open;
     end;
end;

procedure TForm3.Edit14Change(Sender: TObject);
var
s:string;
begin
s:=trim(edit14.text)+'*';
with Query3 do
     begin
       close;
       SQL.clear;
       SQL.add('select xm,ygbh,bmbh from lkyg');
       Sql.add(' where xmdm like :xt');
       ParamByname('xt').Asstring:=s;
       prepare;
       open;
     end;
if query3.RecordCount =1 then
  begin
  edit12.text:=query3.FieldValues['ygbh'];
  edit20.text:=edit12.text;
  edit13.text:=query3.FieldValues['xm'];
//列出员工资料
  query6.Open;
  query7.open;
  end;
end;


procedure TForm3.DBGrid6CellClick(Column: TColumn);
begin
edit13.text:=query3.FieldValues['xm'];
edit12.text:=query3.FieldValues['ygbh'];
edit20.text:=edit12.text;
with query6 do
  begin
       close;
       SQL.clear;
       SQL.add('select * from lkyg');
       Sql.add(' where ygbh=:p1');
       ParamByname('p1').Asstring:=query3.FieldValues['ygbh'];
       prepare;
       open;
   end;
with query7 do
  begin
       close;
       SQL.clear;
       SQL.add('select * from lkyg');
       Sql.add(' where ygbh=:p1');
       ParamByname('p1').Asstring:=query3.FieldValues['ygbh'];
       prepare;
       open;
   end;
end;

procedure TForm3.TabSheet6Show(Sender: TObject);
begin
query5.Open;
end;

procedure TForm3.BitBtn5Click(Sender: TObject);
begin
if trim(edit12.text)='' then exit;
if MessageDlg('删除此员工及其发放记录,请确认!', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
 begin
//删除员工
with Query9 do
     begin
       close;
       SQL.clear;
       SQL.add('delete  from lkyg');
       Sql.add(' where ygbh=:p1');
       ParamByname('p1').Asstring:=trim(edit12.text);
       prepare;
       ExecSQL;
     end;
//删除发放记录
  with Query9 do
     begin
       close;
       SQL.clear;
       SQL.add('delete  from ffjl');
       Sql.add(' where ygbh=:p1');
       ParamByname('p1').Asstring:=trim(edit12.text);
       prepare;
       ExecSQL;
     end;
    MessageDlg('已经删除!', mtWarning, [mbOk], 0);
 end;
 query7.close;
 query7.Open;
 query6.close;
 query6.Open;

end;

procedure TForm3.BitBtn4Click(Sender: TObject);
var s,s1,s2:string;
begin
s1:=query5.FieldValues['bmmc'];
s2:=query5.FieldValues['bmbh'];
s:='update lkyg set bmbh='''+s2+''' where ygbh=:p1';
with Query8 do
     begin
       close;
       SQL.clear;
       SQL.add(s);
       ParamByname('p1').Asstring:=trim(edit12.text);
       prepare;
       ExecSQL;
     end;
query7.close;
query7.Open;
MessageDlg('更改部门完毕!', mtInformation,[mbOk], 0);
end;

procedure TForm3.BitBtn6Click(Sender: TObject);
begin

with query6 do
  begin
       close;
       SQL.clear;
       SQL.add('select * from lkyg');
       Sql.add(' where ygbh=:p1');
       ParamByname('p1').Asstring:=trim(edit20.text);
       prepare;
       open;
   end;
with query7 do
  begin
       close;
       SQL.clear;
       SQL.add('select * from lkyg');
       Sql.add(' where ygbh=:p1');
       ParamByname('p1').Asstring:=trim(edit20.text);
       prepare;
       open;
   end;
end;

procedure TForm3.BitBtn7Click(Sender: TObject);
var s,s1,s2,s3,s4:string;
begin
s1:=trim(edit17.Text);
s2:=trim(edit18.Text);
s3:=trim(edit19.Text);
s4:=trim(edit38.Text);
if (s1='') or (s2='') then exit;
if (s3='') or (s4='') then exit;
with Query8 do
     begin
       close;
       SQL.clear;
       SQL.add('select gzbh from gz');
       Sql.add(' where gzbh=:p1');
       ParamByname('p1').Asstring:=s2;
       prepare;
       open;
     end;
if query8.RecordCount=0 then
    begin
//      MessageDlg('工种还不存在!', mtWarning, [mbOK], 0);
s:='insert into gz  values('''+s2+''','''+s1+''')';
      with Query8 do
        begin
        close;
        SQL.clear;
        SQL.add(s);
        prepare;

⌨️ 快捷键说明

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