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

📄 change.~pas

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

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, ADODB, Grids, DBGrids;

type
  Tchangeform = class(TForm)
    DBGrid1: TDBGrid;
    ADOConnection1: TADOConnection;
    DataSource1: TDataSource;
    ADOTable1: TADOTable;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit8: TEdit;
    GroupBox2: TGroupBox;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Edit9: TEdit;
    Edit10: TEdit;
    Edit11: TEdit;
    Edit12: TEdit;
    Button1: TButton;
    Button2: TButton;
    procedure Button2Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure initiate;
    procedure loadfromtable;
    procedure caltax;
    procedure calsumsalary;
    procedure calrealsalary;
    procedure Edit1Exit(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  changeform: Tchangeform;
  real_salary:real;

implementation

uses main;

{$R *.dfm}

procedure Tchangeform.Button2Click(Sender: TObject);
begin
  close;
end;

procedure tchangeform.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(Edit11.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];
    Edit12.Text:=FloatToStr(tax);
end;

procedure tchangeform.calsumsalary;
begin
   Edit11.Text:=FloatToStr(StrToFloat(Edit1.Text)+StrToFloat(Edit2.Text)
                +StrToFloat(Edit3.Text)+StrToFloat(Edit4.Text)+StrToFloat(Edit5.Text)
                +StrToFloat(Edit6.Text)+StrToFloat(Edit7.Text));
end;

procedure tchangeform.calrealsalary;
begin
    real_salary:=0;
    real_salary:=StrToFloat(Edit11.Text)-StrToFloat(Edit8.Text)-StrToFloat(Edit9.Text)
              -StrToFloat(Edit12.Text)-StrToFloat(Edit10.Text);
end;

procedure tchangeform.loadfromtable;
begin
  edit1.Text:=FloatToStr(adotable1.FieldByName('base_salary').AsFloat);
  edit2.Text:=FloatToStr(adotable1.FieldByName('float_salary').AsFloat);
  edit3.Text:=FloatToStr(adotable1.FieldByName('allowance_salary').AsFloat);
  edit4.Text:=FloatToStr(adotable1.FieldByName('age_salary').AsFloat);
  edit5.Text:=FloatToStr(adotable1.FieldByName('award').AsFloat);
  edit6.Text:=FloatToStr(adotable1.FieldByName('addition_award').AsFloat);
  edit7.Text:=FloatToStr(adotable1.FieldByName('rest').AsFloat);
  edit8.Text:=FloatToStr(adotable1.FieldByName('insurance').AsFloat);
  edit9.Text:=FloatToStr(adotable1.FieldByName('rent').AsFloat);
  edit10.Text:=FloatToStr(adotable1.FieldByName('detain').AsFloat);
  edit11.Text:=FloatToStr(adotable1.FieldByName('total').AsFloat);
  edit12.Text:=FloatToStr(adotable1.FieldByName('tax').AsFloat);
end;

procedure tchangeform.initiate;
begin
  edit1.text:='';
  edit2.text:='';
  edit3.text:='';
  edit4.text:='';
  edit5.text:='';
  edit6.text:='';
  edit7.text:='';
  edit8.text:='';
  edit9.text:='';
  edit10.text:='';
  edit11.text:='';
  edit12.text:='';
  edit1.SetFocus;
end;

procedure Tchangeform.FormActivate(Sender: TObject);
begin
  dbgrid1.datasource:=datasource1;
  datasource1.dataset:=adotable1;
  adotable1.connection:=adoconnection1;
  adotable1.tablename:='month_salary';
  adotable1.active:=true;
  initiate;
  if not adotable1.Eof then
    loadfromtable;
end;

procedure Tchangeform.Edit1Exit(Sender: TObject);
begin
    CalSumSalary;
    CalTax;
end;

procedure Tchangeform.Button1Click(Sender: TObject);
var
  sqlquery1:TadoQuery;
  str1,str2:string;
begin
  CalRealSalary;
  str1:=adotable1.FieldByname('number').AsString;
  str2:=adotable1.FieldByname('name').AsString;
  adotable1.active:=false;
  sqlquery1:=TadoQuery.Create(self);
  sqlquery1.Connection:=adoconnection1;
  sqlquery1.close;
  sqlquery1.SQL.clear;
  sqlquery1.SQL.add('update month_salary set base_salary=:s0,float_salary=:s1,allowance_salary=:s2,age_salary=:s3,award=:s4,addition_award=:s5,');
  sqlquery1.sql.add('rest=:s6,insurance=:s7,rent=:s8,detain=:s9,total=:s10,tax=:s11,real_salary=:s12 where number=:s13');
  sqlquery1.parameters.Clear;
  sqlquery1.Parameters.AddParameter;
  sqlquery1.Parameters[0].name:='s0';
  sqlquery1.Parameters[0].datatype:=ftfloat;
  sqlquery1.Parameters[0].direction:=pdinput;
  sqlquery1.Parameters[0].value:=StrToFloat(Edit1.Text);
  sqlquery1.Parameters.AddParameter;
  sqlquery1.Parameters[1].name:='s1';
  sqlquery1.Parameters[1].datatype:=ftfloat;
  sqlquery1.Parameters[1].direction:=pdinput;
  sqlquery1.Parameters[1].value:=StrToFloat(Edit2.Text);
  sqlquery1.Parameters.AddParameter;
  sqlquery1.Parameters[2].name:='s2';
  sqlquery1.Parameters[2].datatype:=ftfloat;
  sqlquery1.Parameters[2].direction:=pdinput;
  sqlquery1.Parameters[2].value:=StrToFloat(Edit3.Text);
  sqlquery1.Parameters.AddParameter;
  sqlquery1.Parameters[3].name:='s3';
  sqlquery1.Parameters[3].datatype:=ftfloat;
  sqlquery1.Parameters[3].direction:=pdinput;
  sqlquery1.Parameters[3].value:=StrToFloat(Edit4.Text);
  sqlquery1.Parameters.AddParameter;
  sqlquery1.Parameters[4].name:='s4';
  sqlquery1.Parameters[4].datatype:=ftfloat;
  sqlquery1.Parameters[4].direction:=pdinput;
  sqlquery1.Parameters[4].value:=StrToFloat(Edit5.Text);
  sqlquery1.Parameters.AddParameter;
  sqlquery1.Parameters[5].name:='s5';
  sqlquery1.Parameters[5].datatype:=ftfloat;

⌨️ 快捷键说明

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