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

📄 main1.pas

📁 这是一个小型的工资管理系统
💻 PAS
字号:
unit main1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, SUIMainMenu, ExtCtrls, SUIForm, DB, DBTables;

type
  Tmain = class(TForm)
    Table1: TTable;
    suiform1: TsuiForm;
    suiMainMenu1: TsuiMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    N9: TMenuItem;
    N10: TMenuItem;
    N12: TMenuItem;
    N13: TMenuItem;
    N14: TMenuItem;
    N16: TMenuItem;
    N15: TMenuItem;
    N11: TMenuItem;
    N17: TMenuItem;
    procedure N6Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure N5Click(Sender: TObject);
    procedure N10Click(Sender: TObject);
    procedure N9Click(Sender: TObject);
    procedure N14Click(Sender: TObject);
    procedure N13Click(Sender: TObject);
    procedure N8Click(Sender: TObject);
    procedure N12Click(Sender: TObject);
    procedure N16Click(Sender: TObject);
    procedure N15Click(Sender: TObject);
    procedure N17Click(Sender: TObject);
   



 private
    { Private declarations }
  public
    { Public declarations }
  
  end;

var
  main: Tmain;
  username,password:string;
  right_1,right_2,right_3:boolean;
  year,month,day:word;
  str:string;

implementation
 uses
   operatormanage,
   changepassword,
   gzchange,
   employee,
   creatsalarytable,
   seekdata,
   salary_change,
   historyfind,
   checkuser,datatable,month_find;

{$R *.dfm}

procedure Tmain.N6Click(Sender: TObject);
begin
  close;
end;

procedure Tmain.FormActivate(Sender: TObject);

begin
  table1.DatabaseName:='DBMS';
  decodedate(date(),year,month,day);
  str:='is'+inttostr(year);
  //datamodule1.checkdatatable;
 // Table1.Active:=false;
  //table1.tablename:=str;
  checkuserform.Visible:=false;

          end;
//调用操作员管理模块

procedure Tmain.N2Click(Sender: TObject);
begin
   operatormanageform.showmodal;
end;
//调用用户密码修改模块
procedure Tmain.N3Click(Sender: TObject);
begin
  changepasswordform.showmodal;
end;
//系统初始化模块
procedure Tmain.N5Click(Sender: TObject);
begin
  if application.messagebox('是否进行系统初始化,放弃?','提示信息',mb_YesNo)=IDNO then
    begin
      initiateform.ShowModal;
      application.MessageBox('系统初始化结束','提示信息',mb_ok);
      end
      else
      application.MessageBox('放弃系统初始化','提示信息',mb_ok);
      end;
      //调用职工资料管理模块

procedure Tmain.N10Click(Sender: TObject);
begin
  employeeform.ShowModal;
end;
//应用软件检测系统数据表是否存在的过程


   //当月实发工资表
procedure Tmain.N9Click(Sender: TObject);
 var
   sourcetable:ttable;
   desttable:ttable;
   lstable:ttable;
 begin
   sourcetable:=ttable.Create(self);
   sourcetable.DatabaseName:='DBMS';
   sourcetable.TableName:='Salary';
   sourcetable.Active:=true;
   desttable:=ttable.Create(self);
   desttable.DatabaseName:='DBMS';
   desttable.TableName:='month_salary';
   desttable.EmptyTable;
   desttable.Active:=true;
   lstable:=ttable.Create(self);
   lstable.DatabaseName:='DBMS';
   lstable.TableName:='is'+inttostr(year);
   lstable.Active:=true;
   while not sourcetable.Eof do
     begin
       if not sourcetable.FieldByName('enabled').AsBoolean then
        begin
          desttable.Append;
          desttable.Edit;
 desttable.FieldByName('number').AsString:=sourcetable.FieldByName('number').AsString;
 desttable.FieldByName('name').AsString:=sourcetable.FieldByName('name').AsString;
 desttable.FieldByName('salary_date').AsString:=inttostr(month);
 desttable.FieldByName('operator').AsString:=USERNAME;
 desttable.FieldByName('base_salary').Asfloat:=sourcetable.FieldByName('base_salary').AsFloat;
 desttable.FieldByName('float_salary').Asfloat:=sourcetable.FieldByName('float_salary').asfloat;
 desttable.FieldByName('allowance_salary').Asfloat:=sourcetable.FieldByName('allowance_salary').asfloat;
 desttable.FieldByName('award').Asfloat:=sourcetable.FieldByName('award').asfloat;
 desttable.FieldByName('addition_award').Asfloat:=sourcetable.FieldByName('addition_award').asfloat;
 desttable.FieldByName('insurance').Asfloat:=sourcetable.FieldByName('insurance').asfloat;
 desttable.FieldByName('rent').Asfloat:=sourcetable.FieldByName('rent').asfloat;
 desttable.FieldByName('age_salary').Asfloat:=sourcetable.FieldByName('age_salary').asfloat;
 desttable.FieldByName('detain').Asfloat:=sourcetable.FieldByName('detain').asfloat;
 desttable.FieldByName('rest').Asfloat:=sourcetable.FieldByName('rest').asfloat;
 desttable.FieldByName('sum').Asfloat:=sourcetable.FieldByName('sum').asfloat;
 desttable.FieldByName('REAL_SALARY').Asfloat:=sourcetable.FieldByName('REAL_SALARY').asfloat;
 desttable.FieldByName('tax').Asfloat:=sourcetable.FieldByName('tax').asfloat;
 desttable.FieldByName('note').AsString:=inttostr(year)+'年'+inttostr(month)+'月份工资';
                   desttable.Post;
                   lstable.Append;
                   lstable.Edit;
 lstable.FieldByName('number').AsString:=sourcetable.FieldByName('number').AsString;
 lstable.FieldByName('name').AsString:=sourcetable.FieldByName('name').AsString;
 
 lstable.FieldByName('operator').AsString:=USERNAME;
 lstable.FieldByName('base_salary').Asfloat:=sourcetable.FieldByName('base_salary').AsFloat;
 lstable.FieldByName('float_salary').Asfloat:=sourcetable.FieldByName('float_salary').asfloat;
 lstable.FieldByName('allowance_salary').Asfloat:=sourcetable.FieldByName('allowance_salary').asfloat;
 lstable.FieldByName('award').Asfloat:=sourcetable.FieldByName('award').asfloat;
 lstable.FieldByName('addition_award').Asfloat:=sourcetable.FieldByName('addition_award').asfloat;
 lstable.FieldByName('insurance').Asfloat:=sourcetable.FieldByName('insurance').asfloat;
 lstable.FieldByName('rent').Asfloat:=sourcetable.FieldByName('rent').asfloat;
 lstable.FieldByName('age_salary').Asfloat:=sourcetable.FieldByName('age_salary').asfloat;
 lstable.FieldByName('detain').Asfloat:=sourcetable.FieldByName('detain').asfloat;
 lstable.FieldByName('rest').Asfloat:=sourcetable.FieldByName('rest').asfloat;
 lstable.FieldByName('sum').Asfloat:=sourcetable.FieldByName('sum').asfloat;
 lstable.FieldByName('REAL_SALARY').Asfloat:=sourcetable.FieldByName('REAL_SALARY').asfloat;
 lstable.FieldByName('note').AsString:=inttostr(year)+'年'+inttostr(month)+'月份工资';
 lstable.FieldByName('tax').Asfloat:=sourcetable.FieldByName('tax').asfloat;
       lstable.FieldByName('OPERATOR_DATE').AsDateTime:=date();
       lstable.Post;
       end;
       sourcetable.Next;
       end;
       application.MessageBox('当月工资表生成完成!','提示新息',mb_OK);
 end;

//设置税率模块
procedure Tmain.N14Click(Sender: TObject);
begin
   settaxratetableform.ShowModal;
end;

//重新计算所得税模块
procedure Tmain.N13Click(Sender: TObject);
 var
     ZLTable:ttable;
     TaxTable:ttable;
     i:integer;
     sum,tax:real;
     rate:array[1..100] of real;
     division:array[1..100] of integer;
  begin
   //计算所得税
   ZLtable:=ttable.Create(self);
   zltable.DatabaseName:='DBMS';
   zltable.TableName:='salary';
   zltable.Active:=true;
   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;
   while not zltable.Eof do
   begin
      tax:=0;
      i:=1;
      sum:=zltable.fieldbyname('sum').AsFloat;
      while division[i]<>-1 do
      begin
        if  sum>division[i] then
        begin
         if sum<division[i+1] then
          begin
           tax:=sum*rate[i];
           division[i]:=-1;
          end
        else i:=i+1
       end
      else
      begin
      tax:=0;
      division[i]:=-1;
      end;
     end;
    if (i<>1) and (rate[i]=0) then
    tax:=sum*rate[i-1];
    zltable.Edit;
    zltable.FieldByName('tax').AsFloat:=tax;
    zltable.Post;
    zltable.Next;
  end;
     
end;


procedure Tmain.N8Click(Sender: TObject);
begin
   seekform.ShowModal;
end;

//职工工资修改模块



procedure Tmain.N12Click(Sender: TObject);
begin
 salarychangeform.ShowModal;
end;

//调用历史查询
procedure Tmain.N16Click(Sender: TObject);
begin
  history.ShowModal;
end;



procedure Tmain.N15Click(Sender: TObject);
begin
monthfind.ShowModal;
end;

procedure Tmain.N17Click(Sender: TObject);
var
about:textfile;
begin
  assignfile(about,'about.txt');
  reset(about);
  try
  'about.txt';
  finally
  end;

end;

end.


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -