📄 bonusratio.pas
字号:
unit bonusratio;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, Mask, DBCtrls, ExtCtrls, ComCtrls, DB,
DBTables;
type
TFrm_bonusratio = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Panel2: TPanel;
btn_first: TButton;
btn_prev: TButton;
btn_next: TButton;
btn_last: TButton;
btn_addnew: TButton;
btn_edit: TButton;
btn_save: TButton;
btn_cancel: TButton;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
DBEdit3: TDBEdit;
DBComboBox3: TDBComboBox;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
GroupBox1: TGroupBox;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
DBEdit7: TDBEdit;
DBEdit8: TDBEdit;
DBEdit9: TDBEdit;
Panel3: TPanel;
btn_brs: TButton;
btn_qry: TButton;
btn_clr: TButton;
btn_prt: TButton;
GroupBox2: TGroupBox;
DBGrid1: TDBGrid;
qbr: TQuery;
dsbr: TDataSource;
btn_delete: TButton;
GroupBox7: TGroupBox;
GroupBox8: TGroupBox;
GroupBox9: TGroupBox;
GroupBox10: TGroupBox;
DBComboBox4: TDBComboBox;
UpdateSqbr: TUpdateSQL;
cbbsc: TComboBox;
cbxm: TComboBox;
cbgh: TComboBox;
cbgw: TComboBox;
quse: TQuery;
qbrBDEDesigner: TStringField;
qbrBDEDesigner2: TFloatField;
qbrBDEDesigner3: TCurrencyField;
qbrBDEDesigner4: TCurrencyField;
qbrBDEDesigner5: TStringField;
qbrBDEDesigner6: TStringField;
qbrBDEDesigner7: TStringField;
qbrBDEDesigner8: TStringField;
qbrBDEDesigner9: TStringField;
qbrBDEDesigner10: TDateTimeField;
qbrBDEDesigner11: TStringField;
qbrBDEDesigner12: TStringField;
qbrBDEDesigner13: TStringField;
qforqbr: TQuery;
dsforqbr: TDataSource;
Label13: TLabel;
DBEdit10: TDBEdit;
DBComboBox1: TDBComboBox;
DBComboBox5: TDBComboBox;
DBComboBox2: TDBComboBox;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure btn_firstClick(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_brsClick(Sender: TObject);
procedure btn_qryClick(Sender: TObject);
procedure btn_clrClick(Sender: TObject);
procedure DBComboBox4Exit(Sender: TObject);
procedure TabSheet2Enter(Sender: TObject);
procedure btn_prtClick(Sender: TObject);
procedure DBComboBox1Exit(Sender: TObject);
procedure DBComboBox5Exit(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
procedure LockEdit;
//定义函数,来改变各个输入框是否可以编辑,当用户再增加新记录
//或者编辑记录以前,不可以修改
procedure UnlockEdit;
//定义函数,用来让输入文本框可以编辑
procedure DisableBtn;
//定义过程,用来使某些按钮失效
procedure EnableBtn;
//定义过程,用来使某些按钮有效
public
{ Public declarations }
end;
var
Frm_bonusratio: TFrm_bonusratio;
implementation
uses data, rp_bonusratio;
{$R *.dfm}
//***************释放空间********************
procedure TFrm_bonusratio.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=cafree;
end;
//***************以下是自定义的按纽和编辑的可否应用部分*********************
//自定义过程,用来确定每个Edit空间是否可以编辑
procedure TFrm_bonusratio.LockEdit;
begin
DBEdit3.ReadOnly :=true;
DBEdit4.ReadOnly :=true;
DBEdit5.ReadOnly :=true;
DBEdit6.ReadOnly :=true;
DBEdit7.ReadOnly :=true;
DBEdit8.ReadOnly :=true;
DBEdit9.ReadOnly :=true;
DBEdit10.ReadOnly :=true;
DBComboBox1.ReadOnly :=true;
DBComboBox3.ReadOnly :=true;
DBComboBox4.ReadOnly :=true;
DBComboBox5.ReadOnly :=true;
DBComboBox2.ReadOnly :=true;
DBComboBox1.Enabled :=false;
DBComboBox3.Enabled :=false;
DBComboBox4.Enabled :=false;
DBComboBox5.Enabled :=false;
DBComboBox2.Enabled :=false;
end;
procedure TFrm_bonusratio.UnlockEdit ;
begin
DBEdit3.ReadOnly :=true;
DBEdit4.ReadOnly :=false;
DBEdit5.ReadOnly :=false;
DBEdit6.ReadOnly :=false;
DBEdit7.ReadOnly :=false;
DBEdit8.ReadOnly :=false;
DBEdit9.ReadOnly :=false;
DBEdit10.ReadOnly :=true;
DBComboBox1.ReadOnly :=false;
DBComboBox5.ReadOnly :=false;
DBComboBox3.ReadOnly :=false;
DBComboBox4.ReadOnly :=false;
DBComboBox2.ReadOnly :=false;
DBComboBox1.Enabled :=true;
DBComboBox3.Enabled :=true;
DBComboBox4.Enabled :=true;
DBComboBox5.Enabled :=true;
DBComboBox2.Enabled :=true;
end;
procedure TFrm_bonusratio.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;
end;
procedure TFrm_bonusratio.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;
end;
//***************以上是自定义的按纽和编辑的可否应用部分*********************
//***************以下是按纽操作。*********************
procedure TFrm_bonusratio.btn_firstClick(Sender: TObject);
begin
if not qbr.Bof then qbr.First ;
end;
procedure TFrm_bonusratio.btn_lastClick(Sender: TObject);
begin
if not qbr.eof then qbr.Last ;
end;
procedure TFrm_bonusratio.btn_prevClick(Sender: TObject);
begin
if not qbr.Bof then qbr.Prior ;
end;
procedure TFrm_bonusratio.btn_nextClick(Sender: TObject);
begin
if not qbr.Eof then qbr.Next ;
end;
procedure TFrm_bonusratio.btn_addnewClick(Sender: TObject);
var
Present: TDateTime;
begin
UnlockEdit;
qbr.append;
DisableBtn;
btn_save.Enabled :=true;
btn_cancel.Enabled :=true;
//给下面审核栏默认值:
//日期:
Present:=date;
qbr.fieldbyname('录入日期').AsString :=datetimetostr(present);
//人名:
with quse do begin
if active then close;
unprepare;
sql.Clear;
sql.Add('select * from pub_z_payratio');
prepare;
open;
last;
qbr.fieldbyname('月').AsString:=fieldbyname('月').AsString;
qbr.fieldbyname('年').AsString:=fieldbyname('年').AsString;
qbr.fieldbyname('奖励').AsString:=fieldbyname('奖励').AsString;
qbr.fieldbyname('应扣').AsString:=fieldbyname('应扣').AsString;
qbr.fieldbyname('主管').AsString:=fieldbyname('主管').AsString;
qbr.fieldbyname('审核').AsString:=fieldbyname('审核').AsString;
qbr.fieldbyname('录入').AsString:=fieldbyname('录入').AsString;
end;
end;
procedure TFrm_bonusratio.btn_saveClick(Sender: TObject);
begin
with data.zxjxdata do begin
if not DatabaseJxw.intransaction then DatabaseJxw.starttransaction;
try
qbr.ApplyUpdates;
DatabaseJxw.commit;
qbr.CommitUpdates ;
//使编辑框和按钮有反应:
LockEdit;
EnableBtn ;
btn_save.Enabled :=false;
btn_cancel.Enabled :=false;
except
DatabaseJxw.Rollback;
raise;
end;
end;
{ qbr.Close ;
qbr.Open;
}
end;
procedure TFrm_bonusratio.btn_editClick(Sender: TObject);
begin
qbr.Edit ;
//让文本框可以编辑
UnlockEdit;
//使一些按钮失效
DisableBtn;
btn_save.Enabled :=true;
btn_cancel.Enabled :=true;
end;
procedure TFrm_bonusratio.btn_cancelClick(Sender: TObject);
begin
qbr.Cancel ;
lockedit;
enablebtn;
btn_cancel.Enabled :=false;
btn_save.Enabled :=false;
end;
procedure TFrm_bonusratio.btn_deleteClick(Sender: TObject);
begin
qbr.Delete ;
qbr.ApplyUpdates;
lockedit;
enablebtn;
btn_delete.Enabled :=false;
btn_save.Enabled :=false;
end;
//***************以上是按纽操作。*********************
//***************打开数据集********************
procedure TFrm_bonusratio.FormCreate(Sender: TObject);
begin
lockedit;
enablebtn;
//通过quse读出办事处名称列表
with quse do begin
if active then close;
unprepare;
sql.Clear;
sql.Add('select 办事处名称 from pub_z_office');
prepare;
open;
if findfirst then begin
while not eof do begin
DBComboBox1.Items.Add(fieldbyname('办事处名称').AsString);
next;
end;
end;
end;
with qbr do begin
open;
first;
end;
end;
procedure TFrm_bonusratio.btn_brsClick(Sender: TObject);
begin
qbr.Filtered :=false;
DBGrid1.DataSource :=dsbr;
end;
procedure TFrm_bonusratio.btn_qryClick(Sender: TObject);
var
qitem,q1,q2,q3,q4:string;
begin
q2 :=cbbsc.Text;
q1 :=cbxm.Text;
q3 :=cbgh.Text;
q4 :=cbgw.Text;
if (q1='') and (q2='') and (q3='') and (q4='')
then application.MessageBox('您还没有设置查询条件呢!','提示',MB_OK)
else begin
if not(cbxm.Text='') then
begin
q1:=cbxm.Text;
q1:=' 姓名='''+q1+''' ';
end
else
q1:='';
if not(cbbsc.Text='') then
begin
q2:=cbbsc.Text;
q2:=' 办事处名称='''+q2+''' ';
end
else
q2:='';
if not(cbgh.Text='') then
begin
q3:=cbgh.Text;
q3:=' 工号='''+q3+''' ';
end
else
q3:='';
if not(cbgw.Text='') then
begin
q4:=cbgw.Text;
q4:=' 岗位='''+q4+''' ';
end
else
q4:='';
//将条件累加成子句
if q1<>'' then qitem:=q1 else qitem:='';
if qitem='' then
if q2<>'' then qitem:=q2;
if qitem<>'' then
if q2<>'' then qitem:=qitem+' and '+q2 ;
if qitem='' then
if q3<>'' then qitem:=q3;
if qitem<>'' then
if q3<>'' then qitem:=qitem+' and '+q3;
if qitem='' then
if q4<>'' then qitem:=q4;
if qitem<>'' then
if q4<>'' then qitem:=qitem+' and '+q4;
//根据条件过滤
with qbr do begin
filter:=qitem;
filtered:=true;
if not findfirst then begin
application.MessageBox('没有您要的信息!','提示',MB_OK);
btn_clrClick(btn_clr);
end ;
end;
end;
end;
procedure TFrm_bonusratio.btn_clrClick(Sender: TObject);
begin
cbxm.Text :='';
cbbsc.Text :='';
cbgh.Text :='';
cbgw.Text :='';
end;
procedure TFrm_bonusratio.DBComboBox4Exit(Sender: TObject);
begin
//通过姓名 给出,工号,岗位。
with quse do begin
if active then close;
sql.Clear;
sql.Add('select * from pub_z_stuff where 姓名=:xm');
parambyname('xm').AsString:=qbr.fieldbyname('姓名').AsString ;
open;
qbr.FieldByName('工号').AsString:=FieldByName('工号').AsString;
qbr.FieldByName('岗位').AsString:=FieldByName('岗位').AsString;
first;
DBComboBox5.Items.Clear ;
while not eof do begin
DBComboBox5.Items.Add(FieldByName('工号').AsString);
next;
end;
end;
end;
procedure TFrm_bonusratio.TabSheet2Enter(Sender: TObject);
begin
with quse do begin
if active then close;
unprepare;
sql.Clear;
sql.Add('select 职位 from std_office_station');
prepare;
open;
cbgw.Items.Clear ;
while not Eof do begin
cbgw.Items.Add(FieldByName('职位').AsString);
Next;
end;
end;
with quse do begin
if active then close;
unprepare;
sql.Clear;
sql.Add('select 工号,姓名 from pub_z_stuff');
prepare;
open;
cbxm.Items.Clear ;
cbgh.Items.Clear ;
while not Eof do begin
cbxm.Items.Add(FieldByName('姓名').AsString);
cbgh.Items.Add(FieldByName('工号').AsString);
Next;
end;
end;
with quse do begin
if active then close;
unprepare;
sql.Clear;
sql.Add('select 办事处名称 from pub_z_office');
prepare;
open;
cbbsc.Items.Clear ;
while not Eof do begin
cbbsc.Items.Add(FieldByName('办事处名称').AsString);
Next;
end;
end;
end;
procedure TFrm_bonusratio.btn_prtClick(Sender: TObject);
begin
frp_bonusratio:=Tfrp_bonusratio.Create(application);
frp_bonusratio.QuickRep1.Preview;
frp_bonusratio.free;
end;
procedure TFrm_bonusratio.DBComboBox1Exit(Sender: TObject);
begin
//通过办事处 给出工号列表。
with quse do begin
if active then close;
sql.Clear;
sql.Add('select * from pub_z_stuff where 办事处名称=:bscname');
parambyname('bscname').AsString:=qbr.fieldbyname('办事处名称').AsString ;
open;
qbr.FieldByName('姓名').AsString:=FieldByName('姓名').AsString;
qbr.FieldByName('工号').AsString:=FieldByName('工号').AsString;
qbr.FieldByName('岗位').AsString:=FieldByName('岗位').AsString;
first;
DBComboBox4.Items.Clear ;
DBComboBox5.Items.Clear ;
while not eof do begin
DBComboBox4.Items.Add(FieldByName('姓名').AsString);
DBComboBox5.Items.Add(FieldByName('工号').AsString);
next;
end;
end;
end;
procedure TFrm_bonusratio.DBComboBox5Exit(Sender: TObject);
begin
{ //通过工号 给出姓名,岗位。
with quse do begin
if active then close;
sql.Clear;
sql.Add('select * from pub_z_stuff where 工号=:gh');
parambyname('gh').AsString:=qbr.fieldbyname('工号').AsString ;
open;
qbr.FieldByName('姓名').AsString:=FieldByName('姓名').AsString;
qbr.FieldByName('岗位').AsString:=FieldByName('岗位').AsString;
first;
while not eof do begin
DBComboBox4.Items.Add(FieldByName('姓名').AsString);
next;
end;
end;}
end;
procedure TFrm_bonusratio.FormDestroy(Sender: TObject);
begin
Frm_bonusratio:=nil;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -