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

📄 employee.pas

📁 这是一个小型的工资管理系统
💻 PAS
字号:
unit employee;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Mask, StdCtrls, SUIComboBox, SUIImagePanel, SUIGroupBox,
  ExtCtrls, SUIForm, SUIButton, DB, DBTables;

type
  Temployeeform = class(TForm)
    suiForm1: TsuiForm;
    suiGroupBox1: TsuiGroupBox;
    suiGroupBox2: TsuiGroupBox;
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Edit2: TEdit;
    Label3: TLabel;
    suiComboBox1: TsuiComboBox;
    Label4: TLabel;
    Edit3: TEdit;
    Label5: TLabel;
    Label6: TLabel;
    MaskEdit1: TMaskEdit;
    MaskEdit2: TMaskEdit;
    Label7: TLabel;
    Edit4: TEdit;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit8: TEdit;
    Edit9: TEdit;
    Label14: TLabel;
    Edit10: TEdit;
    Edit11: TEdit;
    suiGroupBox3: TsuiGroupBox;
    suiGroupBox4: TsuiGroupBox;
    suiGroupBox5: TsuiGroupBox;
    Label15: TLabel;
    Label16: TLabel;
    Label17: TLabel;
    Label18: TLabel;
    Edit12: TEdit;
    Edit13: TEdit;
    Edit14: TEdit;
    Edit15: TEdit;
    Label19: TLabel;
    Label20: TLabel;
    Edit16: TEdit;
    Edit17: TEdit;
    Label21: TLabel;
    Label22: TLabel;
    Edit18: TEdit;
    Edit19: TEdit;
    suiRadioButton1: TsuiRadioButton;
    suiRadioButton2: TsuiRadioButton;
    suiRadioButton3: TsuiRadioButton;
    suiCheckBox1: TsuiCheckBox;
    suiButton1: TsuiButton;
    suiButton2: TsuiButton;
    Table1: TTable;
    Table2: TTable;


    procedure suiButton2Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure Edit1Exit(Sender: TObject);
    procedure suiButton1Click(Sender: TObject);

    procedure Edit5Exit(Sender: TObject);
    procedure Edit6Exit(Sender: TObject);
    procedure Edit7Exit(Sender: TObject);
    procedure Edit8Exit(Sender: TObject);
    procedure Edit9Exit(Sender: TObject);
    procedure Edit10Exit(Sender: TObject);
    procedure Edit11Exit(Sender: TObject);

    procedure Edit12Exit(Sender: TObject);
   
    procedure Edit13Exit(Sender: TObject);
    procedure Edit14Exit(Sender: TObject);
    procedure suiRadioButton1MouseDown(Sender: TObject;
      Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure suiRadioButton2MouseDown(Sender: TObject;
      Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure suiRadioButton3Click(Sender: TObject);
  private
    { Private declarations }
  public
    procedure readdatafromtable;
    procedure savedatatotable;
    procedure writehistorydatatable;
    procedure emptydatabox;
    procedure calsumsalary;
    procedure calrealsalary;
    procedure retrysalary;
    procedure caltax;
  end;

var
  employeeform: Temployeeform;
  sumsalary,realsalary:real;
implementation
uses main1;
{$R *.dfm}




procedure Temployeeform.suiButton2Click(Sender: TObject);
begin
close;
end;

procedure Temployeeform.FormActivate(Sender: TObject);
begin

edit1.SetFocus;
edit15.Enabled:=false;
edit15.TabStop:=false;
edit16.Enabled:=false;
edit16.TabStop:=false;
edit17.Enabled:=false;
edit17.TabStop:=false;
edit1.Text:=' ';
edit2.Text:=' ';
edit3.Text:=' ';
edit4.Text:=' ';
edit5.Text:='0';
edit6.Text:='0';
edit7.Text:='0';
edit8.Text:='0';
edit9.Text:='0';
edit10.Text:='0';
edit11.Text:='0';
edit12.Text:='0';
edit13.Text:='0';
edit14.Text:='0';
edit15.Text:='0';
edit16.Text:='0';
edit17.Text:='0';
edit18.Text:=' ';
edit19.Text:=' ';
maskedit1.Text:=' ';
maskedit2.Text:=' ';
suiradiobutton1.Checked:=true;
end;

procedure Temployeeform.Edit1Exit(Sender: TObject);
begin
table1.DatabaseName:='DBMS';
table1.TableName:='salary';
table1.Active:=true;
if edit1.Text<>' ' then
begin
table1.EditKey;
table1.FieldByName('number').AsString:=edit1.Text;
table1.GotoKey;
if table1.FieldByName('number').AsString=edit1.Text then
begin
  if suiradiobutton1.Checked then
     begin
     application.MessageBox('该用户已经存在,请重输!','提示信息',mb_ok);
     edit1.SetFocus;
     end;
  if  suiradiobutton2.Checked or suiradiobutton3.Checked then
    readdatafromtable;
end;
if not (table1.FieldByName('number').AsString=edit1.Text) then
begin
   if  suiradiobutton2.Checked or suiradiobutton3.Checked then
     begin
     application.MessageBox('该用户不存在,请重输!','提示信息',mb_ok);
     edit1.SetFocus;
     end;

end;
end;
table1.Active:=false;
end;

procedure Temployeeform.readdatafromtable;
begin

edit1.Text:=table1.fieldbyname('number').AsString;
edit2.Text:=table1.fieldbyname('name').AsString;
suicombobox1.Text:=table1.fieldbyname('Sex').AsString;
edit3.Text:=table1.fieldbyname('id').AsString;
maskedit1.Text:=table1.fieldbyname('birthdate').AsString;
maskedit2.Text:=table1.fieldbyname('workdate').AsString;
edit4.Text:=table1.fieldbyname('job').AsString;
edit5.text:=floattostr(table1.fieldbyname('base_salary').AsFloat);
edit6.text:=floattostr(table1.fieldbyname('float_salary').AsFloat);
edit7.text:=floattostr(table1.fieldbyname('allowance_salary').AsFloat);
edit8.text:=floattostr(table1.fieldbyname('age_salary').AsFloat);
edit9.text:=floattostr(table1.fieldbyname('award').AsFloat);
edit10.text:=floattostr(table1.fieldbyname('addition_award').AsFloat);
edit11.text:=floattostr(table1.fieldbyname('rest').AsFloat);
edit12.text:=floattostr(table1.fieldbyname('insurance').AsFloat);
edit13.text:=floattostr(table1.fieldbyname('rent').AsFloat);
edit14.text:=floattostr(table1.fieldbyname('detain').AsFloat);
edit15.text:=floattostr(table1.fieldbyname('tax').AsFloat);
calsumsalary;
calrealsalary;
edit16.Text:=floattostr(sumsalary);
edit17.Text:=floattostr(realsalary);
edit18.Text:=table1.fieldbyname('job').AsString;
edit19.Text:=table1.fieldbyname('note').AsString;
suicheckbox1.Checked:=table1.fieldbyname('Enabled').AsBoolean;
end;

procedure Temployeeform.savedatatotable;
begin
table1.Append;
table1.Edit;
table1.fieldbyname('number').AsString:=edit1.Text;
table1.fieldbyname('name').AsString:=edit2.Text;
table1.fieldbyname('Sex').AsString:=suicombobox1.text;
table1.fieldbyname('id').AsString:=edit3.Text;
table1.fieldbyname('birthdate').AsString:=maskedit1.Text;
table1.fieldbyname('workdate').AsString:=maskedit2.Text;
table1.fieldbyname('job').AsString:=edit4.Text;
table1.FieldByName('base_salary').AsFloat:=strtofloat(edit5.Text);
table1.FieldByName('float_salary').AsFloat:=strtofloat(edit6.Text);
table1.FieldByName('allowance_salary').AsFloat:=strtofloat(edit7.Text);
table1.FieldByName('age_salary').AsFloat:=strtofloat(edit8.Text);
table1.FieldByName('award').AsFloat:=strtofloat(edit9.Text);
table1.FieldByName('addition_award').AsFloat:=strtofloat(edit10.Text);
table1.FieldByName('rest').AsFloat:=strtofloat(edit11.Text);
table1.FieldByName('insurance').AsFloat:=strtofloat(edit12.Text);
table1.FieldByName('rent').AsFloat:=strtofloat(edit13.Text);
table1.FieldByName('detain').AsFloat:=strtofloat(edit14.Text);
table1.FieldByName('tax').AsFloat:=strtofloat(edit15.Text);
table1.FieldByName('real_salary').AsFloat:=strtofloat(edit17.Text);
table1.fieldbyname('office').AsString:=edit18.Text;
table1.fieldbyname('note').AsString:=edit19.Text;
table1.FieldByName('operator').AsString:=username;
table1.FieldByName('operator_date').AsDateTime:=date();
table1.FieldByName('Enabled').AsBoolean:=suicheckbox1.Checked;
table1.Post;
end;



procedure Temployeeform.suiButton1Click(Sender: TObject);
begin
table1.Active:=true;
if suiradiobutton1.Checked then
begin
savedatatotable;
writehistorydatatable;
end;

if suiradiobutton2.Checked then
begin
table1.EditKey;
table1.FieldByName('number').AsString:=edit1.text;
table1.GotoKey;
table1.Delete;
end;

if suiradiobutton3.Checked then
begin
table1.EditKey;
table1.FieldByName('number').AsString:=edit1.text;
table1.GotoKey;
table1.Delete;
savedatatotable;
writehistorydatatable;
end;
table1.Active:=false;
emptydatabox;
edit1.SetFocus;
end;

procedure Temployeeform.writehistorydatatable;
begin
table2.DatabaseName:='DBMS';
table2.TableName:=str;
table2.Active:=true;
table2.Append;
table2.Edit;
table2.fieldbyname('number').AsString:=edit1.Text;
table2.fieldbyname('name').AsString:=edit2.Text;
table2.FieldByName('base_salary').AsFloat:=strtofloat(edit5.Text);
table2.FieldByName('float_salary').AsFloat:=strtofloat(edit6.Text);
table2.FieldByName('allowance_salary').AsFloat:=strtofloat(edit7.Text);
table2.FieldByName('age_salary').AsFloat:=strtofloat(edit8.Text);
table2.FieldByName('award').AsFloat:=strtofloat(edit9.Text);
table2.FieldByName('addition_award').AsFloat:=strtofloat(edit10.Text);
table2.FieldByName('rest').AsFloat:=strtofloat(edit11.Text);
table2.FieldByName('insurance').AsFloat:=strtofloat(edit12.Text);
table2.FieldByName('rent').AsFloat:=strtofloat(edit13.Text);
table2.FieldByName('detain').AsFloat:=strtofloat(edit14.Text);
table2.FieldByName('tax').AsFloat:=strtofloat(edit15.Text);
table2.FieldByName('real_salary').AsFloat:=strtofloat(edit17.Text);
table2.fieldbyname('note').AsString:=edit19.Text;
table2.FieldByName('operator').AsString:=username;
table2.FieldByName('operator_date').AsDateTime:=date();
table2.Post;
table2.Active:=false;
end;

procedure Temployeeform.emptydatabox;
begin
edit1.Text:=' ';
edit2.Text:=' ';
edit3.Text:=' ';
edit4.Text:=' ';
edit5.Text:='0';
edit6.Text:='0';
edit7.Text:='0';
edit8.Text:='0';
edit9.Text:='0';
edit10.Text:='0';
edit11.Text:='0';
edit12.Text:='0';
edit13.Text:='0';
edit14.Text:='0';
edit15.Text:='0';
edit16.Text:='0';
edit17.Text:='0';
edit18.Text:=' ';
edit19.Text:=' ';
maskedit1.Text:=' ';
maskedit2.Text:=' ';
suicombobox1.Text:=suicombobox1.Items[0];
suiradiobutton1.Checked:=true;
suicheckbox1.Checked:=false;
sumsalary:=0;
realsalary:=0;
end;

procedure Temployeeform.calsumsalary;
begin
sumsalary:=strtofloat(edit5.Text)+strtofloat(edit6.Text)+strtofloat(edit7.Text)+strtofloat(edit8.Text)+strtofloat(edit9.Text)+strtofloat(edit10.Text)+strtofloat(edit11.Text);
end;

procedure Temployeeform.calrealsalary;
begin
realsalary:=sumsalary-strtofloat(edit12.Text)-strtofloat(edit13.Text)-strtofloat(edit14.Text)-strtofloat(edit15.Text);
end;

procedure Temployeeform.retrysalary;
begin
calsumsalary;
edit16.Text:=floattostr(sumsalary);
caltax;
calrealsalary;
edit17.Text:=floattostr(realsalary);
end;




procedure Temployeeform.Edit5Exit(Sender: TObject);
begin
retrysalary;
end;

procedure Temployeeform.Edit6Exit(Sender: TObject);
begin
retrysalary;
end;

procedure Temployeeform.Edit7Exit(Sender: TObject);
begin
retrysalary;
end;

procedure Temployeeform.Edit8Exit(Sender: TObject);
begin
retrysalary;
end;

procedure Temployeeform.Edit9Exit(Sender: TObject);
begin
retrysalary;
end;

procedure Temployeeform.Edit10Exit(Sender: TObject);
begin
retrysalary;
end;

procedure Temployeeform.Edit11Exit(Sender: TObject);
begin
retrysalary;
end;



procedure Temployeeform.Edit12Exit(Sender: TObject);
begin
retrysalary;
end;



procedure Temployeeform.Edit13Exit(Sender: TObject);
begin
retrysalary;
end;

procedure Temployeeform.Edit14Exit(Sender: TObject);
begin
retrysalary;
end;

procedure Temployeeform.caltax;
var
taxtable:Ttable;
i:integer;
sum,tax:real;
rate:array[1..100]of real;
division:array[1..100] of integer;
begin
taxtable:=TTable.Create(self);
taxtable.DatabaseName:='DBMS';
taxtable.TableName:='tax';
taxtable.Active:=true;
i:=1;
while not taxtable.Eof do
begin
   division[i]:=taxtable.fieldbyname('division').AsInteger;
   rate[i]:=taxtable.fieldbyname('rate').asfloat;
   taxtable.Next;
   i:=i+1;
end;
division[i]:=-1;
rate[i]:=0;
taxtable.Active:=false;
tax:=0;
i:=1;
sum:=strtofloat(edit16.Text);
while division[i]<>-1 do
begin
if  sum>division[i] then
  begin
    if sum<division[i+1] then
     begin
     tax:=sum*rate[i];
     division[i]:=-1;
     end
     else i:=i+1
  end
else
    begin
     tax:=0;
     division[i]:=-1;
    end;
end;
if (i<>1) and (rate[i]=0) then
tax:=sum*rate[i-1];
edit15.Text:=floattostr(tax);

end;



procedure Temployeeform.suiRadioButton1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
edit1.SetFocus;
end;

procedure Temployeeform.suiRadioButton2MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
edit1.SetFocus;
end;

procedure Temployeeform.suiRadioButton3Click(Sender: TObject);
begin
edit1.SetFocus;
end;

end.

⌨️ 快捷键说明

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