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

📄 main.~pas

📁 本系统采用A. 系统需求分析报告(设计方法/数据流图/数据字典) B. 数据库的信息要求报告(E—R图及关系数据模型) C. 数据库的操作和应用要求报告(模块结构图<概念结构设计及逻辑结构设计&
💻 ~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 + -