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

📄 yjtj.~pas

📁 一. 目的: 编写出 研发部业绩分配计算系统. 二. 功能: 包括 1.人员档案 2.基本数据录入(本季度总抽层,小产品非订制业绩,小产品订制业绩,ERP非订制业绩,ERP订制业绩) 3.
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
  end;
  //按照人数平均分配
  shareErp:=shareErp/(erppeop-erpcount);
  shareSmall:=shareSmall/(smallpeop-smallcount);
  //showmessage(floattostr(shareErp));
  //showmessage(floattostr(shareSmall));
  //*****************************************************************


  //**************************************************************
  //                      非定制产品的统计
  //   (a*10/100)*strtoint(DBComboBox1.Text)+(d*90/100)*achPercent+(h*90/100)*strtoint(DB_projectM.Text)/100+((c*90/100)*95/100)*50/100
  //                 领导的所得                   erp非定制所得          erp项目经理所得                             个人定制所得
  //   (b*10/100)*100/100+(f*90/100)*achPercent+(i*90/100)*strtoint(DB_projectM.Text)/100+((e*90/100)*95/100)*50/100;
  //                 领导的所得                   小产品非定制所得       小产品项目经理      个人定制所得
  //**************************************************************************
  //***************************************************************
    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.Open;
  //**************************************************************
  dlyh_Q.First;
  for j:=1 to dlyh_Q.recordCount do
  //for j:=2 to 2 do
  begin
    //dlyh_Q.RecNo:=1;
    percErp:=dlyh_Q.FieldByName('score').AsInteger/erptotal;
    percSmall:=dlyh_Q.FieldByName('score').AsInteger/smalltotal;
    if dlyh_Q.FieldByName('departNo').AsInteger=1 then
    begin
      erpp:=1;
      smallp:=0;
    end
    else
    begin
      erpp:=0;
      smallp:=1;
      //showmessage(floattostr(achPercent));
    end;
    //按职位进行分开计算
    if dlyh_Q.FieldByName('jobNo').AsInteger=1 then
      g:=(a*10/100)*strtoint(DBComboBox1.Text)/100
        +(b*10/100)*strtoint(DBComboBox1.Text)/100;
    if dlyh_Q.FieldByName('jobNo').AsInteger=2 then
    begin
      g:=(a*10/100)*strtoint(DBComboBox2.Text)/100+(d*90/100)*percErp*erpp+shareErp*erpp
        +(b*10/100)*strtoint(DBComboBox2.Text)/100+(f*90/100)*percSmall*smallp+shareSmall*smallp;
        //showmessage(floattostr(percSmall));
    end;
    if dlyh_Q.FieldByName('jobNo').AsInteger=3 then
    begin
      g:=(a*10/100)*strtoint(DBComboBox3.Text)/100+(d*90/100)*percErp*erpp+shareErp*erpp
        +(b*10/100)*strtoint(DBComboBox3.Text)/100+(f*90/100)*percSmall*smallp+shareSmall*smallp;
          //showmessage(floattostr(f));
    end;
   if dlyh_Q.FieldByName('jobNo').AsInteger=4 then
      g:=(d*90/100)*percErp*erpp+shareErp*erpp
        +(f*90/100)*percSmall*smallp+shareSmall*smallp;
    if dlyh_Q.FieldByName('jobNo').AsInteger=5 then
      g:=((d*90/100)*percErp*erpp
        +(f*90/100)*percSmall*smallp)*strtoint(ComboBox1.Text)/100;
    if dlyh_Q.FieldByName('jobNo').AsInteger=6 then
      g:=((d*90/100)*percErp*erpp
        +(f*90/100)*percSmall*smallp)*strtoint(ComboBox2.Text)/100;
    if dlyh_Q.FieldByName('jobNo').AsInteger=7 then
      g:=(d*90/100)*percErp*erpp
        +(f*90/100)*percSmall*smallp;
    if dlyh_Q.FieldByName('jobNo').AsInteger=8 then
      g:=(a*10/100)*strtoint(DBComboBox4.Text)/100
        +(b*10/100)*strtoint(DBComboBox4.Text)/100;
    dlyh_q.Edit;
    dlyh_Q.FieldByName('getmoney').AsFloat:=g;
    dlyh_Q.Next;
  end;
  dlyh_Q.edit;
  dlyh_Q.post;
  dm.ADQ_personAchiv.Refresh;
  dm.ADQ_personAchiv.SQL.Clear;
  dm.ADQ_personAchiv.SQL.Add('select * from achivement');
  dm.ADQ_personAchiv.SQL.Add('where months='+#39+Trim(CB_month.Text)+#39);
  dm.ADQ_personAchiv.Open;
  DBGrid1.Refresh;
  //**************************************************************
  //                      定制产品的统计(综合全部)
  //***************************************************************
  DLYH_Q.SQL.Clear;
  DLYH_Q.SQL.Add('select * from dinzhi');
  DLYH_Q.SQL.Add('where months='+#39+Trim(CB_month.Text)+#39);
  DLYH_Q.Open;
  temp_Q.sql.Clear;
  temp_Q.SQL.Add('select * from achivement');
  temp_Q.SQL.Add('where months='+#39+Trim(CB_month.Text)+#39);
  temp_Q.open;
  temp_Q.First;
  for j:=1 to temp_Q.RecordCount do
  begin
    temp_q.edit;
    temp_Q.FieldByName('dgetmoney').AsFloat:=0;
    temp_Q.next;
  end;
  temp_Q.edit;
  temp_Q.post;
  //**************************************************************
  dlyh_Q.First;
  for j:=1 to dlyh_Q.RecordCount do
  begin
  //***********添加项目经理的所得*******************
    temp_Q.sql.Clear;
    temp_Q.SQL.Add('select * from achivement');
    temp_Q.SQL.Add('where workNo='+dlyh_Q.fieldbyname('charge').AsString);
    temp_Q.SQL.Add('and months='+#39+Trim(CB_month.Text)+#39);
    temp_Q.open;
    temp_Q.edit;
    c:=dlyh_Q.fieldbyname('earnmoney').AsInteger;  //单个项目的业绩
     //showmessage(inttostr(c));
    g:=(c*90/100)*strtoint(DB_projectM.Text)/100;

    temp_Q.FieldByName('dgetmoney').AsFloat:=temp_Q.FieldByName('dgetmoney').AsFloat+g;
    temp_q.edit;
    temp_q.post;
  //*******************************************************
    //找出定制人的业绩进得添加
    temp_Q.sql.Clear;
    temp_Q.SQL.Add('select * from achivement');
    temp_Q.SQL.Add('where workNo='+dlyh_Q.fieldbyname('dpeople1').AsString);
    temp_Q.SQL.Add('and months='+#39+Trim(CB_month.Text)+#39);
    temp_Q.open;
    temp_Q.edit;
    c:=dlyh_Q.fieldbyname('earnmoney').AsInteger;  //单个项目的业绩
    //showmessage(inttostr(c));
    g5:=((c*90/100)*(100-strtoint(DB_projectM.Text))/100)*50/100;
    //showmessage(floattostr(g5));
    temp_Q.FieldByName('dgetmoney').AsFloat:=temp_Q.FieldByName('dgetmoney').AsFloat+g5;
    temp_q.edit;
    temp_q.post;

    //****************************************************************
    temp_Q.sql.Clear;
    temp_Q.SQL.Add('select * from achivement');
    temp_Q.SQL.Add('where workNo='+dlyh_Q.fieldbyname('dpeople2').AsString);
    temp_Q.SQL.Add('and months='+#39+Trim(CB_month.Text)+#39);
    temp_Q.open;
    temp_Q.edit;
    g6:=((c*90/100)*(100-strtoint(DB_projectM.Text))/100)-g5;
    temp_Q.FieldByName('dgetmoney').AsFloat:=temp_Q.FieldByName('dgetmoney').AsFloat+g6;
    temp_q.edit;
    temp_q.post;
    //showmessage(floattostr(g6));
    dlyh_Q.Next;
  end;
  temp_q.edit;
  temp_q.post;
  dm.ADQ_VpersonAchiv.sql.Clear;
  dm.ADQ_VpersonAchiv.SQL.Add('select * from v_personachiv');
  dm.ADQ_VpersonAchiv.SQL.Add('where months='+#39+Trim(CB_month.Text)+#39);
  dm.ADQ_VpersonAchiv.Open;
  MessageBox(handle,'已经完成统计!','统计完成',MB_OK or MB_ICONINFORMATION);
end;


procedure TFom_yjtj.FormActivate(Sender: TObject);
var
  i:integer;
begin
  //供选择年月用
  DLYH_Q.SQL.Clear;
  DLYH_Q.SQL.Add('select months from dAchive');
  DLYH_Q.SQL.Add('where departNo=1');
  DLYH_Q.Open;
  DLYH_Q.Last;
  for i:=1 to DLYH_Q.RecordCount do
  begin
    CB_month.Items.Add(DLYH_Q.fieldbyname('months').AsString);
    DLYH_Q.Prior;
  end;
  DLYH_Q.Last;
  CB_month.Text:=DLYH_Q.fieldbyname('months').AsString;
//*****************************************************************
  DLYH_Q.SQL.Clear;
  DLYH_Q.SQL.Add('select percentsin from job');
  DLYH_Q.SQL.Add('where jobNo=7');
  DLYH_Q.Open;
  DB_projectM.Text:=DLYH_Q.fieldbyname('percentsin').AsString;
//******************************************************************
  DLYH_Q.SQL.Clear;
  DLYH_Q.SQL.Add('select percentsin from job');
  DLYH_Q.SQL.Add('where jobNo=1');
  DLYH_Q.Open;
  DBComboBox1.Text:=DLYH_Q.fieldbyname('percentsin').AsString;
//******************************************************************
  DLYH_Q.SQL.Clear;
  DLYH_Q.SQL.Add('select percentsin from job');
  DLYH_Q.SQL.Add('where jobNo=2');
  DLYH_Q.Open;
  DBComboBox2.Text:=DLYH_Q.fieldbyname('percentsin').AsString;
//******************************************************************
  DLYH_Q.SQL.Clear;
  DLYH_Q.SQL.Add('select percentsin from job');
  DLYH_Q.SQL.Add('where jobNo=3');
  DLYH_Q.Open;
  DBComboBox3.Text:=DLYH_Q.fieldbyname('percentsin').AsString;
//******************************************************************
  DLYH_Q.SQL.Clear;
  DLYH_Q.SQL.Add('select percentsin from job');
  DLYH_Q.SQL.Add('where jobNo=8');
  DLYH_Q.Open;
  DBComboBox4.Text:=DLYH_Q.fieldbyname('percentsin').AsString;
//*****************************************************************
  dm.ADQ_VpersonAchiv.sql.Clear;
  dm.ADQ_VpersonAchiv.SQL.Add('select * from v_personachiv');
  dm.ADQ_VpersonAchiv.SQL.Add('where months='+#39+Trim(CB_month.Text)+#39);
  dm.ADQ_VpersonAchiv.Open;
  fom_yjtj.DBGrid1.Visible:=true;
end;

procedure TFom_yjtj.FormCreate(Sender: TObject);
begin
  fom_yjtj.DBGrid1.Visible:=false;
end;

procedure TFom_yjtj.CB_monthChange(Sender: TObject);
begin
  dm.ADQ_VpersonAchiv.sql.Clear;
  dm.ADQ_VpersonAchiv.SQL.Add('select * from v_personachiv');
  dm.ADQ_VpersonAchiv.SQL.Add('where months='+#39+Trim(CB_month.Text)+#39);
  dm.ADQ_VpersonAchiv.Open;
end;

procedure TFom_yjtj.BitBtn4Click(Sender: TObject);
begin
quickreport1.ADOTable1.Active:=true;
QuickReport1.Preview;
end;

end.

⌨️ 快捷键说明

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