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

📄 sequence_price.pas

📁 服装厂管理系统源程序压缩包, 请耐心阅读提供的文件包含的内容
💻 PAS
📖 第 1 页 / 共 2 页
字号:
          end;
        end;
      end;
      if temp_seqname<>edit_seqname then
      if find_record('sequence_price','ord_id','seq_name',temp_ordid,temp_seqname,info) then
      begin
        MsgOK(handle,'该订单批号下已存在该工序名称,请重新输入!');
        DBE_seq_name.SetFocus;
        exit;
      end;
      temp_key:=fieldvalues['temp_key'];
    end;//[dsedit].End
    if trim(DBEdit1.text)='' then fieldvalues['seq_price']:=0;
    if fieldvalues['seq_price']<0 then
    begin
      Msgok(handle,'请输入正确的工序加工工价!');
      DBEdit1.SetFocus; exit;
    end;         
    if not ToMoney(floattostr(FieldValues['seq_price']),info) then
    begin
      MsgErr(handle,'金额格式不对[0.00]!');
      DBEdit1.SetFocus; abort; exit;
    end;
    try
      post;
    except
      MsgErr(handle,'工序及工价信息操作失败!');
      exit;
    end;
    with ADOT_price do
    begin
      close; open;
      locate('temp_key',temp_key,[]);
    end;
  end;
end;

//[ADOT_seq_price]表取消编辑操作
procedure TForm_seq_price.CancelBtnClick(Sender: TObject);
begin
  if not ADOT_price.Active then exit;
  if not (ADOT_price.State in [dsedit,dsinsert]) then exit;
  ADOT_price.Cancel;
end;

//计算客供整件工价及厂内部的所有工序工价的总和
procedure Tform_seq_price.account_unitprice;
var
    temp_str:string;
    temp_number: real;
begin
  if DBLookupComboBox1.Text='' then exit;
  temp_str:=trim(DBLookupComboBox1.Text);
  try
    //到对应的订单信息表读取该订单的客供工价/件
    begin
      with Adoq_temp do
      begin
        Close; SQL.Clear;
        SQL.Add('select unit_price from order_msg where ord_id=:temp_ordid');
        Parameters.ParamValues['temp_ordid']:=temp_str;
        try
          execsql; Open;
          if recordcount<1 then edit1.Text:='¥0.00' else
          begin
            if Adoq_temp.FieldValues['unit_price']=null then Edit1.Text:='未知'
            else
            begin
              temp_number:=0;
              temp_number:=Adoq_temp.FieldValues['unit_price'];
              Edit1.Text:='¥'+format('%.2f',[temp_number]);
            end;
          end;
        except
          MsgErr(handle,'系统查找记录值失败!');
          edit1.Text:='¥0.00'; edit2.Text:='¥0.00';
        end;
      end;
    end;
    
    //到对应的工序工价表查找并计算同一批订单的所有工序工价的合计金额
    begin
      with Adoq_temp do
      begin
        Close; SQL.Clear;
        SQL.Add('select sum(seq_price) as total from sequence_price where ord_id=:temp_ordid');
        Parameters.ParamValues['temp_ordid']:=temp_str;
        try
          execsql; Open;
          if recordcount<1 then edit2.Text:='¥0.00' else
          begin
            if fieldvalues['total']=null then temp_number:=0
            else temp_number:=fieldvalues['total'];
            Edit2.Text:='¥'+format('%.2f',[temp_number]);
          end;
        except
          MsgErr(handle,'系统查找记录值失败!');
          edit1.Text:='¥0.00'; edit2.Text:='¥0.00';
          exit;
        end;
      end;
    end;
  except
    MsgErr(handle,'系统合计工价数据出错!');
    edit1.Text:='¥0.00'; edit2.Text:='¥0.00';
  end;
end;

//查找到对应的[ADOT_seq_price]表的数据及[ADOQ_order_msg]订单管理表的数据
procedure TForm_seq_price.PageControl1Change(Sender: TObject);
var unit_price, money:real;
begin
  if trim(DBLookupComboBox1.Text)='' then exit;
  if not ADOT_price.Active then exit;
  if PageControl1.ActivePageIndex=0 then refreshdb;
  if PageControl1.ActivePageIndex=0 then exit;
  if ADOT_price.State in [dsinsert, dsedit] then exit;
  if ADOT_price.RecordCount=0 then exit;
  Editcustmer.Clear; Editname.clear;
  Editcloth.Clear; Editnum.Clear;
  Editprice.Clear; Editmoney.Clear;
  //得到对应订单的信息
  with adoq_temp do
  begin
    close; sql.Clear;
    sql.Add('select ord_id,cust_name,clo_name,costume_name,num,unit_price,money');
    sql.Add(' from order_msg, customer, clothing ');
    sql.Add('where order_msg.clo_id=clothing.clo_id and customer.cust_id=order_msg.cust_id');
    sql.Add('and ord_id=:ord_id');
    parameters.ParamValues['ord_id']:=ADOT_price.FieldValues['ord_id'];
    execsql; open;
    if recordcount=0 then exit;    
    Editcustmer.text:=fieldvalues['cust_name'];
    Editname.text:=fieldvalues['costume_name'];
    Editcloth.text:=fieldvalues['clo_name'];
    Editnum.text:=inttostr(fieldvalues['num']);
    unit_price:=fieldvalues['unit_price'];
    money:=fieldvalues['money'];
    Editprice.Text:='¥'+format('%.2f',[unit_price]);
    Editmoney.Text:='¥'+format('%.2f',[money]);
  end;
end;

procedure TForm_seq_price.PageControl1Changing(Sender: TObject;
  var AllowChange: Boolean);
begin
  if (ADOT_price.State in [dsedit,dsinsert]) then
  begin
    MsgOK(handle,'数据库正处在操作状态,请先按 [取消] 按钮!');
    AllowChange:=false;
  end;
end;

procedure TForm_seq_price.DBLookup_ordidClick(Sender: TObject);
var
ord_id, seq_id:string;
begin
  ord_id:=trim(DBLookup_ordid.Text);
  if ADOT_price.State in [dsedit] then exit;
  if ord_id='' then exit;
  if not Get_seqid(ord_id, seq_id) then
  begin
    showmessage('自动生成工序编号失败,请重新选择订单批号!');
    DBLookup_ordid.SetFocus;
    exit;
  end;
  ADOT_price.FieldValues['seq_id']:=seq_id;
end;

procedure TForm_seq_price.DBLookupComboBox1KeyPress(Sender: TObject;
  var Key: Char);
begin
  if trim(DBLookupComboBox1.Text)='' then exit;
  if key<>chr(13) then exit;
  with adoq_temp do
  begin
    close; sql.Clear;
    sql.Add('select ord_id from order_msg where ord_id=:ord_id');
    parameters.ParamValues['ord_id']:=trim(DBLookupComboBox1.Text);
    execsql; open;
    if recordcount=0 then
    begin
      MsgErr(handle,'当前不存在该订单批号,请重新选择!');
      exit;
    end;
  end;
  refreshdb;
  ADOT_price.Filter:='ord_id='+''''+trim(DBLookupComboBox1.Text)+'''';
  adot_price.Filtered:=true;
  PrtBtn.Enabled:=ADOT_price.RecordCount>0;
  account_unitprice;
end;

procedure TForm_seq_price.DBLookupComboBox1Change(Sender: TObject);
begin
  DBLookupComboBox1.Text:=trim(DBLookupComboBox1.Text);
  edit1.Text:='¥0.00'; edit2.Text:='¥0.00';
end;

procedure TForm_seq_price.DBGrid1DblClick(Sender: TObject);
begin
  if not ADOT_price.Active then exit;
  if ADOT_price.RecordCount=0 then exit;
  PageControl1.ActivePageIndex:=1;
  PageControl1Change(self);
end;

procedure TForm_seq_price.FormShow(Sender: TObject);
begin
  add_ordid_item;
end;

procedure TForm_seq_price.DS_priceStateChange(Sender: TObject);
begin
  //[ADOT_seq_price]表内的数据在编辑状态下的控件的Enable状态
  if (Sender as TDataSource).DataSet.State in [dsedit,dsinsert] then
  Begin
    DBGrid1.Enabled:=false;
    Panel5.Enabled:=true;
    AddBtn.Enabled:=false;
    EdtBtn.Enabled:=false;
    DelBtn.Enabled:=false;
    DBE_seq_name.readonly:=false;
    dbe_seq_name.ParentColor:=false;
    DBE_seq_name.Color:=clwindow;
    DBEdit1.ReadOnly:=false;
    DBEdit1.ParentColor:=false;
    DBEdit1.Color:=clwindow;
    if (Sender as TDataSource).DataSet.State in [dsinsert] then
    begin
      DBLookup_ordid.ReadOnly:=false;
      DBLookup_ordid.ParentColor:=false;
      DBLookup_ordid.Color:=clwindow;
    end;
    if (Sender as TDataSource).DataSet.State in [dsedit] then
    begin
      DBLookup_ordid.ReadOnly:=true;
      DBLookup_ordid.ParentColor:=true;
    end;
    DBE_seq_name.SetFocus;
  end;

  //[ADOT_seq_price]表内的数据在浏览状态下的控件的Enable状态
  if (Sender as TDataSource).DataSet.State in [dsBrowse] then
  Begin
    DBLookup_ordid.Enabled:=true;
    DBLookup_ordid.ParentColor:=false;
    DBGrid1.Enabled:=true;
    Panel5.Enabled:=false;
    AddBtn.Enabled:=true;
    EdtBtn.Enabled:=true;
    DelBtn.Enabled:=true;
    DBE_seq_name.ReadOnly:=true;
    dbe_seq_name.ParentColor:=true;
    DBEdit1.ReadOnly:=true;
    DBEdit1.ParentColor:=true;
    DBLookup_ordid.ReadOnly:=true;
    DBLookup_ordid.ParentColor:=true;
  end;
end;

procedure TForm_seq_price.ADOT_priceAfterInsert(DataSet: TDataSet);
var unit_price, money:real;
begin
  if trim(DBLookupComboBox1.Text)<>'' then
  DataSet.FieldValues['ord_id']:=trim(DBLookupComboBox1.Text)
  else if trim(DBLookup_ordid.Text)<>'' then
  DataSet.FieldValues['ord_id']:=trim(DBLookup_ordid.Text);
  ADOT_price.FieldValues['seq_price']:=0.00;
  DBLookup_ordidClick(self);
  //得到对应订单的信息
  with adoq_temp do
  begin
    close; sql.Clear;
    sql.Add('select ord_id,cust_name,clo_name,costume_name,num,unit_price,money');
    sql.Add(' from order_msg, customer, clothing ');
    sql.Add('where order_msg.clo_id=clothing.clo_id and customer.cust_id=order_msg.cust_id');
    sql.Add('and ord_id=:ord_id');
    parameters.ParamValues['ord_id']:=ADOT_price.FieldValues['ord_id'];
    execsql; open;
    if recordcount=0 then exit;    
    Editcustmer.text:=fieldvalues['cust_name'];
    Editname.text:=fieldvalues['costume_name'];
    Editcloth.text:=fieldvalues['clo_name'];
    Editnum.text:=inttostr(fieldvalues['num']);
    unit_price:=fieldvalues['unit_price'];
    money:=fieldvalues['money'];
    Editprice.Text:='¥'+format('%.2f',[unit_price]);
    Editmoney.Text:='¥'+format('%.2f',[money]);
  end;
end;

procedure TForm_seq_price.ADOT_priceAfterEdit(DataSet: TDataSet);
begin
  edit_seqprice:=dataset.FieldValues['seq_price'];
  edit_seqname:=dataset.FieldValues['seq_name'];
end;

procedure TForm_seq_price.DBLookup_ordidChange(Sender: TObject);
var unit_price,money:real;
begin
  if not adot_price.Active then exit;
  if adot_price.State in [dsBrowse] then exit;
  if trim(DBLookup_ordid.Text)='' then exit;
  Editcustmer.Clear; Editname.clear;
  Editcloth.Clear; Editnum.Clear;
  Editprice.Clear; Editmoney.Clear;
  with adoq_temp do
  begin
    close; sql.Clear;
    sql.Add('select cust_name,clo_name,costume_name,num,unit_price,money');
    sql.Add(' from order_msg, customer, clothing ');
    sql.Add('where order_msg.clo_id=clothing.clo_id and customer.cust_id=order_msg.cust_id');
    sql.Add('and ord_id=:ord_id');
    parameters.ParamValues['ord_id']:=trim(DBLookup_ordid.Text);
    execsql; open;
    if recordcount=0 then exit;
    Editcustmer.text:=fieldvalues['cust_name'];
    Editname.text:=fieldvalues['costume_name'];
    Editcloth.text:=fieldvalues['clo_name'];
    Editnum.text:=inttostr(fieldvalues['num']);
    unit_price:=fieldvalues['unit_price'];
    money:=fieldvalues['money'];
    Editprice.Text:='¥'+format('%.2f',[unit_price]);
    Editmoney.Text:='¥'+format('%.2f',[money]);
  end;
end;

procedure TForm_seq_price.PrtBtnClick(Sender: TObject);
var costume_name, ord_id: string;
begin
  if not ADOT_price.Active then exit;
  if ADOT_price.RecordCount=0 then exit;
  costume_name:=adot_price.FieldValues['costume_name'];
  ord_id:=adot_price.FieldValues['ord_id'];
  InitPage(RvProject1,RvSystem1,apppath+'\'+ReportName,apppath+'\'+ReportNdrName,0);
  SelectPage(RvProject1,'Report1',9);
  //传递参数
  AddParameter(RvProject1,'ord_id',ord_id);
  AddParameter(RvProject1,'costume_name',costume_name);
  AddParameter(RvProject1,'UserName',curAdmin.user_name);
  AddParameter(RvProject1,'companyname',sysconfig.COMPANYANME);
  //显示页
  PageShow(RvProject1);
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -