📄 salary_change.pas
字号:
unit salary_change;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, DB, DBTables, StdCtrls, Buttons;
type
TSalaryChangeForm = class(TForm)
DBGrid1: TDBGrid;
Table1: TTable;
DataSource1: TDataSource;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
Edit3: TEdit;
Label4: TLabel;
Edit4: TEdit;
Label5: TLabel;
Edit5: TEdit;
Label6: TLabel;
Edit6: TEdit;
Label7: TLabel;
Edit7: TEdit;
Label8: TLabel;
Edit8: TEdit;
Label9: TLabel;
Edit9: TEdit;
Label10: TLabel;
Edit10: TEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Table2: TTable;
Table1number: TStringField;
Table1name: TStringField;
Table1sum: TFloatField;
Table1real_salary: TFloatField;
Table1tax: TFloatField;
Table1note: TStringField;
Table1salary_date: TStringField;
Table1operator: TStringField;
Table1base_salary: TFloatField;
Table1float_salary: TFloatField;
Table1allowance_salary: TFloatField;
Table1age_salary: TFloatField;
Table1award: TFloatField;
Table1addition_award: TFloatField;
Table1insurance: TFloatField;
Table1rent: TFloatField;
Table1detain: TFloatField;
Table1rest: TFloatField;
Label11: TLabel;
Edit11: TEdit;
Label12: TLabel;
Edit12: TEdit;
procedure FormActivate(Sender: TObject);
procedure Table1AfterScroll(DataSet: TDataSet);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure Edit1Exit(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure initiate;
procedure ReadFromTable;
procedure SaveToTable;
procedure CalTax;
procedure CalSumSalary;
procedure CalRealSalary;
end;
var
SalaryChangeForm: TSalaryChangeForm;
real_salary:real;
implementation
uses main;
{$R *.dfm}
procedure TSalaryChangeForm.FormActivate(Sender: TObject);
begin
Table1.Active:=true;
table2.DatabaseName:='gzgl';
table2.TableName:=str;
Table2.active:=true;
dbgrid1.SetFocus;
initiate;
if not table1.Eof then
ReadFromTable;
end;
procedure TSalaryChangeForm.ReadFromTable;
begin
edit1.Text:=FloatToStr(Table1.FieldByName('base_salary').AsFloat);
edit2.Text:=FloatToStr(Table1.FieldByName('float_salary').AsFloat);
edit3.Text:=FloatToStr(Table1.FieldByName('allowance_salary').AsFloat);
edit4.Text:=FloatToStr(Table1.FieldByName('age_salary').AsFloat);
edit5.Text:=FloatToStr(Table1.FieldByName('award').AsFloat);
edit6.Text:=FloatToStr(Table1.FieldByName('addition_award').AsFloat);
edit7.Text:=FloatToStr(Table1.FieldByName('rest').AsFloat);
edit8.Text:=FloatToStr(Table1.FieldByName('insurance').AsFloat);
edit9.Text:=FloatToStr(Table1.FieldByName('rent').AsFloat);
edit10.Text:=FloatToStr(Table1.FieldByName('detain').AsFloat);
edit11.Text:=FloatToStr(Table1.FieldByName('sum').AsFloat);
edit12.Text:=FloatToStr(Table1.FieldByName('tax').AsFloat);
end;
procedure TSalaryChangeForm.Table1AfterScroll(DataSet: TDataSet);
begin
ReadFromTable;
end;
procedure TSalaryChangeForm.initiate;
begin
Edit1.Text:='';
Edit2.Text:='';
Edit3.Text:='';
Edit4.Text:='';
Edit5.Text:='';
Edit6.Text:='';
Edit7.Text:='';
Edit8.Text:='';
Edit9.Text:='';
Edit10.Text:='';
Edit11.Text:='';
Edit12.Text:='';
real_salary:=0;
end;
procedure TSalaryChangeForm.BitBtn2Click(Sender: TObject);
begin
Table1.Active:=false;
close;
end;
procedure TSalaryChangeForm.BitBtn1Click(Sender: TObject);
begin
SaveToTable;
end;
procedure TSalaryChangeForm.SaveToTable;
begin
CalRealSalary;
Table1.Edit;
Table1.FieldByName('base_salary').AsFloat:=StrToFloat(Edit1.Text);
Table1.FieldByName('float_salary').AsFloat:=StrToFloat(Edit2.Text);
Table1.FieldByName('allowance_salary').AsFloat:=StrToFloat(edit3.Text);
Table1.FieldByName('age_salary').AsFloat:=StrToFloat(edit4.Text);
Table1.FieldByName('award').AsFloat:=StrToFloat(edit5.Text);
Table1.FieldByName('addition_award').AsFloat:=StrToFloat(edit6.Text);
Table1.FieldByName('rest').AsFloat:=StrToFloat(edit7.Text);
Table1.FieldByName('insurance').AsFloat:=StrToFloat(edit8.Text);
Table1.FieldByName('rent').AsFloat:=StrToFloat(edit9.Text);
Table1.FieldByName('detain').AsFloat:=StrToFloat(edit10.Text);
Table1.FieldByName('sum').AsFloat:=StrToFloat(edit11.Text);
Table1.FieldByName('tax').AsFloat:=StrToFloat(edit12.Text);
Table1.FieldByName('real_salary').AsFloat:=real_salary;
Table1.Post;
Table2.Append;
Table2.Edit;
Table2.FieldByname('number').AsString:=Table1.FieldByname('number').AsString;
Table2.FieldByname('name').AsString:=Table1.FieldByname('name').AsString;
Table2.FieldByname('base_salary').AsFloat:=Table1.FieldByname('base_salary').AsFloat;
Table2.FieldByname('float_salary').AsFloat:=Table1.FieldByname('float_salary').AsFloat;
Table2.FieldByname('allowance_salary').AsFloat:=Table1.FieldByname('allowance_salary').AsFloat;
Table2.FieldByname('age_salary').AsFloat:=Table1.FieldByname('age_salary').AsFloat;
Table2.FieldByname('award').AsFloat:=Table1.FieldByname('award').AsFloat;
Table2.FieldByname('addition_award').AsFloat:=Table1.FieldByname('addition_award').AsFloat;
Table2.FieldByname('rest').AsFloat:=Table1.FieldByname('rest').AsFloat;
Table2.FieldByname('insurance').AsFloat:=Table1.FieldByname('insurance').AsFloat;
Table2.FieldByname('rent').AsFloat:=Table1.FieldByname('rent').AsFloat;
Table2.FieldByname('detain').AsFloat:=Table1.FieldByname('detain').AsFloat;
Table2.FieldByname('tax').AsFloat:=Table1.FieldByname('tax').AsFloat;
Table2.FieldByname('sum').AsFloat:=Table1.FieldByname('sum').AsFloat;
Table2.FieldByName('real_salary').asfloat:=Table1.FieldByName('real_salary').asfloat;
Table2.FieldByname('note').AsString:=Table1.FieldByname('note').AsString;
Table2.FieldByname('operator').AsString:=username;
Table2.FieldByname('operator_date').AsDateTime:=date();
Table2.post;
end;
procedure TSalaryChangeForm.CalSumSalary;
begin
Edit11.Text:=FloatToStr(StrToFloat(Edit1.Text)+StrToFloat(Edit2.Text)
+StrToFloat(Edit3.Text)+StrToFloat(Edit4.Text)+StrToFloat(Edit5.Text)
+StrToFloat(Edit6.Text)+StrToFloat(Edit7.Text));
end;
procedure TSalaryChangeForm.CalRealSalary;
begin
real_salary:=0;
real_salary:=StrToFloat(Edit11.Text)-StrToFloat(Edit8.Text)-StrToFloat(Edit9.Text)
-StrToFloat(Edit12.Text)-StrToFloat(Edit10.Text);
end;
procedure TSalaryChangeForm.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;
division[i]:=-1;
rate[i]:=0;
TaxTable.Active:=false;
tax:=0;
i:=1;
sum:=StrToFloat(Edit11.Text);
while (sum>division[i]) and (division[i]<>-1) 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];
Edit12.Text:=FloatToStr(tax);
end;
procedure TSalaryChangeForm.Edit1Exit(Sender: TObject);
begin
CalSumSalary;
CalTax;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -