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

📄 salary.~pas

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