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

📄 unit10.~pas

📁 本软件的功能如下: 1.公司员工工资信息输入查找 2.工资计算 3.工资汇总 4.工资打印报表 5.到处数据
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
unit Unit10;

interface

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

type
  TForm10 = class(TForm)                        
    Table1: TTable;
    DBGrid1: TDBGrid;
    Button1: TButton;
    Button2: TButton;                    
    DataSource1: TDataSource;
    Button3: TButton;                            
    CheckBox1: TCheckBox;
    procedure Button3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);              
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }                         
  end;

var
  Form10: TForm10;

implementation
                                                              
uses Unit11;

{$R *.dfm}

procedure TForm10.Button3Click(Sender: TObject);
begin
checkbox1.Checked:=true;
form11.show;

end;

procedure TForm10.FormCreate(Sender: TObject);
begin
checkbox1.Checked:=false;
end;

procedure TForm10.Button1Click(Sender: TObject);

var
fa,fb,fc:integer;
aa1:double;

begin
if checkbox1.Checked=true then            
begin

 fa:=strtoint(form11.edit1.text);
 fb:=strtoint(form11.Edit2.Text);
 fc:=strtoint(form11.Edit3.Text);

 table1.Filter:='部门'+'='+''''+'驾驶员'+'''' + '  or  ' + '部门'+'='+''''+'实习驾驶员'+''''+
            '  or  ' + '部门'+'='+''''+'乘务员'+''''+'  or  ' + '部门'+'='+''''+'公差人员'+''''
            +'  or  ' + '部门'+'='+''''+'零修'+''''+'  or  ' + '部门'+'='+''''+'站点修理'+''''+
            '  or  ' + '部门'+'='+''''+'洗车人员'+''''+'  or  ' + '部门'+'='+''''+'修理工'+'''';
           table1.filtered:=true;


 WITH TABLE1 DO
      BEGIN
      DISABLECONTROLS;
      FIRST;
WHILE NOT EOF DO
     BEGIN
      EDIT;



       if (FieldByName('出勤天数').AsInteger+FieldByName('平待天数').AsInteger)=0 then

       begin
             FieldByName('技能工资').AsFloat:=0;
             //FieldByName('效益工资').AsFloat:=0;
             //FieldByName('工龄工资').AsFloat:=0;
       end;

       if (FieldByName('出勤天数').AsInteger+FieldByName('病天数').AsInteger+FieldByName('平待天数').AsInteger)=0 then

       begin
             FieldByName('技能工资').AsFloat:=0;
             FieldByName('效益工资').AsFloat:=0;
             FieldByName('工龄工资').AsFloat:=0;
       end;

       if (FieldByName('工龄').AsInteger>=0) and (FieldByName('工龄').AsInteger<=10) then
       begin
       aa1:=0.3;
       end;

        if (FieldByName('工龄').AsInteger>10) and (FieldByName('工龄').AsInteger<=20) then
       begin
       aa1:=0.4;
       end;



        if (FieldByName('工龄').AsInteger>20) and (FieldByName('工龄').AsInteger<=30) then
       begin
       aa1:=0.5;
       end;



        if FieldByName('工龄').AsInteger>30  then
       begin
       aa1:=0.6;
       end;
                 


      if (FieldByName('部门').AsString='驾驶员') or
       (FieldByName('部门').AsString='乘务员')
       or (FieldByName('部门').AsString='修理工')
       or (FieldByName('部门').AsString='零修') or
      (FieldByName('部门').AsString='站点修理') or (FieldByName('部门').AsString='实习驾驶员') and (FieldByName('族别').AsString='汉族') then

      begin

      if (FieldByName('出勤天数').AsInteger>0) and (FieldByName('出勤天数').AsInteger<fb) then

      begin
      FieldByName('事扣').AsFloat:=(FieldByName('效益工资').AsFloat +FieldByName('工龄工资').AsFloat)/20.92*(fb-FieldByName('出勤天数').AsInteger);

       end;

      if FieldByName('病天数').AsInteger>0 then
      begin

      FieldByName('病工资').AsFloat:=(FieldByName('效益工资').AsFloat +FieldByName('工龄工资').AsFloat)/20.92*(FieldByName('病天数').AsInteger)*aa1;


      end;

      end;



     if (FieldByName('部门').AsString='驾驶员') or (FieldByName('部门').AsString='实习驾驶员')  or
      (FieldByName('部门').AsString='乘务员') or

      (FieldByName('部门').AsString='修理工') or (FieldByName('部门').AsString='零修')   or
      (FieldByName('部门').AsString='站点修理') and (FieldByName('族别').AsString='少数民族') then

      begin

      if (FieldByName('出勤天数').AsInteger>0) and (FieldByName('出勤天数').AsInteger<fc) then

      begin
      FieldByName('事扣').AsFloat:=(FieldByName('效益工资').AsFloat +FieldByName('工龄工资').AsFloat)/20.92*(fc-FieldByName('出勤天数').AsInteger);

       end;

      if FieldByName('病天数').AsInteger>0 then
      begin

      FieldByName('病工资').AsFloat:=(FieldByName('效益工资').AsFloat +FieldByName('工龄工资').AsFloat)/20.92*(FieldByName('病天数').AsInteger)*aa1;

      end;



      //FieldByName('病工资').AsFloat:=(FieldByName('效益工资').AsFloat +FieldByName('工龄工资').AsFloat)/20.92*(FieldByName('病天数').AsInteger)*aa1;



      end;


      if (FieldByName('部门').AsString='公差人员') or  (FieldByName('部门').AsString='洗车人员') then

      begin

      if (FieldByName('出勤天数').AsInteger>0) and (FieldByName('出勤天数').AsInteger<fa) then

      begin
      FieldByName('事扣').AsFloat:=(FieldByName('效益工资').AsFloat +FieldByName('工龄工资').AsFloat)/fa*(fa-FieldByName('出勤天数').AsInteger);

       end;

      if FieldByName('病天数').AsInteger>0 then
      begin

      FieldByName('病工资').AsFloat:=(FieldByName('效益工资').AsFloat +FieldByName('工龄工资').AsFloat)/20.92*(FieldByName('病天数').AsInteger)*aa1;

      end;



      //FieldByName('病工资').AsFloat:=(FieldByName('效益工资').AsFloat +FieldByName('工龄工资').AsFloat)/20.92*(FieldByName('病天数').AsInteger)*aa1;







      end;










       if FieldByName('部门').AsString='驾驶员' then
       begin

        FieldByName('加班').AsFloat:=FieldByName('平加天数').AsInteger*30+FieldByName('日加天数').AsInteger*40+FieldByName('节加天数').AsInteger*60;

        if (FieldByName('成本百分点').AsInteger>=0) and (FieldByName('成本百分点').AsInteger<100) then
        begin

          FieldByName('加班').AsFloat:=  FieldByName('加班').AsFloat* FieldByName('成本百分点').AsInteger/100;



        end;


        if ((FieldByName('平加天数').AsInteger

        + FieldByName('日加天数').AsInteger + FieldByName('节加天数').AsInteger
        + FieldByName('出勤天数').AsInteger + FieldByName('平待天数').AsInteger
        + FieldByName('日待天数').AsInteger
        + FieldByName('节待天数').AsInteger
        + FieldByName('其它出勤').AsInteger)>=fa)
        and  (FieldByName('成本百分点').AsInteger<100)
           and  (FieldByName('加班').AsFloat <100) then

          begin

          FieldByName('加班').AsFloat:=  100;



        end;


         FieldByName('待休工资').AsFloat:=FieldByName('平待天数').AsInteger*15+FieldByName('日待天数').AsInteger*30+
         FieldByName('节待天数').AsInteger*45+
         FieldByName('工龄工资').AsFloat/20.92*
         FieldByName('平待天数').AsInteger;


         if (FieldByName('趟次百分点').AsInteger>0) and (FieldByName('趟次百分点').AsInteger<98) then
        begin

          FieldByName('趟次扣').AsFloat:= (98- FieldByName('趟次百分点').AsFloat)*10;


        end;




        end;








        if FieldByName('部门').AsString='乘务员' then
       begin

        FieldByName('加班').AsFloat:=FieldByName('平加天数').AsInteger*21+FieldByName('日加天数').AsInteger*28+FieldByName('节加天数').AsInteger*42;

        if (FieldByName('成本百分点').AsInteger>=0) and (FieldByName('成本百分点').AsInteger<100) then
        begin

          FieldByName('加班').AsFloat:=  FieldByName('加班').AsFloat* FieldByName('成本百分点').AsInteger/100;



        end;


       
         if ((FieldByName('平加天数').AsInteger+ FieldByName('日加天数').AsInteger
            +FieldByName('节加天数').AsInteger
            +fieldbyname('出勤天数').AsInteger
            +fieldbyname('平待天数').AsInteger
            +FieldByName('日待天数').AsInteger
            +FieldByName('节待天数').AsInteger + FieldByName('其它出勤').AsInteger)>=fa)
            and  (FieldByName('成本百分点').AsInteger<100) and (FieldByName('加班').AsFloat<100)
            then

          begin

          FieldByName('加班').AsFloat:=  100;



        end;


         FieldByName('待休工资').AsFloat:=FieldByName('平待天数').AsInteger*10+FieldByName('日待天数').AsInteger*20+
         FieldByName('节待天数').AsInteger*30+FieldByName('工龄工资').AsFloat/20.92*FieldByName('平待天数').AsInteger;


         if (FieldByName('趟次百分点').AsInteger>0) and (FieldByName('趟次百分点').AsInteger<98) then
        begin

          FieldByName('趟次扣').AsFloat:= (98- FieldByName('趟次百分点').AsFloat)*5;


        end;




        end;




       post;


      NEXT


      END;

      EnableControls;
      END;




 WITH TABLE1 DO
      BEGIN
      DISABLECONTROLS;
      FIRST;
WHILE NOT EOF DO
     BEGIN
      EDIT;


      if (FieldByName('病天数').AsInteger>0) and (FieldByName('出勤天数').AsInteger=0) then
       begin
       FieldByName('效益工资').AsFloat:=0;
       FieldByName('工龄工资').AsFloat:=0;


       end;



       post;


      NEXT


      END;

      EnableControls;
      END;







    table1.Filter:='部门'+'<>'+''''+'驾驶员'+'''' + '  and  ' + '部门'+'<>'+''''+'乘务员'+''''+
            '  and  ' + '部门'+'<>'+''''+'修理工'+''''+'  and  ' + '部门'+'<>'+''''+'零修'+''''
            +'  and  ' + '部门'+'<>'+''''+'站点修理'+''''+'  and  ' + '部门'+'<>'+''''+'乘务员'+'''';
           table1.filtered:=true;

        WITH TABLE1 DO
      BEGIN
      DISABLECONTROLS;
      FIRST;
WHILE NOT EOF DO
     BEGIN
      EDIT;

       FieldByName('技能工资').AsFloat:=0;
        post;
      NEXT


      END;

⌨️ 快捷键说明

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