📄 employee.~pas
字号:
unit employee;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask, ExtCtrls, Buttons, DB, DBTables;
type
TEmployeeForm = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
ComboBox1: TComboBox;
Label4: TLabel;
Edit3: TEdit;
Label5: TLabel;
MaskEdit1: TMaskEdit;
Label6: TLabel;
MaskEdit2: TMaskEdit;
GroupBox2: TGroupBox;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Label10: TLabel;
Edit7: TEdit;
Label11: TLabel;
Edit8: TEdit;
Label12: TLabel;
Edit9: TEdit;
Label13: TLabel;
Edit10: TEdit;
Label14: TLabel;
Edit11: TEdit;
GroupBox3: TGroupBox;
Label15: TLabel;
Edit12: TEdit;
Label16: TLabel;
Edit13: TEdit;
Label17: TLabel;
Edit14: TEdit;
Label18: TLabel;
Edit15: TEdit;
GroupBox4: TGroupBox;
Edit16: TEdit;
Label19: TLabel;
Label20: TLabel;
Edit17: TEdit;
Label21: TLabel;
Edit18: TEdit;
RadioGroup1: TRadioGroup;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
Label22: TLabel;
Edit19: TEdit;
CheckBox1: TCheckBox;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Table1: TTable;
procedure BitBtn2Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure Edit1Exit(Sender: TObject);
procedure BitBtn1Click(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);
private
{ Private declarations }
public
{ Public declarations }
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 main;
{$R *.dfm}
procedure TEmployeeForm.BitBtn2Click(Sender: TObject);
begin
close;
end;
procedure TEmployeeForm.FormActivate(Sender: TObject);
begin
EmptyDataBox;
Edit1.SetFocus;
Edit15.Enabled:=false;
Edit15.TabStop:=false;
Edit16.Enabled:=false;
Edit16.TabStop:=false;
Edit17.Enabled:=false;
Edit17.TabStop:=false;
end;
procedure TEmployeeForm.Edit1Exit(Sender: TObject);
begin
Table1.DatabaseName:='gzgl';
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 RadioButton1.Checked then
begin
Application.MessageBox('该用户已经存在,请重输!','提示信息',mb_OK);
Edit1.setfocus;
end
else
ReadDataFromTable;
end
else
begin
if not RadioButton1.Checked then
begin
Application.MessageBox('该用户不存在,请重输!','提示信息',mb_OK);
Edit1.setfocus;
end
else
begin
edit2.setfocus;
end;
end;
end;
Table1.Active:=false;
end;
procedure TEmployeeForm.ReadDataFromTable;
begin
Edit1.Text:=Table1.FieldByname('number').AsString;
Edit2.Text:=Table1.FieldByname('name').AsString;
ComboBox1.Text:=Table1.FieldByname('sex').AsString;
Edit3.Text:=Table1.FieldByname('id').AsString;
MaskEdit1.Text:=DateToStr(Table1.FieldByname('birthdate').AsDateTime);
MaskEdit2.Text:=DateToStr(Table1.FieldByname('workdate').AsDateTime);
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('office').AsString;
Edit19.Text:=Table1.FieldByname('note').AsString;
Checkbox1.Checked:=Table1.FieldByName('enabled').AsBoolean;
end;
procedure TEmployeeForm.SaveDataToTable;
begin
Table1.Edit;
Table1.FieldByname('number').AsString:=Edit1.Text;
Table1.FieldByname('name').AsString:=Edit2.Text;
Table1.FieldByname('sex').AsString:=ComboBox1.Text;
Table1.FieldByname('id').AsString:=Edit3.Text;
Table1.FieldByname('birthdate').AsDateTime:=StrToDate(MaskEdit1.Text);
Table1.FieldByname('workdate').AsDateTime:=StrToDate(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('sum').AsFloat:=StrToFloat(Edit16.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('operatordate').AsDateTime:=date();
Table1.FieldByName('enabled').AsBoolean:=Checkbox1.Checked;
Table1.post;
end;
procedure TEmployeeForm.BitBtn1Click(Sender: TObject);
begin
Table1.active:=true;
if RadioButton1.Checked then
begin
Table1.append;
SaveDataToTable;
WriteHistoryDataTable;
end
else if radioButton2.Checked then
begin
Table1.EditKey;
table1.FieldByName('number').AsString:=Edit1.Text;
Table1.GotoKey;
Table1.Delete;
end
else
begin
Table1.EditKey;
table1.FieldByName('number').AsString:=Edit1.Text;
Table1.GotoKey;
SaveDataToTable;
WriteHistoryDataTable;
end;
Table1.Active:=false;
EmptyDataBox;
Edit1.SetFocus;
end;
procedure TEmployeeForm.WriteHistoryDataTable;
begin
Table1.Active:=false;
Table1.TableName:=str;
Table1.Active:=true;
Table1.append;
Table1.Edit;
Table1.FieldByname('number').AsString:=Edit1.Text;
Table1.FieldByname('name').AsString:=Edit2.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('sum').AsFloat:=StrToFloat(Edit16.Text);
Table1.FieldByName('real_salary').asfloat:=StrToFloat(Edit17.Text);
Table1.FieldByname('note').AsString:=Edit19.Text;
Table1.FieldByname('operator').AsString:=username;
Table1.FieldByname('operator_date').AsDateTime:=date();
Table1.post;
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:='';
ComboBox1.Text:=ComboBox1.Items[0];
Radiobutton1.Checked:=true;
CheckBox1.Checked:=true;
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:='gzgl';
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;
tax:=0;
i:=1;
sum:=StrToFloat(Edit16.Text);
while sum>division[i] do
begin
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;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -