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

📄 salary_change.~pas

📁 这是一个小型的工资管理系统
💻 ~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 + -