📄 yjtj.pas
字号:
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 + -