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

📄 order_info.pas

📁 服装厂管理系统源程序压缩包, 请耐心阅读提供的文件包含的内容
💻 PAS
📖 第 1 页 / 共 2 页
字号:
      if trim(dbe_l.Text)='' then begin temp_num_l:=0; dbe_l.Text:='0' end
      else temp_num_l:=strtoint(dbe_l.Text);
      if trim(dbe_XL.Text)='' then begin temp_num_Xl:=0; dbe_XL.Text:='0' end
      else temp_num_Xl:=strtoint(dbe_Xl.Text);
      if trim(dbe_XXl.Text)='' then begin temp_num_XXl:=0; dbe_xxl.Text:='0' end
      else temp_num_XXL:=strtoint(dbe_XXl.Text);
      if trim(dbe_XXXl.Text)='' then begin temp_num_XXXl:=0; dbe_XXXl.Text:='0' end
      else temp_num_XXXl:=strtoint(dbe_XXXl.Text);
    end;
    
    if (State in [dsinsert]) and (temp_ordid='') then
    begin
      showmessage('订单批号不能为空!!!');
      DBE_ord_id.SetFocus;
      exit;
    end;
    if temp_costume='' then
    begin
      showmessage('服装名称不能为空!!!');
      dbe_costume.SetFocus;
      exit;
    end;

    if trim(DBLookup_cust_name.Text)='' then
    begin
      Msgok(handle,'客户名称不能为空!');
      DBLookup_cust_name.SetFocus;
      exit;
    end;

    if trim(DBLookup_clo_name.Text)='' then
    begin
      Msgok(handle,'服装类别不能为空!');
      DBLookup_clo_name.SetFocus;
      exit;
    end;

//检测所输入的日期的合法性
{    if trim(DBE_order_date.Text)<>'' then
    if not check_dateformat(trim(DBE_order_date.Text)) then begin DBE_order_date.SetFocus; exit; end;
    if trim(DBE_expect_date.Text)<>'' then
    if not check_dateformat(trim(DBE_expect_date.Text)) then begin DBE_expect_date.SetFocus; exit; end;
    if trim(DBE_complete_date.Text)<>'' then
    if not check_dateformat(trim(DBE_complete_date.Text)) then begin DBE_complete_date.SetFocus; exit; end;
}
    if (temp_num='') or (strtoint(temp_num)=0) then
    begin
      showmessage('请输入该批订单的服装数量!');
      dbe_num.SetFocus;
      exit;
    end;
    if (State in [dsinsert]) and findRec('order_msg','ord_id',temp_ordid,info) then
    begin
      MsgOK(handle,'该订单批号已存在,致数据不可更新!');
      DBE_ord_id.SetFocus;
      exit;
    end;
    temp_sum_num:=temp_num_S + temp_num_M + temp_num_L + temp_num_xl + temp_num_XXl + temp_num_xxxl;
    if strtoint(temp_num)<>temp_sum_num then
    begin
      MsgOK(handle,'订单总数与各大小型号服装数量明细不一致,请重新输入!');
      DBE_num.SetFocus;
      exit;
    end;

    if fieldvalues['unit_price']<=0 then
    if MsgQst(handle,'建议客供工价为真实数据,因涉及到公司收入的计算,要继续保存吗?')=idNo then
    begin
      DBE_price.SetFocus;
      exit;
    end;
    if fieldvalues['unit_price']>0 then
    begin
      if not ToMoney(floattostr(FieldValues['unit_price']),info) then
      begin
        MsgErr(handle,'金额格式不对[0.00]!');
        DBE_price.SetFocus; abort; exit;
      end;
    end;
    if (DBE_price.Text<>'') then
    begin
      temp_money:=fieldvalues['unit_price'] * strtoint(temp_num);
      DBE_money.Text:=floattostr(temp_money);
    end
    else DBE_money.Text:='';
    
    if trim(DBEdit_unit.Text)='' then DBEdit_unit.Text:='件';
    try
      post;
    except
      MsgErr(handle,'订单信息操作失败!');
      exit;
    end;
    invalidation_control;
  end;
end;

procedure TForm_order_info.DBE_SKeyPress(Sender: TObject; var Key: Char);
begin
//  if not (key in ['0'..'9',#13,#8]) then abort;
end;

procedure TForm_order_info.PageControl1Change(Sender: TObject);
begin
   if PageControl1.ActivePageIndex=0 then
   begin
    LocateBtn.Enabled:=true;
    refreshdb;
   end
   else LocateBtn.Enabled:=false;
end;

//根据客户名称及服装名称得到订单批号
procedure TForm_order_info.BitBtn_ordidClick(Sender: TObject);
var tmpstr:string;
len_str:integer;
begin
  if trim(DBLookup_cust_name.Text)='' then
  begin
    MsgOk(handle,'请先确认该订单的客户名称!');
    DBLookup_cust_name.SetFocus;
    exit;
  end;
  if trim(DBLookup_clo_name.Text)='' then
  begin
    MsgOk(handle,'请先确认该订单所属的服装类别!');
    DBLookup_clo_name.SetFocus;
    exit;
  end;

  tmpstr:=getstringpy(trim(DBLookup_cust_name.Text));
  if length(tmpstr)>3 then tmpstr:=copy(tmpstr,1,3)+'-'
  else tmpstr:=tmpstr+'-';
  tmpstr:=tmpstr+copy(getstringpy(trim(DBLookup_clo_name.Text)),1,2);
  with ADOQtmp do
  begin
    close; sql.Clear;                                 
    sql.Add('select ord_id from order_msg where ord_id like '+''''+'%'+tmpstr+'%'+'''');
    sql.Add('order by ord_id desc');
    execsql; open;
    len_str:=length(tmpstr);
    if recordcount=0 then
    tmpstr:=tmpstr+copy('00000000000',1,9-len_str)+'1'
    else
    begin
      first;
      tmpstr:=fieldvalues['ord_id'];
    end;
  end;
  ADOQ_order_msg.FieldValues['ord_id']:=tmpstr;
end;

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

procedure TForm_order_info.DBGrid1DblClick(Sender: TObject);
begin
  if ADOQ_order_msg.RecordCount=0 then exit;
  PageControl1.ActivePageIndex:=1;
end;

procedure TForm_order_info.LocateBtnClick(Sender: TObject);
var
tmpdatetime:Tdatetime;
begin
  if PageControl1.ActivePageIndex<>0 then PageControl1.ActivePageIndex:=0;
  if not panel5.Visible then
  begin
    panel5.Enabled:=true;
    panel5.Visible:=true;
    //得到下单日期
    GetHostDateTime(datamod.ADOCon,tmpdatetime);
    edate.DateTime:=tmpdatetime;
    Edit_ordid.Clear; Edit_name.Clear;
    edit1.Clear; edit2.Clear;
    ComBox_cloname.Text:='';
    ComBox_custname.Text:='';
    ExtBtn.Cancel:=false;
    EndBtn.cancel:=true;
  end;
end;

procedure TForm_order_info.EndBtnClick(Sender: TObject);
begin
    panel5.Visible:=false;
    panel5.Enabled:=false;
    ExtBtn.Cancel:=true;
    EndBtn.cancel:=false;
end;

procedure TForm_order_info.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in ['0'..'9',#13, #8]) then abort;
end;

procedure TForm_order_info.OKBtnClick(Sender: TObject);
var
tmpnum, ordid, costume_name,clotype,
cust_name, strwhere: string;
begin
  ordid:=trim(Edit_ordid.text);
  costume_name:=trim(Edit_name.Text);
  clotype:=trim(ComBox_cloname.Text);
  cust_name:=trim(ComBox_custname.Text);
  tmpnum:=Getquery_char(ComboBox1.Text,trim(Edit1.Text),trim(ComboBox2.Text),ComboBox3.Text,trim(Edit2.Text),'num');

  //得到查询的条件语句
  begin
        strwhere:='where (order_date between :TmpStart and :TmpEnd )';
        if ordid<>'' then
        strwhere:=strwhere+' and (ord_id = '+''''+ordid+''''+')';
        if costume_name<>'' then
        strwhere:=strwhere+' and (costume_name like '+''''+'%'+costume_name+'%'+''''+')';
        if clotype<>'' then
        strwhere:=strwhere+' and (clo_id in (select clo_id from clothing where clo_name = '+''''+clotype+''''+')'+')';
        if cust_name<>'' then
        strwhere:=strwhere+' and (cust_id in (select cust_id from customer where cust_name = '+''''+cust_name+''''+')'+')';
        strwhere:=strwhere + tmpnum;
  end;

  with ADOQ_order_msg do
  begin
      try
         close;
         sql.Strings[1]:=strwhere;
         sql.Strings[2]:='order by clo_id,cust_id,order_date,num desc';
         parameters.ParamValues['TmpStart']:=strtodatetime(formatdatetime('yyyy-mm-dd',sdate.Date)+' 00:00:00');
         parameters.ParamValues['TmpEnd']:=strtodatetime(formatdatetime('yyyy-mm-dd',edate.Date)+' 23:59:59');
         execsql;
         open;
      except
         MsgErr(handle,'数据库检索失败(Order_msg_Q)!');
         refreshdb;
         exit;
      end;
  end;
    panel5.Visible:=false;
    panel5.Enabled:=false;
    ExtBtn.Cancel:=true;
    CancelBtn.cancel:=false;
end;

procedure TForm_order_info.FormShow(Sender: TObject);
begin
    with ADOQtmp do
    begin
      close; sql.Clear;
      sql.Add('select clo_name from clothing');
      open;
      ComBox_cloname.Items.Clear;
      ComBox_cloname.Items.Add(' ');
      first;
      while not eof do
      begin
        ComBox_cloname.Items.Add(fieldvalues['clo_name']);
        next;
      end;
      close; sql.Clear;
      sql.Add('select cust_name from customer');
      open;
      ComBox_custname.Items.Clear;
      ComBox_custname.Items.Add(' ');
      first;
      while not eof do
      begin
        ComBox_custname.Items.Add(fieldvalues['cust_name']);
        next;
      end;
    end;
end;

procedure TForm_order_info.ADOQ_order_msgAfterInsert(DataSet: TDataSet);
var
order_date: Tdatetime;
begin
  GetHostDateTime(datamod.ADOCon,order_date);
  ADOQ_order_msg.FieldValues['order_date']:=order_date;
  ADOQ_order_msg.FieldValues['unit']:='件';
end;

end.

⌨️ 快捷键说明

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