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

📄 employee.~pas

📁 《Delphi 7数据库应用技术与实例》源代码__工资管理系统.rar《Delphi 7数据库应用技术与实例》源代码__工资管理系统.rar
💻 ~PAS
字号:
unit employee;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Mask, ExtCtrls, Buttons, DB, DBTables;

type
  TEmployeeForm = class(TForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Edit2: TEdit;
    Label3: TLabel;
    ComboBox1: TComboBox;
    Label4: TLabel;
    Edit3: TEdit;
    Label5: TLabel;
    MaskEdit1: TMaskEdit;
    Label6: TLabel;
    MaskEdit2: TMaskEdit;
    GroupBox2: TGroupBox;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Label10: TLabel;
    Edit7: TEdit;
    Label11: TLabel;
    Edit8: TEdit;
    Label12: TLabel;
    Edit9: TEdit;
    Label13: TLabel;
    Edit10: TEdit;
    Label14: TLabel;
    Edit11: TEdit;
    GroupBox3: TGroupBox;
    Label15: TLabel;
    Edit12: TEdit;
    Label16: TLabel;
    Edit13: TEdit;
    Label17: TLabel;
    Edit14: TEdit;
    Label18: TLabel;
    Edit15: TEdit;
    GroupBox4: TGroupBox;
    Edit16: TEdit;
    Label19: TLabel;
    Label20: TLabel;
    Edit17: TEdit;
    Label21: TLabel;
    Edit18: TEdit;
    RadioGroup1: TRadioGroup;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    Label22: TLabel;
    Edit19: TEdit;
    CheckBox1: TCheckBox;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Table1: TTable;
    procedure BitBtn2Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure Edit1Exit(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    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);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure ReadDataFromTable;
    procedure SaveDataToTable;
    procedure WriteHistoryDataTable;
    procedure EmptyDataBox;
    procedure CalSumSalary;
    procedure CalRealSalary;
    procedure RetrySalary;
    procedure CalTax;
  end;

var
  EmployeeForm: TEmployeeForm;
  SumSalary,RealSalary:real;
implementation
  uses main;
{$R *.dfm}

procedure TEmployeeForm.BitBtn2Click(Sender: TObject);
begin
      close;
end;

procedure TEmployeeForm.FormActivate(Sender: TObject);
begin
    EmptyDataBox;
    Edit1.SetFocus;
    Edit15.Enabled:=false;
    Edit15.TabStop:=false; 
    Edit16.Enabled:=false;
    Edit16.TabStop:=false;
    Edit17.Enabled:=false;
    Edit17.TabStop:=false;
end;

procedure TEmployeeForm.Edit1Exit(Sender: TObject);
begin
    Table1.DatabaseName:='gzgl';
    Table1.TableName:='salary';
    Table1.Active:=true;
    if Edit1.Text<>'' then
    begin
        Table1.EditKey;
        Table1.FieldByName('number').AsString:=Edit1.Text;
        Table1.GotoKey;
        if Table1.FieldByName('number').AsString=Edit1.Text then
        begin
              if RadioButton1.Checked then
              begin
                    Application.MessageBox('该用户已经存在,请重输!','提示信息',mb_OK);
                    Edit1.setfocus;
              end
              else
                    ReadDataFromTable;
        end
        else
        begin
              if not RadioButton1.Checked then
              begin
                    Application.MessageBox('该用户不存在,请重输!','提示信息',mb_OK);
                    Edit1.setfocus;
              end
              else
              begin
                    edit2.setfocus;
              end;
        end;
    end;
    Table1.Active:=false;
end;
procedure TEmployeeForm.ReadDataFromTable;
begin
    Edit1.Text:=Table1.FieldByname('number').AsString;
    Edit2.Text:=Table1.FieldByname('name').AsString;
    ComboBox1.Text:=Table1.FieldByname('sex').AsString;
    Edit3.Text:=Table1.FieldByname('id').AsString;
    MaskEdit1.Text:=DateToStr(Table1.FieldByname('birthdate').AsDateTime);
    MaskEdit2.Text:=DateToStr(Table1.FieldByname('workdate').AsDateTime);
    Edit4.Text:=Table1.FieldByname('job').AsString;
    Edit5.Text:=FloatToStr(Table1.FieldByname('base_salary').AsFloat);
    Edit6.Text:=FloatToStr(Table1.FieldByname('float_salary').AsFloat);
    Edit7.Text:=FloatToStr(Table1.FieldByname('allowance_salary').AsFloat);
    Edit8.Text:=FloatToStr(Table1.FieldByname('age_salary').AsFloat);
    Edit9.Text:=FloatToStr(Table1.FieldByname('award').AsFloat);
    Edit10.Text:=FloatToStr(Table1.FieldByname('addition_award').AsFloat);
    Edit11.Text:=FloatToStr(Table1.FieldByname('rest').AsFloat);
    Edit12.Text:=FloatToStr(Table1.FieldByname('insurance').AsFloat);
    Edit13.Text:=FloatToStr(Table1.FieldByname('rent').AsFloat);
    Edit14.Text:=FloatToStr(Table1.FieldByname('detain').AsFloat);
    Edit15.Text:=FloatToStr(Table1.FieldByname('tax').AsFloat);
    CalSumSalary;
    CalRealSalary;
    Edit16.Text:=FloatToStr(SumSalary);
    Edit17.Text:=FloatToStr(RealSalary);
    Edit18.Text:=Table1.FieldByname('office').AsString;
    Edit19.Text:=Table1.FieldByname('note').AsString;
    Checkbox1.Checked:=Table1.FieldByName('enabled').AsBoolean;
end;

procedure TEmployeeForm.SaveDataToTable;
begin
    Table1.Edit;
    Table1.FieldByname('number').AsString:=Edit1.Text;
    Table1.FieldByname('name').AsString:=Edit2.Text;
    Table1.FieldByname('sex').AsString:=ComboBox1.Text;
    Table1.FieldByname('id').AsString:=Edit3.Text;
    Table1.FieldByname('birthdate').AsDateTime:=StrToDate(MaskEdit1.Text);
    Table1.FieldByname('workdate').AsDateTime:=StrToDate(MaskEdit2.Text);
    Table1.FieldByname('job').AsString:=Edit4.Text;
    Table1.FieldByname('base_salary').AsFloat:=StrToFloat(Edit5.Text);
    Table1.FieldByname('float_salary').AsFloat:=StrToFloat(Edit6.Text);
    Table1.FieldByname('allowance_salary').AsFloat:=StrToFloat(Edit7.Text);
    Table1.FieldByname('age_salary').AsFloat:=StrToFloat(Edit8.Text);
    Table1.FieldByname('award').AsFloat:=StrToFloat(Edit9.Text);
    Table1.FieldByname('addition_award').AsFloat:=StrToFloat(Edit10.Text);
    Table1.FieldByname('rest').AsFloat:=StrToFloat(Edit11.Text);
    Table1.FieldByname('insurance').AsFloat:=StrToFloat(Edit12.Text);
    Table1.FieldByname('rent').AsFloat:=StrToFloat(Edit13.Text);
    Table1.FieldByname('detain').AsFloat:=StrToFloat(Edit14.Text);
    Table1.FieldByname('tax').AsFloat:=StrToFloat(Edit15.Text);
    Table1.FieldByname('sum').AsFloat:=StrToFloat(Edit16.Text);
    Table1.FieldByname('real_salary').AsFloat:=StrToFloat(Edit17.Text);    
    Table1.FieldByname('office').AsString:=Edit18.Text;
    Table1.FieldByname('note').AsString:=Edit19.Text;
    Table1.FieldByname('operator').AsString:=username;
    Table1.FieldByname('operatordate').AsDateTime:=date();
    Table1.FieldByName('enabled').AsBoolean:=Checkbox1.Checked;
    Table1.post;
end;
procedure TEmployeeForm.BitBtn1Click(Sender: TObject);
begin
      Table1.active:=true;
      if RadioButton1.Checked then
      begin
          Table1.append;
          SaveDataToTable;
          WriteHistoryDataTable;
      end
      else if radioButton2.Checked then
      begin
          Table1.EditKey;
          table1.FieldByName('number').AsString:=Edit1.Text;
          Table1.GotoKey;
          Table1.Delete;
      end
      else
      begin
          Table1.EditKey;
          table1.FieldByName('number').AsString:=Edit1.Text;
          Table1.GotoKey;
          SaveDataToTable;
          WriteHistoryDataTable;
      end;
      Table1.Active:=false;
      EmptyDataBox;
      Edit1.SetFocus; 
end;
procedure TEmployeeForm.WriteHistoryDataTable;
begin
    Table1.Active:=false;
    Table1.TableName:=str;
    Table1.Active:=true;
    Table1.append;
    Table1.Edit;
    Table1.FieldByname('number').AsString:=Edit1.Text;
    Table1.FieldByname('name').AsString:=Edit2.Text;
    Table1.FieldByname('base_salary').AsFloat:=StrToFloat(Edit5.Text);
    Table1.FieldByname('float_salary').AsFloat:=StrToFloat(Edit6.Text);
    Table1.FieldByname('allowance_salary').AsFloat:=StrToFloat(Edit7.Text);
    Table1.FieldByname('age_salary').AsFloat:=StrToFloat(Edit8.Text);
    Table1.FieldByname('award').AsFloat:=StrToFloat(Edit9.Text);
    Table1.FieldByname('addition_award').AsFloat:=StrToFloat(Edit10.Text);
    Table1.FieldByname('rest').AsFloat:=StrToFloat(Edit11.Text);
    Table1.FieldByname('insurance').AsFloat:=StrToFloat(Edit12.Text);
    Table1.FieldByname('rent').AsFloat:=StrToFloat(Edit13.Text);
    Table1.FieldByname('detain').AsFloat:=StrToFloat(Edit14.Text);
    Table1.FieldByname('tax').AsFloat:=StrToFloat(Edit15.Text);
    Table1.FieldByname('sum').AsFloat:=StrToFloat(Edit16.Text);
    Table1.FieldByName('real_salary').asfloat:=StrToFloat(Edit17.Text);
    Table1.FieldByname('note').AsString:=Edit19.Text;
    Table1.FieldByname('operator').AsString:=username;
    Table1.FieldByname('operator_date').AsDateTime:=date();
    Table1.post;
end;
procedure TEmployeeForm.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:=ComboBox1.Items[0];
      Radiobutton1.Checked:=true;
      CheckBox1.Checked:=true;
      SumSalary:=0;
      RealSalary:=0;
end;
procedure TEmployeeForm.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 TEmployeeForm.CalRealSalary;
begin
      RealSalary:=SumSalary-StrToFloat(Edit12.Text)-StrToFloat(Edit13.Text)-
                  StrToFloat(Edit14.Text)-StrToFloat(Edit15.Text);
end;
procedure TEmployeeForm.RetrySalary;
begin
    CalSumSalary;
    Edit16.Text:=FloatToStr(SumSalary);
    CalTax;
    CalRealSalary;
    Edit17.Text:=FloatToStr(RealSalary);
end;
procedure TEmployeeForm.Edit5Exit(Sender: TObject);
begin
      RetrySalary;
end;

procedure TEmployeeForm.Edit6Exit(Sender: TObject);
begin
      RetrySalary;
end;

procedure TEmployeeForm.Edit7Exit(Sender: TObject);
begin
      RetrySalary;
end;

procedure TEmployeeForm.Edit8Exit(Sender: TObject);
begin
      RetrySalary;
end;

procedure TEmployeeForm.Edit9Exit(Sender: TObject);
begin
      RetrySalary;
end;

procedure TEmployeeForm.Edit10Exit(Sender: TObject);
begin
      RetrySalary;
end;

procedure TEmployeeForm.Edit11Exit(Sender: TObject);
begin
      RetrySalary;
end;

procedure TEmployeeForm.Edit12Exit(Sender: TObject);
begin
      RetrySalary;
end;

procedure TEmployeeForm.Edit13Exit(Sender: TObject);
begin
      RetrySalary;
end;

procedure TEmployeeForm.Edit14Exit(Sender: TObject);
begin
      RetrySalary;
end;
procedure TEmployeeForm.CalTax;
var
    TaxTable:TTable;
    i:Integer;
    sum,tax:real;
    rate:array[1..100] of real;
    division:array[1..100] of integer;
begin
    TaxTable:=TTable.Create(self);
    TaxTable.DatabaseName:='gzgl';
    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;
    tax:=0;
    i:=1;
    sum:=StrToFloat(Edit16.Text);
    while sum>division[i] 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;

end.


⌨️ 快捷键说明

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