📄 main.~pas
字号:
unit main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, DB, ADODB;
type
Tmainform = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
D1: TMenuItem;
W1: TMenuItem;
H1: TMenuItem;
U1: TMenuItem;
P1: TMenuItem;
T1: TMenuItem;
N2: TMenuItem;
I1: TMenuItem;
N3: TMenuItem;
X1: TMenuItem;
E1: TMenuItem;
C1: TMenuItem;
M1: TMenuItem;
N4: TMenuItem;
Q1: TMenuItem;
S1: TMenuItem;
I2: TMenuItem;
H2: TMenuItem;
A1: TMenuItem;
ADOConnection1: TADOConnection;
N5: TMenuItem;
H3: TMenuItem;
procedure X1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure U1Click(Sender: TObject);
procedure P1Click(Sender: TObject);
procedure T1Click(Sender: TObject);
procedure I1Click(Sender: TObject);
procedure E1Click(Sender: TObject);
procedure C1Click(Sender: TObject);
procedure M1Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure Q1Click(Sender: TObject);
procedure H3Click(Sender: TObject);
procedure I2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
mainform: Tmainform;
username:string;
password:string;
right1,right2,right3,pp:boolean;
i:integer;
year,month,day:word;
implementation
uses check, ope, pass, tax, salary, change, seek, history, pwage;
{$R *.dfm}
procedure Tmainform.X1Click(Sender: TObject);
begin
close;
end;
procedure Tmainform.FormActivate(Sender: TObject);
begin
pp:=false;
checkform.showmodal;
if username='' then
close
else
begin
if right1=true then
begin
U1.Enabled:=true;
T1.enabled:=true;
I1.Enabled:=true;
pp:=true;
end
else
begin
U1.Enabled:=false;
T1.enabled:=false;
I1.Enabled:=false;
end;
if right2=true then
begin
E1.Enabled:=true;
C1.Enabled:=true;
N5.enabled:=true;
M1.enabled:=true;
pp:=true;
end
else
begin
E1.Enabled:=false;
C1.Enabled:=false;
N5.Enabled:=false;
M1.enabled:=false;
end;
if right3=true then
begin
S1.enabled:=true;
I2.Enabled:=true;
Q1.Enabled:=true;
H3.enabled:=true;
end
else
begin
S1.enabled:=false;
I2.Enabled:=false;
Q1.Enabled:=false;
H3.enabled:=false;
end;
end;
end;
procedure Tmainform.U1Click(Sender: TObject);
begin
opeform.showmodal;
end;
procedure Tmainform.P1Click(Sender: TObject);
begin
passform.showmodal;
end;
procedure Tmainform.T1Click(Sender: TObject);
begin
taxform.showmodal;
end;
procedure Tmainform.I1Click(Sender: TObject);
var
adoq:tadoquery;
adoconnection1:tadoconnection;
begin
if application.messagebox('系统初始化,这将初始化所有信息.确定初始化?','系统初始化',mb_yesno)=IDYES then
begin
adoconnection1:=tadoconnection.create(self);
adoconnection1.connectionstring:='provider=microsoft.jet.oledb.4.0;data source=wage.mdb;persist security info=false';
adoconnection1.loginprompt:=false;
adoq:=tadoquery.create(self);
adoq.connection:=adoconnection1;
adoq.close;
adoq.SQL.clear;
adoq.SQL.add('delete from operator');
adoq.ExecSQL;
adoq.close;
adoq.sql.clear;
adoq.sql.add('insert into operator values(:s0,:s1,:s2,:s3,:s4,:s5,:s6,:s7)');
adoq.Parameters.clear;
adoq.parameters.addparameter;
adoq.parameters[0].Name:='s0';
adoq.parameters[0].datatype:=ftstring;
adoq.parameters[0].direction:=pdinput;
adoq.parameters[0].value:='admin';
adoq.parameters.addparameter;
adoq.parameters[1].Name:='s1';
adoq.parameters[1].datatype:=ftstring;
adoq.parameters[1].direction:=pdinput;
adoq.parameters[1].value:='admin';
adoq.parameters.addparameter;
adoq.parameters[2].Name:='s2';
adoq.parameters[2].datatype:=ftstring;
adoq.parameters[2].direction:=pdinput;
adoq.parameters[2].value:='administrator';
adoq.parameters.addparameter;
adoq.parameters[3].Name:='s3';
adoq.parameters[3].datatype:=ftstring;
adoq.parameters[3].direction:=pdinput;
adoq.parameters[3].value:='T';
adoq.parameters.addparameter;
adoq.parameters[4].Name:='s4';
adoq.parameters[4].datatype:=ftstring;
adoq.parameters[4].direction:=pdinput;
adoq.parameters[4].value:='T';
adoq.parameters.addparameter;
adoq.parameters[5].Name:='s5';
adoq.parameters[5].datatype:=ftstring;
adoq.parameters[5].direction:=pdinput;
adoq.parameters[5].value:='T';
adoq.parameters.addparameter;
adoq.parameters[6].Name:='s6';
adoq.parameters[6].datatype:=ftstring;
adoq.parameters[6].direction:=pdinput;
adoq.parameters[6].value:='default';
adoq.parameters.addparameter;
adoq.parameters[7].Name:='s7';
adoq.parameters[7].datatype:=ftdate;
adoq.parameters[7].direction:=pdinput;
adoq.parameters[7].value:=date();
adoq.ExecSQL;
adoq.Close;
adoq.sql.Clear;
adoq.SQL.add('delete from tax');
adoq.ExecSQL;
adoq.Close;
adoq.sql.Clear;
adoq.SQL.add('delete from salary');
adoq.ExecSQL;
adoq.Close;
adoq.sql.Clear;
adoq.SQL.add('delete from month_salary');
adoq.ExecSQL;
adoq.Close;
adoq.sql.Clear;
adoq.SQL.add('delete from info');
adoq.Prepared;
adoq.ExecSQL;
adoq.Close;
application.messagebox('初始化结束!','初始化成功',mb_ok);
end;
end;
procedure Tmainform.E1Click(Sender: TObject);
begin
salaryform.showmodal;
end;
procedure Tmainform.C1Click(Sender: TObject);
var
salarytable:tadotable;
taxtable:tadotable;
i:integer;
sum,tax:real;
rate:array[1..100] of real;
division:array[1..100] of integer;
begin
salarytable:=tadotable.create(self);
salarytable.Connection:=adoconnection1;
salarytable.TableName:='salary';
salarytable.active:=true;
taxtable:=tadotable.create(self);
taxtable.connection:=adoconnection1;
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;
taxtable.Active:=false;
division[i]:=-1;
rate[i]:=0;
while not salarytable.Eof do
begin
tax:=0;
i:=1;
sum:=salarytable.fieldbyname('total').AsFloat;
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];
salarytable.Edit;
salarytable.FieldByName('tax').asfloat:=tax;
salarytable.Post;
salarytable.next;
end;
salarytable.Active:=false;
application.messagebox('所得税计算完成!','提示信息',mb_ok);
end;
procedure Tmainform.M1Click(Sender: TObject);
begin
changeform.showmodal;
end;
procedure Tmainform.N5Click(Sender: TObject);
var
sqlquery1:TadoQuery;
begin
DecodeDate(Now, Year, Month, Day);
sqlquery1:=tadoquery.Create(self);
sqlquery1.Connection:=adoconnection1;
sqlquery1.Close;
sqlquery1.SQL.clear;
sqlquery1.SQL.Add('delete from month_salary');
sqlquery1.execsql;
sqlquery1.Close;
sqlquery1.SQL.clear;
sqlquery1.SQL.Add('insert into month_salary ');
sqlquery1.sql.add('select number,name,base_salary,float_salary,allowance_salary,age_salary,award,addition_award,rest,insurance,rent,detain,total,real_salary,tax from salary where enabled=:s0');
sqlquery1.parameters.Clear;
sqlquery1.Parameters.AddParameter;
sqlquery1.Parameters[0].name:='s0';
sqlquery1.Parameters[0].datatype:=ftstring;
sqlquery1.Parameters[0].direction:=pdinput;
sqlquery1.Parameters[0].value:='F';
sqlquery1.execsql;
sqlquery1.Close;
sqlquery1.SQL.clear;
sqlquery1.sql.Add('update month_salary set operator=:s0,salary_date=:s1,shuoming=:s2,operator_date=:s3');
sqlquery1.parameters.Clear;
sqlquery1.Parameters.AddParameter;
sqlquery1.Parameters[0].name:='s0';
sqlquery1.Parameters[0].datatype:=ftstring;
sqlquery1.Parameters[0].direction:=pdinput;
sqlquery1.Parameters[0].value:=username;
sqlquery1.Parameters.AddParameter;
sqlquery1.Parameters[1].name:='s1';
sqlquery1.Parameters[1].datatype:=ftstring;
sqlquery1.Parameters[1].direction:=pdinput;
sqlquery1.Parameters[1].value:=IntToStr(month);
sqlquery1.Parameters.AddParameter;
sqlquery1.Parameters[2].name:='s2';
sqlquery1.Parameters[2].datatype:=ftstring;
sqlquery1.Parameters[2].direction:=pdinput;
sqlquery1.Parameters[2].value:=IntToStr(year)+'年'+IntToStr(month)+'月份工资';
sqlquery1.Parameters.AddParameter;
sqlquery1.Parameters[3].name:='s3';
sqlquery1.Parameters[3].datatype:=ftdate;
sqlquery1.Parameters[3].direction:=pdinput;
sqlquery1.Parameters[3].value:=date();
sqlquery1.execsql;
sqlquery1.Close;
sqlquery1.SQL.clear;
sqlquery1.sql.add('insert into info' );
sqlquery1.sql.add('select number,name,operator_date,operator,base_salary,float_salary,allowance_salary,age_salary,award,addition_award,rest,insurance,rent,detain,total,real_salary,tax,shuoming from month_salary');
sqlquery1.execsql;
sqlquery1.close;
Application.MessageBox('当月工资表生成完成!','提示信息',mb_OK);
end;
procedure Tmainform.Q1Click(Sender: TObject);
begin
seekform.showmodal;
end;
procedure Tmainform.H3Click(Sender: TObject);
begin
historyform.ShowModal;
end;
procedure Tmainform.I2Click(Sender: TObject);
begin
pwageform.showmodal;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -