⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainpay.pas

📁 主要是介绍DELPHI三层应用以及分布式数据库的应用
💻 PAS
📖 第 1 页 / 共 2 页
字号:
        //使一些按钮失效
        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 + -