📄 fare.pas
字号:
btn_edit.Enabled :=true;
end;
//***************以上是自定义的按纽和编辑的可否应用部分*********************
//***************以下是按纽操作。*********************
procedure Tfrm_fare.btn_firstClick(Sender: TObject);
begin
if not qfare.Bof then qfare.First;
end;
procedure Tfrm_fare.btn_lastClick(Sender: TObject);
begin
if not qfare.eof then qfare.Last;
end;
procedure Tfrm_fare.btn_prevClick(Sender: TObject);
begin
if not qfare.Bof then qfare.Prior;
end;
procedure Tfrm_fare.btn_nextClick(Sender: TObject);
begin
if not qfare.Eof then qfare.Next;
end;
procedure Tfrm_fare.btn_addnewClick(Sender: TObject);
var
Present: TDateTime;
begin
UnlockEdit;
qfare.append;
DisableBtn;
btn_save.Enabled :=true;
btn_cancel.Enabled :=true;
//给下面审核栏默认值:
//日期:
Present:= Now;
qfare.fieldbyname('录入日期').AsString :=datetimetostr(present);
//人名:
with quse do begin
if active then close;
unprepare;
sql.Clear;
sql.Add('select 主管,审核,录入 from pub_z_fare');
prepare;
open;
last;
qfare.fieldbyname('主管').AsString:=fieldbyname('主管').AsString;
qfare.fieldbyname('审核').AsString:=fieldbyname('审核').AsString;
qfare.fieldbyname('录入').AsString:=fieldbyname('录入').AsString;
end;
end;
procedure Tfrm_fare.btn_saveClick(Sender: TObject);
begin
if (qfare.fieldbyname('年').AsString='') or (qfare.fieldbyname('月').AsString='') or (qfare.fieldbyname('编制单位').AsString='') then
application.MessageBox('年、月及编制单位请完整填写!','提示',MB_OK)
else begin
with data.zxjxdata do begin
if not DatabaseJxw.intransaction then DatabaseJxw.starttransaction;
try
qfare.ApplyUpdates;
DatabaseJxw.commit;
qfare.CommitUpdates ;
//使编辑框和按钮有反应:
LockEdit;
EnableBtn ;
btn_save.Enabled :=false;
btn_cancel.Enabled :=false;
except
DatabaseJxw.Rollback;
raise;
end;
end;
end;
{ qfare.Close ;
qfare.Open ;}
end;
procedure Tfrm_fare.btn_editClick(Sender: TObject);
begin
qfare.Edit ;
//让文本框可以编辑
UnlockEdit;
//使一些按钮失效
DisableBtn;
btn_save.Enabled :=true;
btn_cancel.Enabled :=true;
end;
procedure Tfrm_fare.btn_cancelClick(Sender: TObject);
begin
qfare.Cancel ;
lockedit;
enablebtn;
btn_cancel.Enabled :=false;
btn_save.Enabled :=false;
end;
procedure Tfrm_fare.btn_deleteClick(Sender: TObject);
begin
qfare.Delete;
qfare.ApplyUpdates ;
lockedit;
enablebtn;
btn_delete.Enabled :=false;
btn_save.Enabled :=false;
end;
//***************以上是按纽操作。*************
procedure Tfrm_fare.TabSheet2Enter(Sender: TObject);
begin
//给出查询页的下拉列表。
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_fare.btn_brsClick(Sender: TObject);
begin
qfare.Filtered :=false;
DBGrid1.DataSource :=dsfare;
end;
procedure Tfrm_fare.btn_qryClick(Sender: TObject);
var
qitem,q1,q2,q3:string;
begin
q1 :=cbyear.Text;
q2 :=cbmonth.Text;
q3 :=cbbsc.Text;
if (q1='') and (q2='') and (q3='')
then application.MessageBox('您还没有设置查询条件呢!','提示',MB_OK)
else begin
if not(cbmonth.Text='') then
begin
q2:=cbmonth.Text;
q2:=' 月='''+q2+''' ';
end
else
q2:='';
if not(cbyear.Text='') then
begin
q1:=cbyear.Text;
q1:=' 年='''+q1+''' ';
end
else
q1:='';
if not(cbbsc.Text='') then
begin
q3:=cbbsc.Text;
q3:=' 编制单位='''+q3+''' ';
end
else
q3:='';
//将条件累加成子句
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;
//根据条件过滤
with qfare 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_fare.btn_clrClick(Sender: TObject);
begin
cbyear.Text :='';
cbbsc.Text :='';
cbmonth.Text :='';
end;
procedure Tfrm_fare.FormCreate(Sender: TObject);
begin
lockedit;
enablebtn;
//通过qforuse读出办事处名称列表
DBComboBox2.Items.Clear ;
with quse do begin
if active then close;
unprepare;
sql.Clear;
sql.Add('select 办事处名称 from pub_z_office');
prepare;
open;
while not eof do begin
DBComboBox2.Items.Add(fieldbyname('办事处名称').AsString);
next;
end;
end;
with qfare do begin
open;
end;
end;
procedure Tfrm_fare.qfareCalcFields(DataSet: TDataSet);
var
row1,row2,row3,row4,row5,row6,row7,row8,row9,row10:real;
row11,row12,row13,row14,row15,row16:real;
begin
with qfare do begin
row1:=fieldbyname('工资补贴_本月预算').asfloat+fieldbyname('佣金_本月预算').asfloat+fieldbyname('展览广告_本月预算').asfloat+fieldbyname('交际应酬_本月预算').asfloat;
row1:=row1+fieldbyname('国内交通_本月预算').asfloat+fieldbyname('海外交通_本月预算').asfloat+fieldbyname('保险费_本月预算').asfloat+fieldbyname('办公费_本月预算').asfloat;
row1:=row1+fieldbyname('培训费_本月预算').asfloat+fieldbyname('律师费_本月预算').asfloat+fieldbyname('员工福利_本月预算').asfloat+fieldbyname('物料消耗_本月预算').asfloat;
fieldbyname('合计_本月预算').asfloat:=row1+fieldbyname('通讯费_本月预算').asfloat+fieldbyname('运输费_本月预算').asfloat+fieldbyname('其他_本月预算').asfloat;
row1:=fieldbyname('工资补贴_本月实际').asfloat+fieldbyname('佣金_本月实际').asfloat+fieldbyname('展览广告_本月实际').asfloat+fieldbyname('交际应酬_本月实际').asfloat;
row1:=row1+fieldbyname('国内交通_本月实际').asfloat+fieldbyname('海外交通_本月实际').asfloat+fieldbyname('保险费_本月实际').asfloat+fieldbyname('办公费_本月实际').asfloat;
row1:=row1+fieldbyname('培训费_本月实际').asfloat+fieldbyname('律师费_本月实际').asfloat+fieldbyname('员工福利_本月实际').asfloat+fieldbyname('物料消耗_本月实际').asfloat;
fieldbyname('合计_本月实际').asfloat:=row1+fieldbyname('通讯费_本月实际').asfloat+fieldbyname('运输费_本月实际').asfloat+fieldbyname('其他_本月实际').asfloat;
with Queryforuse do begin
if active then close;
unprepare;
sql.Clear;
sql.Add('select * from pub_z_fare where 编制单位=:office and 年=:year');
parambyname('office').AsString :=qfare.fieldbyname('编制单位').AsString ;
parambyname('year').AsString :=qfare.fieldbyname('年').AsString ;
prepare;
open;
row1:=0;
row2:=0;
row3:=0;
row4:=0;
row5:=0;
row6:=0;
row7:=0;
row8:=0;
row9:=0;
row10:=0;
row11:=0;
row12:=0;
row13:=0;
row14:=0;
row15:=0;
row16:=0;
while not eof do begin
if strtoint(fieldbyname('月').AsString)<=strtoint(qfare.fieldbyname('月').AsString) then
row1:=row1+fieldbyname('工资补贴_本月实际').asfloat;
row2:=row2+fieldbyname('佣金_本月实际').asfloat;
row3:=row3+fieldbyname('展览广告_本月实际').asfloat;
row4:=row4+fieldbyname('交际应酬_本月实际').asfloat;
row5:=row5+fieldbyname('国内交通_本月实际').asfloat;
row6:=row6+fieldbyname('海外交通_本月实际').asfloat;
row7:=row7+fieldbyname('保险费_本月实际').asfloat;
row8:=row8+fieldbyname('办公费_本月实际').asfloat;
row9:=row9+fieldbyname('培训费_本月实际').asfloat;
row10:=row10+fieldbyname('律师费_本月实际').asfloat;
row11:=row11+fieldbyname('员工福利_本月实际').asfloat;
row12:=row12+fieldbyname('物料消耗_本月实际').asfloat;
row13:=row13+fieldbyname('通讯费_本月实际').asfloat;
row14:=row14+fieldbyname('运输费_本月实际').asfloat;
row15:=row15+fieldbyname('其他_本月实际').asfloat;
// row16:=row16+fieldbyname('合计_本月实际').asfloat;
next;
end;
end;
fieldbyname('工资补贴_本年累计').asfloat:=row1;
fieldbyname('佣金_本年累计').asfloat:=row2;
fieldbyname('展览广告_本年累计').asfloat:=row3;
fieldbyname('交际应酬_本年累计').asfloat:=row4;
fieldbyname('国内交通_本年累计').asfloat:=row5;
fieldbyname('海外交通_本年累计').asfloat:=row6;
fieldbyname('保险费_本年累计').asfloat:=row7;
fieldbyname('办公费_本年累计').asfloat:=row8;
fieldbyname('培训费_本年累计').asfloat:=row9;
fieldbyname('律师费_本年累计').asfloat:=row10;
fieldbyname('员工福利_本年累计').asfloat:=row11;
fieldbyname('物料消耗_本年累计').asfloat:=row12;
fieldbyname('通讯费_本年累计').asfloat:=row13;
fieldbyname('运输费_本年累计').asfloat:=row14;
fieldbyname('其他_本年累计').asfloat:=row15;
// fieldbyname('合计_本年累计').asfloat:=row16;
row1:=fieldbyname('工资补贴_本年累计').asfloat+fieldbyname('佣金_本年累计').asfloat+fieldbyname('展览广告_本年累计').asfloat+fieldbyname('交际应酬_本年累计').asfloat;
row1:=row1+fieldbyname('国内交通_本年累计').asfloat+fieldbyname('海外交通_本年累计').asfloat+fieldbyname('保险费_本年累计').asfloat+fieldbyname('办公费_本年累计').asfloat;
row1:=row1+fieldbyname('培训费_本年累计').asfloat+fieldbyname('律师费_本年累计').asfloat+fieldbyname('员工福利_本年累计').asfloat+fieldbyname('物料消耗_本年累计').asfloat;
fieldbyname('合计_本年累计').asfloat:=row1+fieldbyname('通讯费_本年累计').asfloat+fieldbyname('运输费_本年累计').asfloat+fieldbyname('其他_本年累计').asfloat;
end;
end;
procedure Tfrm_fare.btn_prtClick(Sender: TObject);
begin
frp_fare:=Tfrp_fare.Create(application);
frp_fare.QuickRep1.Preview;
frp_fare.free;
end;
procedure Tfrm_fare.qfareAfterOpen(DataSet: TDataSet);
begin
with qfare do begin
first;
while not eof do begin
with quse do begin
if active then close;
unprepare;
sql.Clear;
sql.Add('select * from pub_z_fare where 编制单位=:bscmc and 年=:year and 月=:month');
parambyname('bscmc').AsString:=qfare.fieldbyname('编制单位').Asstring;
parambyname('year').asstring:=qfare.fieldbyname('年').Asstring;
parambyname('month').asstring:=qfare.fieldbyname('月').Asstring;
open;
//如果没有同样合同号和机型的记录,就插入。
if not findfirst then
// sql.Add('insert into crttbl_mainpay values(:htbh,:bscmc,:ywy,:xh,:tsh,:dj,:jk,:ysjbxf,:fjzzf,:tbgcjk,:jsf,:qt,:zg,:sh,:lr,:lrrq)')
//否则,更新数据。
else begin
sql.Add('update pub_z_fare set 合计_本年累计=:heji ');
sql.Add(' where 编制单位=:bscmc and 年=:year and 月=:month');
end;
parambyname('heji').ascurrency:=qfare.fieldbyname('合计_本年累计').ascurrency;
ExecSQL;
end;
next;
end;
end;
end;
procedure Tfrm_fare.FormDestroy(Sender: TObject);
begin
frm_fare:=nil;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -