📄 change.~pas
字号:
unit change;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB, Grids, DBGrids;
type
Tchangeform = class(TForm)
DBGrid1: TDBGrid;
ADOConnection1: TADOConnection;
DataSource1: TDataSource;
ADOTable1: TADOTable;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
GroupBox2: TGroupBox;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Edit9: TEdit;
Edit10: TEdit;
Edit11: TEdit;
Edit12: TEdit;
Button1: TButton;
Button2: TButton;
procedure Button2Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure initiate;
procedure loadfromtable;
procedure caltax;
procedure calsumsalary;
procedure calrealsalary;
procedure Edit1Exit(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
changeform: Tchangeform;
real_salary:real;
implementation
uses main;
{$R *.dfm}
procedure Tchangeform.Button2Click(Sender: TObject);
begin
close;
end;
procedure tchangeform.caltax;
var
Sqlquery1:tadoquery;
i:integer;
sum,tax:real;
rate:array[1..100] of real;
division:array[1..100] of integer;
begin
Sqlquery1:=TadoQuery.Create(self);
Sqlquery1.Connection:=adoconnection1;
sqlquery1.close;
sqlquery1.sql.clear;
sqlquery1.sql.add('select * from tax');
sqlquery1.open;
i:=1;
while not sqlquery1.Eof do
begin
division[i]:=sqlquery1.fieldbyname('division').AsInteger;
rate[i]:=sqlquery1.fieldbyname('rate').AsFloat;
sqlquery1.Next;
i:=i+1;
end;
division[i]:=-1;
rate[i]:=0;
SqlQuery1.close;
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 tchangeform.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 tchangeform.calrealsalary;
begin
real_salary:=0;
real_salary:=StrToFloat(Edit11.Text)-StrToFloat(Edit8.Text)-StrToFloat(Edit9.Text)
-StrToFloat(Edit12.Text)-StrToFloat(Edit10.Text);
end;
procedure tchangeform.loadfromtable;
begin
edit1.Text:=FloatToStr(adotable1.FieldByName('base_salary').AsFloat);
edit2.Text:=FloatToStr(adotable1.FieldByName('float_salary').AsFloat);
edit3.Text:=FloatToStr(adotable1.FieldByName('allowance_salary').AsFloat);
edit4.Text:=FloatToStr(adotable1.FieldByName('age_salary').AsFloat);
edit5.Text:=FloatToStr(adotable1.FieldByName('award').AsFloat);
edit6.Text:=FloatToStr(adotable1.FieldByName('addition_award').AsFloat);
edit7.Text:=FloatToStr(adotable1.FieldByName('rest').AsFloat);
edit8.Text:=FloatToStr(adotable1.FieldByName('insurance').AsFloat);
edit9.Text:=FloatToStr(adotable1.FieldByName('rent').AsFloat);
edit10.Text:=FloatToStr(adotable1.FieldByName('detain').AsFloat);
edit11.Text:=FloatToStr(adotable1.FieldByName('total').AsFloat);
edit12.Text:=FloatToStr(adotable1.FieldByName('tax').AsFloat);
end;
procedure tchangeform.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:='';
edit1.SetFocus;
end;
procedure Tchangeform.FormActivate(Sender: TObject);
begin
dbgrid1.datasource:=datasource1;
datasource1.dataset:=adotable1;
adotable1.connection:=adoconnection1;
adotable1.tablename:='month_salary';
adotable1.active:=true;
initiate;
if not adotable1.Eof then
loadfromtable;
end;
procedure Tchangeform.Edit1Exit(Sender: TObject);
begin
CalSumSalary;
CalTax;
end;
procedure Tchangeform.Button1Click(Sender: TObject);
var
sqlquery1:TadoQuery;
str1,str2:string;
begin
CalRealSalary;
str1:=adotable1.FieldByname('number').AsString;
str2:=adotable1.FieldByname('name').AsString;
adotable1.active:=false;
sqlquery1:=TadoQuery.Create(self);
sqlquery1.Connection:=adoconnection1;
sqlquery1.close;
sqlquery1.SQL.clear;
sqlquery1.SQL.add('update month_salary set base_salary=:s0,float_salary=:s1,allowance_salary=:s2,age_salary=:s3,award=:s4,addition_award=:s5,');
sqlquery1.sql.add('rest=:s6,insurance=:s7,rent=:s8,detain=:s9,total=:s10,tax=:s11,real_salary=:s12 where number=:s13');
sqlquery1.parameters.Clear;
sqlquery1.Parameters.AddParameter;
sqlquery1.Parameters[0].name:='s0';
sqlquery1.Parameters[0].datatype:=ftfloat;
sqlquery1.Parameters[0].direction:=pdinput;
sqlquery1.Parameters[0].value:=StrToFloat(Edit1.Text);
sqlquery1.Parameters.AddParameter;
sqlquery1.Parameters[1].name:='s1';
sqlquery1.Parameters[1].datatype:=ftfloat;
sqlquery1.Parameters[1].direction:=pdinput;
sqlquery1.Parameters[1].value:=StrToFloat(Edit2.Text);
sqlquery1.Parameters.AddParameter;
sqlquery1.Parameters[2].name:='s2';
sqlquery1.Parameters[2].datatype:=ftfloat;
sqlquery1.Parameters[2].direction:=pdinput;
sqlquery1.Parameters[2].value:=StrToFloat(Edit3.Text);
sqlquery1.Parameters.AddParameter;
sqlquery1.Parameters[3].name:='s3';
sqlquery1.Parameters[3].datatype:=ftfloat;
sqlquery1.Parameters[3].direction:=pdinput;
sqlquery1.Parameters[3].value:=StrToFloat(Edit4.Text);
sqlquery1.Parameters.AddParameter;
sqlquery1.Parameters[4].name:='s4';
sqlquery1.Parameters[4].datatype:=ftfloat;
sqlquery1.Parameters[4].direction:=pdinput;
sqlquery1.Parameters[4].value:=StrToFloat(Edit5.Text);
sqlquery1.Parameters.AddParameter;
sqlquery1.Parameters[5].name:='s5';
sqlquery1.Parameters[5].datatype:=ftfloat;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -