📄 salary.~pas
字号:
unit salary;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask, DB, ADODB;
type
Tsalaryform = class(TForm)
GroupBox1: TGroupBox;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
ComboBox1: TComboBox;
Edit4: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
MaskEdit1: TMaskEdit;
MaskEdit2: TMaskEdit;
GroupBox2: TGroupBox;
Edit5: TEdit;
Label8: TLabel;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Edit11: TEdit;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
GroupBox3: TGroupBox;
Edit12: TEdit;
Edit13: TEdit;
Edit14: TEdit;
Edit15: TEdit;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
GroupBox4: TGroupBox;
Edit16: TEdit;
Edit17: TEdit;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
Edit18: TEdit;
Label22: TLabel;
Edit19: TEdit;
GroupBox5: TGroupBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
CheckBox1: TCheckBox;
Button1: TButton;
Button2: TButton;
ADOConnection1: TADOConnection;
Button3: TButton;
procedure Button2Click(Sender: TObject);
procedure EmptyDataBox;
procedure Button3Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure Edit1Exit(Sender: TObject);
procedure calsumsalary;
procedure calrealsalary;
procedure retrysalary;
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);
procedure caltax;
procedure Button1Click(Sender: TObject);
procedure writehistorydatatable;
private
{ Private declarations }
public
{ Public declarations }
end;
var
salaryform: Tsalaryform;
SumSalary,RealSalary:real;
implementation
uses main;
{$R *.dfm}
procedure tsalaryform.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(Edit16.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];
Edit15.Text:=FloatToStr(tax);
end;
procedure tsalaryform.retrysalary;
begin
CalSumSalary;
Edit16.Text:=FloatToStr(SumSalary);
CalTax;
CalRealSalary;
Edit17.Text:=FloatToStr(RealSalary);
end;
procedure tsalaryform.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 tsalaryform.calrealsalary;
begin
RealSalary:=SumSalary-StrToFloat(Edit12.Text)-StrToFloat(Edit13.Text)-
StrToFloat(Edit14.Text)-StrToFloat(Edit15.Text);
end;
procedure Tsalaryform.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:='男';
Radiobutton1.Checked:=true;
CheckBox1.Checked:=true;
SumSalary:=0;
RealSalary:=0;
end;
procedure Tsalaryform.Button2Click(Sender: TObject);
begin
close;
end;
procedure Tsalaryform.Button3Click(Sender: TObject);
begin
EmptyDataBox;
edit1.setfocus;
end;
procedure Tsalaryform.FormActivate(Sender: TObject);
begin
EmptyDataBox;
Edit1.SetFocus;
combobox1.items.add('男');
combobox1.Items.add('女');
Edit15.Enabled:=false;
Edit15.TabStop:=false;
Edit16.Enabled:=false;
Edit16.TabStop:=false;
Edit17.Enabled:=false;
Edit17.TabStop:=false;
end;
procedure tsalaryform.writehistorydatatable;
var
adodataset1:tadoquery;
begin
adodataset1:=tadoquery.create(self);
adodataset1.connection:=adoconnection1;
adodataset1.close;
adodataset1.SQL.clear;
adodataset1.sql.add('insert into info values(:s0,:s1,:s2,:s3,:s4,:s5,:s6,:s7,:s8,:s9,:s10,:s11,:s12,:s13,:s14,:s15,:s16,:s17)');
adodataset1.Parameters.clear;
adodataset1.parameters.addparameter;
adodataset1.parameters[0].Name:='s0';
adodataset1.parameters[0].datatype:=ftstring;
adodataset1.parameters[0].direction:=pdinput;
adodataset1.parameters[0].value:=edit1.text;
adodataset1.parameters.addparameter;
adodataset1.parameters[1].Name:='s1';
adodataset1.parameters[1].datatype:=ftstring;
adodataset1.parameters[1].direction:=pdinput;
adodataset1.parameters[1].value:=edit2.text;
adodataset1.parameters.addparameter;
adodataset1.parameters[2].Name:='s2';
adodataset1.parameters[2].datatype:=ftdate;
adodataset1.parameters[2].direction:=pdinput;
adodataset1.parameters[2].value:=date();
adodataset1.parameters.addparameter;
adodataset1.parameters[3].Name:='s3';
adodataset1.parameters[3].datatype:=ftstring;
adodataset1.parameters[3].direction:=pdinput;
adodataset1.parameters[3].value:=username;
adodataset1.parameters.addparameter;
adodataset1.parameters[4].Name:='s4';
adodataset1.parameters[4].datatype:=ftfloat;
adodataset1.parameters[4].direction:=pdinput;
adodataset1.parameters[4].value:=strtofloat(edit5.text);
adodataset1.parameters.addparameter;
adodataset1.parameters[5].Name:='5';
adodataset1.parameters[5].datatype:=ftfloat;
adodataset1.parameters[5].direction:=pdinput;
adodataset1.parameters[5].value:=strtofloat(edit6.text);
adodataset1.parameters.addparameter;
adodataset1.parameters[6].Name:='s6';
adodataset1.parameters[6].datatype:=ftfloat;
adodataset1.parameters[6].direction:=pdinput;
adodataset1.parameters[6].value:=strtofloat(edit7.text);
adodataset1.parameters.addparameter;
adodataset1.parameters[7].Name:='s7';
adodataset1.parameters[7].datatype:=ftfloat;
adodataset1.parameters[7].direction:=pdinput;
adodataset1.parameters[7].value:=strtofloat(edit8.text);
adodataset1.parameters.addparameter;
adodataset1.parameters[8].Name:='s8';
adodataset1.parameters[8].datatype:=ftfloat;
adodataset1.parameters[8].direction:=pdinput;
adodataset1.parameters[8].value:=strtofloat(edit9.text);
adodataset1.parameters.addparameter;
adodataset1.parameters[9].Name:='s9';
adodataset1.parameters[9].datatype:=ftfloat;
adodataset1.parameters[9].direction:=pdinput;
adodataset1.parameters[9].value:=strtofloat(edit10.text);
adodataset1.parameters.addparameter;
adodataset1.parameters[10].Name:='s10';
adodataset1.parameters[10].datatype:=ftfloat;
adodataset1.parameters[10].direction:=pdinput;
adodataset1.parameters[10].value:=strtofloat(edit11.text);
adodataset1.parameters.addparameter;
adodataset1.parameters[11].Name:='s11';
adodataset1.parameters[11].datatype:=ftfloat;
adodataset1.parameters[11].direction:=pdinput;
adodataset1.parameters[11].value:=strtofloat(edit12.text);
adodataset1.parameters.addparameter;
adodataset1.parameters[12].Name:='s12';
adodataset1.parameters[12].datatype:=ftfloat;
adodataset1.parameters[12].direction:=pdinput;
adodataset1.parameters[12].value:=strtofloat(edit13.text);
adodataset1.parameters.addparameter;
adodataset1.parameters[13].Name:='s13';
adodataset1.parameters[13].datatype:=ftfloat;
adodataset1.parameters[13].direction:=pdinput;
adodataset1.parameters[13].value:=strtofloat(edit14.text);
adodataset1.parameters.addparameter;
adodataset1.parameters[14].Name:='s14';
adodataset1.parameters[14].datatype:=ftfloat;
adodataset1.parameters[14].direction:=pdinput;
adodataset1.parameters[14].value:=strtofloat(edit16.text);
adodataset1.parameters.addparameter;
adodataset1.parameters[15].Name:='s15';
adodataset1.parameters[15].datatype:=ftfloat;
adodataset1.parameters[15].direction:=pdinput;
adodataset1.parameters[15].value:=strtofloat(edit17.text);
adodataset1.parameters.addparameter;
adodataset1.parameters[16].Name:='s16';
adodataset1.parameters[16].datatype:=ftfloat;
adodataset1.parameters[16].direction:=pdinput;
adodataset1.parameters[16].value:=strtofloat(edit15.text);
adodataset1.parameters.addparameter;
adodataset1.parameters[17].Name:='s17';
adodataset1.parameters[17].datatype:=ftstring;
adodataset1.parameters[17].direction:=pdinput;
adodataset1.parameters[17].value:=edit19.text;
end;
procedure Tsalaryform.Edit1Exit(Sender: TObject);
var
adodataset1:tadodataset;
begin
if edit1.text<>''then
begin
adodataset1:=tadodataset.create(self);
adodataset1.Connection:=adoconnection1;
adodataset1.CommandType:=cmdtext;
adodataset1.commandtext:='select * from salary where number=:user';
adodataset1.close;
adodataset1.parameters.clear;
adodataset1.parameters.addparameter;
adodataset1.parameters[0].Name:='user';
adodataset1.parameters[0].datatype:=ftstring;
adodataset1.parameters[0].direction:=pdinput;
adodataset1.parameters[0].value:=edit1.text;
adodataset1.Active:=true;
if adodataset1.recordset.recordcount=1 then
begin
if radiobutton1.checked=true then
begin
application.MessageBox('该用户已存在,请重新输入!','提示信息',mb_ok);
EmptyDataBox;
end
else
begin
Edit1.Text:=adodataset1.FieldByname('number').AsString;
Edit2.Text:=adodataset1.FieldByname('name').AsString;
ComboBox1.Text:=adodataset1.FieldByname('sex').AsString;
Edit3.Text:=adodataset1.FieldByname('id').AsString;
MaskEdit1.Text:=DateToStr(adodataset1.FieldByname('birthdate').AsDateTime);
MaskEdit2.Text:=DateToStr(adodataset1.FieldByname('workdate').AsDateTime);
Edit4.Text:=adodataset1.FieldByname('job').AsString;
Edit5.Text:=FloatToStr(adodataset1.FieldByname('base_salary').AsFloat);
Edit6.Text:=FloatToStr(adodataset1.FieldByname('float_salary').AsFloat);
Edit7.Text:=FloatToStr(adodataset1.FieldByname('allowance_salary').AsFloat);
Edit8.Text:=FloatToStr(adodataset1.FieldByname('age_salary').AsFloat);
Edit9.Text:=FloatToStr(adodataset1.FieldByname('award').AsFloat);
Edit10.Text:=FloatToStr(adodataset1.FieldByname('addition_award').AsFloat);
Edit11.Text:=FloatToStr(adodataset1.FieldByname('rest').AsFloat);
Edit12.Text:=FloatToStr(adodataset1.FieldByname('insurance').AsFloat);
Edit13.Text:=FloatToStr(adodataset1.FieldByname('rent').AsFloat);
Edit14.Text:=FloatToStr(adodataset1.FieldByname('detain').AsFloat);
Edit15.Text:=FloatToStr(adodataset1.FieldByname('tax').AsFloat);
CalSumSalary;
CalRealSalary;
Edit16.Text:=FloatToStr(SumSalary);
Edit17.Text:=FloatToStr(RealSalary);
Edit18.Text:=adodataset1.FieldByname('office').AsString;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -