📄 mainpay.pas
字号:
//使一些按钮失效
DisableBtn;
btn_save.Enabled :=true;
btn_cancel.Enabled :=true;
end;
//取消操作
procedure TFrm_mainpay.btn_cancelClick(Sender: TObject);
begin
tbmaintb.Cancel ;
lockedit;
enablebtn;
btn_cancel.Enabled :=false;
btn_save.Enabled :=false;
end;
//删除当前条数据
procedure TFrm_mainpay.btn_deleteClick(Sender: TObject);
begin
if tbmaintb.RecordCount <>0 then
tbmaintb.Delete ;
tbmaintb.ApplyUpdates ;
lockedit;
enablebtn;
//btn_delete.Enabled :=false;
btn_save.Enabled :=false;
end;
//***************以上是按纽操作。*********************
//***************打开数据集********************
procedure TFrm_mainpay.FormCreate(Sender: TObject);
begin
lockedit;
enablebtn;
if not tbmaintb.active then tbmaintb.open;
if not qmainvw.active then qmainvw.open
else begin
qmainvw.Close ;
qmainvw.open;
end;
//通过queryuse读出合同列表。
with queryuse do begin
if active then close;
unprepare;
sql.Clear;
sql.Add('select 合同号 from pub_z_contract');
prepare;
open;
while not eof do begin
DBComboBox1.Items.Add(fieldbyname('合同号').Asstring);
next;
end;
end;
end;
//全览计算结果
procedure TFrm_mainpay.btn_brsClick(Sender: TObject);
begin
//自动更新数据
if qmainvw.active then qmainvw.close;
if not qmainvw.active then qmainvw.open;
qmainvw.Filtered :=false;
DBGrid1.DataSource:=dsmainvw;
//qmainvw.filtered:=false;
end;
//查询计算结果
procedure TFrm_mainpay.btn_qryClick(Sender: TObject);
var
qitem,q1,q2,q3:string;
begin
q1 :=cbht.Text;
q2 :=cbbsc.Text;
q3 :=cbywy.Text;
//如果没有设置条件,给出提示:
if (q1='') and (q2='') and (q3='')
then application.MessageBox('您还没有设置查询条件呢!','提示',MB_OK)
else begin //将输入加工成条件段
if not(cbht.Text='') then
begin
q1:=cbht.Text;
q1:=' 合同号='''+q1+''' ';
end
else
q1:='';
if not(cbbsc.Text='') then
begin
q2:=cbbsc.Text;
q2:=' 所属办事处='''+q2+''' ';
end
else
q2:='';
if not(cbywy.Text='') then
begin
q3:=cbywy.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 qmainvw 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_mainpay.btn_clrClick(Sender: TObject);
begin
cbht.Text :='';
cbbsc.Text :='';
cbywy.Text :='';
end;
//生成"特别工程价款"字段的值
function TFrm_mainpay.gettbgcjk():real;
var
total:real;
begin
total:=0;
with queryuse do begin
if active then close;
unprepare;
sql.Clear;
sql.Add('SELECT 合计 FROM PUB_Z_CONTRACT_PROJECT WHERE 所属机型=:JX and 合同号=:HTH');
parambyname('JX').AsString:=qmainvw.fieldbyname('机型').Asstring;
parambyname('HTH').asstring:=qmainvw.fieldbyname('合同号').Asstring;
prepare;
open;
first;
while not eof do
begin
total:=total+fieldbyname('合计').Asfloat;
next;
end;
result:= total
end;
end;
//调用上面函数,计算字段。
procedure TFrm_mainpay.qmainvwCalcFields(DataSet: TDataSet);
begin
qmainvw.fieldbyname('特别工程价款').AsFloat:=gettbgcjk();
end;
//将计算结果保存到表 crttbl_mainpay 中,以备后面计算用。
procedure TFrm_mainpay.qmainvwAfterOpen(DataSet: TDataSet);
begin
with queryuse do begin
if active then close;
unprepare;
sql.Clear;
sql.Add('delete from crttbl_mainpay');
ExecSQL;
end;
with qmainvw do begin
first;
while not eof do begin
with queryuse do begin
if active then close;
unprepare;
sql.Clear;
sql.Add('insert into crttbl_mainpay values(:htbh,:bscmc,:ywy,:xh,:tsh,:dj,:jk,:ysjbxf,:fjzzf,:tbgcjk,:jsf,:qt,:zg,:sh,:lr,:lrrq)');
parambyname('htbh').AsString:=qmainvw.fieldbyname('合同号').Asstring;
parambyname('xh').asstring:=qmainvw.fieldbyname('机型').Asstring;
parambyname('bscmc').asstring:=qmainvw.fieldbyname('所属办事处').Asstring;
parambyname('ywy').AsString:=qmainvw.fieldbyname('业务员').Asstring;
parambyname('tsh').Asinteger:=qmainvw.fieldbyname('台数').asinteger;
parambyname('dj').ascurrency:=qmainvw.fieldbyname('单价').ascurrency;
parambyname('jk').ascurrency:=qmainvw.fieldbyname('价款').ascurrency;
parambyname('ysjbxf').ascurrency:=qmainvw.fieldbyname('运输及保险费').ascurrency;
parambyname('fjzzf').ascurrency:=qmainvw.fieldbyname('附加装置费').ascurrency;
parambyname('tbgcjk').ascurrency:=qmainvw.fieldbyname('特别工程价款').ascurrency;
parambyname('jsf').asfloat:=qmainvw.fieldbyname('介绍费').asfloat;
parambyname('qt').ascurrency:=qmainvw.fieldbyname('其他').ascurrency;
parambyname('zg').AsString:=qmainvw.fieldbyname('主管').Asstring;
parambyname('sh').asstring:=qmainvw.fieldbyname('审核').Asstring;
parambyname('lr').AsString:=qmainvw.fieldbyname('录入').Asstring;
parambyname('lrrq').Asdatetime:=qmainvw.fieldbyname('录入日期').Asdatetime;
ExecSQL;
end;
next;
end;
end;
end;
procedure TFrm_mainpay.TabSheet2Enter(Sender: TObject);
begin
//给出查询页的下拉列表。
with queryuse 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;
with queryuse do begin
if active then close;
unprepare;
sql.Clear;
sql.Add('select 合同号 from pub_z_contract');
prepare;
open;
cbht.Items.Clear ;
while not Eof do begin
cbht.Items.Add(FieldByName('合同号').AsString);
Next;
end;
end;
with queryuse do begin
if active then close;
unprepare;
sql.Clear;
sql.Add('select 姓名 from pub_z_stuff where 岗位=''业务员''');
prepare;
open;
cbywy.Items.Clear ;
while not Eof do begin
cbywy.Items.Add(FieldByName('姓名').AsString);
Next;
end;
end;
end;
procedure TFrm_mainpay.btn_prtClick(Sender: TObject);
begin
frp_mainpay:=Tfrp_mainpay.Create(application);
frp_mainpay.QuickRep1.Preview;
frp_mainpay.free;
end;
procedure TFrm_mainpay.FormDestroy(Sender: TObject);
begin
Frm_mainpay:=nil;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -