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

📄 yjtj.pas

📁 一. 目的: 编写出 研发部业绩分配计算系统. 二. 功能: 包括 1.人员档案 2.基本数据录入(本季度总抽层,小产品非订制业绩,小产品订制业绩,ERP非订制业绩,ERP订制业绩) 3.
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit yjtj;

interface

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

type
  TFom_yjtj = class(TForm)
    GroupBox1: TGroupBox;
    DBGrid1: TDBGrid;
    GroupBox2: TGroupBox;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Label1: TLabel;
    Label2: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label3: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    Label17: TLabel;
    Label18: TLabel;
    Label19: TLabel;
    Label20: TLabel;
    Label21: TLabel;
    Label22: TLabel;
    BitBtn3: TBitBtn;
    CB_month: TComboBox;
    Label23: TLabel;
    ComboBox1: TComboBox;
    ComboBox2: TComboBox;
    DBComboBox1: TComboBox;
    DBComboBox2: TComboBox;
    DBComboBox3: TComboBox;
    DBComboBox4: TComboBox;
    DB_projectM: TComboBox;
    BitBtn4: TBitBtn;
    procedure BitBtn3Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure CB_monthChange(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Fom_yjtj: TFom_yjtj;

implementation

uses data, share, print;

{$R *.dfm}

procedure TFom_yjtj.BitBtn3Click(Sender: TObject);
var
  j:integer;
  a,b:integer;//a erp组业绩  b 小产组品为绩
  c,d:integer;//c erp组定制业绩 d  erp组非定制业绩
  e,f:integer;//e  小产品组定制业绩 f小产品组非定制业绩
  g,g5,g6:double;//个人所得
  h,i:integer;//h erp 某产品定制业绩    i小产品某产品定制业绩
  erppeop,smallpeop:integer;//erp小组和小产品组人数
  achPercent:double;//个人业绩百分比
  percErp,percSmall:double;//erp组和小产品组的组内业绩百分比
  erptotal:integer;//erp组总分
  smalltotal:integer;// 小产品组总分
  erpp:integer;// 小主品组的erp业绩为0%
  smallp:integer;//erp组的小产品业绩为0%
  shareErp,shareSmall:double;//新来无经验人员取得抽成后剩余的平均值
  proManger:integer;//项目经理所得
  smallcount,erpcount:integer;//新人中ERP组和小产品组的人数
  yj:integer;//单个定制项目的业绩
begin
//*****************************************************************
//                       初始化变量
//*****************************************************************
  DLYH_Q:=TADOQuery.Create(nil);
  DLYH_Q.Connection:=dm.Connection;
  temp_Q:=TADOQuery.Create(nil);
  temp_Q.Connection:=dm.Connection;
  DLYH_Q.SQL.Clear;
  DLYH_Q.SQL.Add('select * from v_departachiv');
  DLYH_Q.SQL.Add('where months='+#39+Trim(CB_month.Text)+#39);
  dlyh_Q.sql.add('and departNo=1');
  DLYH_Q.Open;
  a:=dlyh_q.fieldbyname('earnmoney').asinteger;
//**************************************************************
  DLYH_Q.SQL.Clear;
  DLYH_Q.SQL.Add('select * from v_departachiv');
  DLYH_Q.SQL.Add('where months='+#39+Trim(CB_month.Text)+#39);
  dlyh_Q.sql.add('and departNo=2');
  DLYH_Q.Open;
  b:=dlyh_q.fieldbyname('earnmoney').asinteger;
//**************************************************************
  DLYH_Q.SQL.Clear;
  DLYH_Q.SQL.Add('select sum(earnmoney) as money from dinzhi');
  DLYH_Q.SQL.Add('where months='+#39+Trim(CB_month.Text)+#39);
  DLYH_Q.SQL.Add('and departNo=1');
  DLYH_Q.Open;
  c:=dlyh_q.fieldbyname('money').asinteger;
  //showmessage(floattostr(c));
//**************************************************************
  d:=a-c;
  //showmessage(floattostr(d));
//**************************************************************
  DLYH_Q.SQL.Clear;
  DLYH_Q.SQL.Add('select sum(earnmoney) as money from dinzhi');
  DLYH_Q.SQL.Add('where months='+#39+Trim(CB_month.Text)+#39);
  DLYH_Q.SQL.Add('and departNo=2');
  DLYH_Q.Open;
  e:=dlyh_q.fieldbyname('money').asinteger;
  //showmessage(floattostr(e));
//**************************************************************
  f:=b-e;
  //showmessage(floattostr(f));
//**************************************************************
 // h:=2000;
  //i:=1100;
//**************************************************************
  DLYH_Q.SQL.Clear;
  DLYH_Q.SQL.Add('select count(workNo) as numbo from worker');
  DLYH_Q.SQL.Add('where departNo=1');
  DLYH_Q.Open;
  erppeop:=dlyh_q.fieldbyname('numbo').AsInteger;
//**************************************************************
  DLYH_Q.SQL.Clear;
  DLYH_Q.SQL.Add('select count(workNo) as numbo from worker');
  DLYH_Q.SQL.Add('where departNo=2');
  DLYH_Q.Open;
  smallpeop:=dlyh_q.fieldbyname('numbo').AsInteger;
//**************************************************************
  DLYH_Q.SQL.Clear;
  DLYH_Q.SQL.Add('select sum(score) as score from total');
  DLYH_Q.SQL.Add('where months='+#39+Trim(CB_month.Text)+#39);
  DLYH_Q.SQL.Add('and departNo=1');
  DLYH_Q.Open;
  erptotal:=dlyh_q.fieldbyname('score').AsInteger;
  //showmessage(inttostr(erptotal));
//**************************************************************
  DLYH_Q.SQL.Clear;
  DLYH_Q.SQL.Add('select sum(score) as score from total');
  DLYH_Q.SQL.Add('where months='+#39+Trim(CB_month.Text)+#39);
  DLYH_Q.SQL.Add('and departNo=2');
  DLYH_Q.Open;
  smalltotal:=dlyh_q.fieldbyname('score').AsInteger;
  //**************************************************************
  {showmessage(inttostr(a));
  showmessage(inttostr(b));
  showmessage(inttostr(c));
  showmessage(inttostr(d));
  showmessage(inttostr(e));
  showmessage(inttostr(f));
  showmessage(floattostr(g));
  showmessage(inttostr(h));
  showmessage(inttostr(i));
  showmessage(inttostr(erptotal));
  showmessage(inttostr(smalltotal)); }
  //**************************************************************
  //                     计算新员工的剩余分配
  //**************************************************************
    DLYH_Q.SQL.Clear;
    DLYH_Q.SQL.Add('select * from total');
    DLYH_Q.SQL.Add('where months='+#39+Trim(CB_month.Text)+#39);
    DLYH_Q.SQL.Add('and (jobNo=5 or jobNo=6)');
    DLYH_Q.Open;
  //****************************************************************
  shareErp:=0;
  sharesmall:=0;
  erpCount:=0;
  smallcount:=0;
  dlyh_Q.First;
  for j:=1 to dlyh_Q.RecordCount do
  //for j:=2 to 2 do
  begin
    //dlyh_Q.First;
    if dlyh_Q.FieldByName('departNo').AsInteger=1 then
    begin
      achPercent:=dlyh_Q.FieldByName('score').AsInteger/erptotal;
      erpp:=1;
      smallp:=0;
    end
    else
    begin
      achPercent:=dlyh_Q.FieldByName('score').AsInteger/smalltotal;
      erpp:=0;
      smallp:=1;
    end;
    if dlyh_Q.FieldByName('jobNo').AsInteger=5 then
    begin
      g5:=((d*90/100)*achPercent*erpp
        +(f*90/100)*achPercent*smallp)*(100-strtoint(ComboBox1.Text))/100;
      //把剩余的钱分平均给老员工
      if erpp=1 then
      begin
        shareErp:=shareErp+g5;
        erpcount:=erpcount+1;
      end
      else
      begin
        sharesmall:=shareSmall+g5;
        smallcount:=smallcount+1;
      end;
    end;
    if dlyh_Q.FieldByName('jobNo').AsInteger=6 then
    begin
      g6:=((d*90/100)*achPercent*erpp
        +(f*90/100)*achPercent*smallp)*(100-strtoint(ComboBox2.Text))/100;
      //把剩余的钱分平均给老员工
      if erpp=1 then
      begin
        shareErp:=shareErp+g6;
        erpcount:=erpcount+1;
      end
      else
      begin
        shareSmall:=shareSmall+g6;
        smallcount:=smallcount+1;
      end;
    end;
    dlyh_Q.Next;
  //showmessage(inttostr(erpcount));
  //showmessage(inttostr(smallcount));

⌨️ 快捷键说明

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