📄 ybnsdeliver1.pas
字号:
unit ybnsdeliver1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, Grids, DBGrids, StdCtrls, ExtCtrls, DBCtrls, Mask,
ComCtrls;
type
Tfrm_ybnsdeliver1 = class(TForm)
PCtrl_whole: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
GroupBox2: TGroupBox;
cbgh: TComboBox;
GroupBox3: TGroupBox;
cbname: TComboBox;
GroupBox4: TGroupBox;
Label2: TLabel;
Label13: TLabel;
cbmonth: TComboBox;
Panel2: TPanel;
btn_brs: TButton;
btn_qry: TButton;
btn_clr: TButton;
btn_prt: TButton;
GroupBox6: TGroupBox;
DBGrid1: TDBGrid;
Panel4: TPanel;
Panel9: TPanel;
Panel8: TPanel;
Panel5: TPanel;
Edit1: TEdit;
Panel6: TPanel;
Edit2: TEdit;
Panel7: TPanel;
Edit3: TEdit;
Panel10: TPanel;
Edit4: TEdit;
qbnsdeliver1: TQuery;
qbnsdeliver1BDEDesigner: TStringField;
qbnsdeliver1BDEDesigner2: TFloatField;
qbnsdeliver1BDEDesigner3: TFloatField;
qbnsdeliver1BDEDesigner4: TFloatField;
qbnsdeliver1BDEDesigner5: TStringField;
qbnsdeliver1BDEDesigner6: TStringField;
qbnsdeliver1BDEDesigner7: TStringField;
qbnsdeliver1BDEDesigner8: TStringField;
qbnsdeliver1Field: TFloatField;
qbnsdeliver1Field2: TFloatField;
dsbnsdeliver1: TDataSource;
Queryuse: TQuery;
qall: TQuery;
dsall: TDataSource;
qbnsdeliver1BDEDesigner13: TCurrencyField;
qcheckmark: TQuery;
dscheckmark: TDataSource;
qcheckmarkBDEDesigner: TAutoIncField;
qcheckmarkBDEDesigner2: TStringField;
qcheckmarkBDEDesigner3: TSmallintField;
qcheckmarkBDEDesigner4: TSmallintField;
qcheckmarkBDEDesigner5: TSmallintField;
qcheckmarkBDEDesigner6: TSmallintField;
qcheckmarkBDEDesigner7: TSmallintField;
qcheckmarkBDEDesigner8: TSmallintField;
qcheckmarkBDEDesigner9: TSmallintField;
qcheckmarkBDEDesigner10: TSmallintField;
qcheckmarkBDEDesigner11: TSmallintField;
qcheckmarkBDEDesigner12: TSmallintField;
qcheckmarkBDEDesigner13: TSmallintField;
qcheckmarkBDEDesigner14: TStringField;
qcheckmarkBDEDesigner15: TStringField;
quse2: TQuery;
qcheckmarkBDEDesigner16: TStringField;
qcheckmarkField1: TIntegerField;
qcheckmarkField2: TIntegerField;
qcheckmarkField12: TFloatField;
qcheckmarkField22: TFloatField;
quse1: TQuery;
updatecheckmark: TUpdateSQL;
upall: TUpdateSQL;
quse: TQuery;
qcheckmarkBDEDesigner18: TStringField;
qbnsdeliver1Field3: TFloatField;
cbyear: TComboBox;
qforcount: TQuery;
GroupBox1: TGroupBox;
Label1: TLabel;
DBEdit1: TDBEdit;
Label8: TLabel;
DBComboBox2: TDBComboBox;
DBComboBox1: TDBComboBox;
Label12: TLabel;
Label3: TLabel;
Label5: TLabel;
DBEdit4: TDBEdit;
DBEdit3: TDBEdit;
Label4: TLabel;
Label6: TLabel;
DBEdit5: TDBEdit;
Label7: TLabel;
DBEdit10: TDBEdit;
btn_first: TButton;
btn_prev: TButton;
btn_next: TButton;
btn_last: TButton;
btn_addnew: TButton;
btn_edit: TButton;
btn_cancel: TButton;
btn_delete: TButton;
btn_save: TButton;
GroupBox5: TGroupBox;
Panel11: TPanel;
cbbsc: TComboBox;
btn_toperson: TButton;
btn_savecheckmark: TButton;
btn_check1: TButton;
btn_check2: TButton;
PCtrl_person: TPageControl;
TabSheet4: TTabSheet;
DBGck1: TDBGrid;
TabSheet5: TTabSheet;
DBGck2: TDBGrid;
procedure qbnsdeliver1CalcFields(DataSet: TDataSet);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure btn_clrClick(Sender: TObject);
procedure btn_brsClick(Sender: TObject);
procedure btn_qryClick(Sender: TObject);
procedure qbnsdeliver1AfterOpen(DataSet: TDataSet);
procedure btn_prtClick(Sender: TObject);
procedure btn_lastClick(Sender: TObject);
procedure btn_addnewClick(Sender: TObject);
procedure btn_saveClick(Sender: TObject);
procedure btn_prevClick(Sender: TObject);
procedure btn_nextClick(Sender: TObject);
procedure btn_editClick(Sender: TObject);
procedure btn_cancelClick(Sender: TObject);
procedure btn_deleteClick(Sender: TObject);
procedure btn_firstClick(Sender: TObject);
procedure btn_topersonClick(Sender: TObject);
procedure qallAfterScroll(DataSet: TDataSet);
procedure btn_savecheckmarkClick(Sender: TObject);
procedure qcheckmarkCalcFields(DataSet: TDataSet);
procedure btn_check1Click(Sender: TObject);
procedure btn_check2Click(Sender: TObject);
procedure TabSheet2Enter(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
procedure getmoneyratio;
procedure getallratio;
{ Private declarations }
procedure LockEdit;
//定义函数,来改变各个输入框是否可以编辑,当用户再增加新记录
//或者编辑记录以前,不可以修改
procedure UnlockEdit;
//定义函数,用来让输入文本框可以编辑
procedure DisableBtn;
//定义过程,用来使某些按钮失效
procedure EnableBtn;
//定义过程,用来使某些按钮有效
public
total:real; //原来的总奖金,现在不用了。
ratio:real; //个人奖金系数;即原来的个人权重
allratio:real; //奖金总系数;即原来的总权重
checkresult:real; //考核得分率
{ Public declarations }
end;
var
frm_ybnsdeliver1: Tfrm_ybnsdeliver1;
implementation
uses rp_ybnsdeliver1, data, rp_checkmark1, rp_checkmark2;
{$R *.dfm}
//***************以下是自定义的按纽和编辑的可否应用部分*********************
//自定义过程,用来确定每个Edit空间是否可以编辑
procedure Tfrm_ybnsdeliver1.LockEdit;
begin
{ DBEdit1.ReadOnly :=true;
DBEdit2.ReadOnly :=true;
DBEdit3.ReadOnly := true;
DBEdit4.ReadOnly := true;
DBEdit5.ReadOnly := true;
DBComboBox1.ReadOnly := true;
DBEdit10.ReadOnly :=true;}
GroupBox1.Enabled :=false;
end;
procedure Tfrm_ybnsdeliver1.UnlockEdit ;
begin
{ DBEdit1.ReadOnly :=false;
DBEdit2.ReadOnly :=false;
DBEdit3.ReadOnly :=false;
DBEdit4.ReadOnly :=false;
DBEdit5.ReadOnly :=false;
DBComboBox1.ReadOnly :=false;
DBEdit10.ReadOnly :=true;}
GroupBox1.Enabled :=true;
end;
procedure Tfrm_ybnsdeliver1.DisableBtn ;
begin
btn_first.Enabled :=false;
btn_prev.Enabled :=false;
btn_next.Enabled :=false;
btn_last.Enabled :=false;
btn_addnew.Enabled :=false;
btn_edit.Enabled :=false;
btn_toperson.Enabled :=false;
end;
procedure Tfrm_ybnsdeliver1.EnableBtn ;
begin
btn_first.Enabled :=true;
btn_prev.Enabled :=true;
btn_next.Enabled :=true;
btn_last.Enabled :=true;
btn_addnew.Enabled :=true;
btn_edit.Enabled :=true;
btn_toperson.Enabled :=true;
end;
//***************以上是自定义的按纽和编辑的可否应用部分*********************
//***************以下是按纽操作。*********************
procedure Tfrm_ybnsdeliver1.btn_firstClick(Sender: TObject);
begin
if not qall.Bof then qall.First;
end;
procedure Tfrm_ybnsdeliver1.btn_lastClick(Sender: TObject);
begin
if not qall.eof then qall.Last;
end;
procedure Tfrm_ybnsdeliver1.btn_prevClick(Sender: TObject);
begin
if not qall.Bof then qall.Prior;
end;
procedure Tfrm_ybnsdeliver1.btn_nextClick(Sender: TObject);
begin
if not qall.Eof then qall.Next;
end;
procedure Tfrm_ybnsdeliver1.btn_addnewClick(Sender: TObject);
var
Present: TDateTime;
begin
UnlockEdit;
qall.append;
DisableBtn;
btn_save.Enabled :=true;
btn_cancel.Enabled :=true;
//给下面审核栏默认值:
//日期:
Present:= Now;
qall.fieldbyname('录入日期').AsString :=datetimetostr(present);
//人名:
with queryuse do begin
if active then close;
unprepare;
sql.Clear;
sql.Add('select 主管,审核,录入 from pub_z_ybnsdeliverall1');
prepare;
open;
last;
qall.fieldbyname('主管').AsString:=fieldbyname('主管').AsString;
qall.fieldbyname('审核').AsString:=fieldbyname('审核').AsString;
qall.fieldbyname('录入').AsString:=fieldbyname('录入').AsString;
end;
end;
procedure Tfrm_ybnsdeliver1.btn_saveClick(Sender: TObject);
begin
with data.zxjxdata do begin
if not DatabaseJxw.intransaction then DatabaseJxw.starttransaction;
try
qall.ApplyUpdates;
DatabaseJxw.commit;
//使编辑框和按钮有反应:
LockEdit;
EnableBtn ;
btn_save.Enabled :=false;
btn_cancel.Enabled :=false;
except
DatabaseJxw.Rollback;
raise;
end;
end;
{ qall.Close ;
qall.Open ;
}
end;
procedure Tfrm_ybnsdeliver1.btn_editClick(Sender: TObject);
begin
qall.Edit ;
//让文本框可以编辑
UnlockEdit;
//使一些按钮失效
DisableBtn;
btn_save.Enabled :=true;
btn_cancel.Enabled :=true;
end;
procedure Tfrm_ybnsdeliver1.btn_cancelClick(Sender: TObject);
begin
qall.Cancel ;
lockedit;
enablebtn;
btn_cancel.Enabled :=false;
btn_save.Enabled :=false;
end;
procedure Tfrm_ybnsdeliver1.btn_deleteClick(Sender: TObject);
begin
qall.Delete;
lockedit;
enablebtn;
btn_delete.Enabled :=false;
btn_save.Enabled :=false;
end;
//***************以上是按纽操作。*********************
procedure Tfrm_ybnsdeliver1.getmoneyratio;
var
Year, Month, Day:word;
begin
total:=0;
ratio:=0;
with queryuse do begin
if active then close;
unprepare;
sql.Clear;
sql.Add('select 合计价款_数值表达,买方签订日期 from pub_z_contract');
prepare;
open;
if findfirst then begin
while not eof do
begin
DecodeDate(fieldbyname('买方签订日期').AsDateTime,Year,Month,Day);
if (Year=qbnsdeliver1.fieldbyname('年').AsInteger) and (Month=qbnsdeliver1.fieldbyname('月').AsInteger) then
total:=total+fieldbyname('合计价款_数值表达').Asfloat;
next;
end;
end;
//计算对应的奖金比例
with queryuse do begin
if active then close;
unprepare;
sql.Clear;
sql.Add('select * from std_pay_headoffice');
prepare;
open;
last;
while not bof do begin
if total >= fieldbyname('销售额').Asfloat then
ratio:= fieldbyname('奖金比例').Asfloat;
Prior;
end;
end;
end;
end;
procedure Tfrm_ybnsdeliver1.getallratio;
begin
checkresult:=0;
allratio:=0;
with queryuse do begin
if active then close;
unprepare;
sql.Clear;
sql.Add('select 奖金权重 from pub_z_bonusratio1 where 年=:year and 月=:month');
parambyname('year').AsString:=qbnsdeliver1.fieldbyname('年').AsString;
parambyname('month').asstring:=qbnsdeliver1.fieldbyname('月').AsString;
prepare;
open;
if findfirst then begin
first;
while not eof do
begin
allratio:=allratio+fieldbyname('奖金权重').Asfloat ;
next;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -