📄 salary_change.pas
字号:
unit salary_change;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, SUIButton, StdCtrls, SUIImagePanel, SUIGroupBox, DB, Grids,
DBGrids, DBTables, ExtCtrls, SUIForm;
type
Tsalarychangeform = class(TForm)
suiForm1: TsuiForm;
Table1: TTable;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
suiGroupBox1: TsuiGroupBox;
suiGroupBox2: TsuiGroupBox;
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Edit11: TEdit;
Edit12: TEdit;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Table2: TTable;
suiButton1: TsuiButton;
suiButton2: TsuiButton;
Table1number: TStringField;
Table1name: 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;
Table1tax: TFloatField;
Table1sum: TFloatField;
Table1real_salary: TFloatField;
Table1note: TStringField;
Table1rest: TFloatField;
procedure FormActivate(Sender: TObject);
procedure Table1AfterScroll(DataSet: TDataSet);
procedure suiButton2Click(Sender: TObject);
procedure suiButton1Click(Sender: TObject);
procedure Edit1Exit(Sender: TObject);
procedure Edit2Exit(Sender: TObject);
procedure Edit3Exit(Sender: TObject);
procedure Edit4Exit(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);
private
{ Private declarations }
public
procedure readfromtable;
procedure initiate;
procedure savetotable;
procedure caltax;
procedure calsumsalary;
procedure calrealsalary;
end;
var
salarychangeform: Tsalarychangeform;
real_salary:real;
implementation
uses main1;
{$R *.dfm}
procedure Tsalarychangeform.FormActivate(Sender: TObject);
begin
table1.DatabaseName:='DBMS';
table1.TableName:='month_salary';
table1.Active:=true;
table2.DatabaseName:='DBMS';
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.suiButton2Click(Sender: TObject);
begin
table1.Active:=false;
close;
end;
procedure Tsalarychangeform.suiButton1Click(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(edit6.Text);
table1.FieldByName('detain').AsFloat:=strtofloat(edit10.Text);
table1.FieldByName('tax').AsFloat:=strtofloat(edit11.Text);
table1.FieldByName('real_salary').AsFloat:=real_salary;
table1.Post;
table2.Append;
table2.Edit;
table2.FieldByName('number').AsString:=table1.fieldbyname('number').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:='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(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;
procedure Tsalarychangeform.Edit2Exit(Sender: TObject);
begin
calsumsalary;
caltax;
end;
procedure Tsalarychangeform.Edit3Exit(Sender: TObject);
begin
calsumsalary;
caltax;
end;
procedure Tsalarychangeform.Edit4Exit(Sender: TObject);
begin
calsumsalary;
caltax;
end;
procedure Tsalarychangeform.Edit5Exit(Sender: TObject);
begin
calsumsalary;
caltax;
end;
procedure Tsalarychangeform.Edit6Exit(Sender: TObject);
begin
calsumsalary;
caltax;
end;
procedure Tsalarychangeform.Edit7Exit(Sender: TObject);
begin
calsumsalary;
caltax;
end;
procedure Tsalarychangeform.Edit8Exit(Sender: TObject);
begin
calsumsalary;
caltax;
end;
procedure Tsalarychangeform.Edit9Exit(Sender: TObject);
begin
calsumsalary;
caltax;
end;
procedure Tsalarychangeform.Edit10Exit(Sender: TObject);
begin
calsumsalary;
caltax;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -