📄 employee.~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);
{if i=1 then
tax:=0
else
tax:=tax+(division[i]-division[i-1]*rate[i-1]);
i:=i+1;
end;
if i=1 then
tax:=0
else
tax:=tax+(sum-division[i-1]*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 + -