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

📄 material_ck.pas

📁 服装厂管理系统源程序压缩包, 请耐心阅读提供的文件包含的内容
💻 PAS
📖 第 1 页 / 共 2 页
字号:
      execsql;
    except
      if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
      MsgErr(handle,'物料出库处理失败--2!');
      ckmat_flag:=false; exit;
    end;
  end;

  //如果该物料为需支付个人工资的则新记录3.4.
  if ADOQ_material.FieldValues['flag'] then
  begin
    tmp_event:=emp_name+'领料['+mat_name+']'+floattostr(ck_num)+'('+tmp_unit+')';
    //3.工人支出表中新增一条记录
    with ADOQ_tmp do
    begin
      close;sql.clear;
      sql.add('INSERT INTO brrow(empid, event, money, tmp_id)');
      sql.add(' VALUES (:empid,:event,:money,:tmp_id)');
      parameters.ParamValues['empid']:=emp_id;
      parameters.ParamValues['event']:=tmp_event;
      parameters.ParamValues['money']:=ck_num*ADOQ_material.FieldValues['price'];
      parameters.ParamValues['tmp_id']:=tmp_id;
      try
        execsql;
      except
        if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
        MsgErr(handle,'物料出库处理失败--3!');
        ckmat_flag:=false; exit;
      end;
    end;

    //4.企业收入流水账中新增一条记录
    with ADOQ_tmp do
    begin
      close;sql.clear;
      sql.add('INSERT INTO earning(event, money, tmp_id)');
      sql.add(' VALUES (:event,:money,:tmp_id)');
      parameters.ParamValues['event']:=tmp_event;
      parameters.ParamValues['money']:=ck_num*ADOQ_material.FieldValues['price'];
      parameters.ParamValues['tmp_id']:=tmp_id;
      try
        execsql;
      except
        if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
        MsgErr(handle,'物料出库处理失败--4!');
        ckmat_flag:=false; exit;
      end;
    end;                                                
  end;   //该物料为需支付个人工资的则新记录3.4.结束

  //提交数据库
  if not ckmat_flag then
  begin
    if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
    msgErr(handle,'物料 ['+mat_name+'] 发料  '+floattostr(ck_num)+'  '+tmp_unit+'失败,请重试--All!');
    exit;
  end;
  if ckmat_flag then
  if datamod.ADOCon.InTransaction then
  begin
    try
      datamod.ADOCon.CommitTrans;
    except
      msgErr(handle,'物料 ['+mat_name+'] 发料  '+floattostr(ck_num)+'  '+tmp_unit+'失败,请重试--All!');
      if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
      exit;
    end;
    msgok(handle,'物料 ['+mat_name+'] 发料  '+floattostr(ck_num)+'  '+tmp_unit+'成功!');
    SpinEdit_num.Text:='0';
    exit;
  end;

/////////////////////////////////////////////////
  //CALL DATABASE Pro_CK_Material STORE PROCEDURE
  //@empid int, @mat_id varchar(10),@num float,@tmp_id int,@event varchar(30)


{  with ADOSP_CK_Material do
  begin
    bool_flag:=DBCheckBox_flag.Checked;
    if bool_flag then tmp_event:=emp_name+'领料['+mat_name+']'+floattostr(ck_num)+'('+tmp_unit+')'
    else tmp_event:='';
    parameters.paramvalues['@empid']:=emp_id;
    parameters.paramvalues['@mat_id']:=mat_id;
    parameters.paramvalues['@num']:=ck_num;
    parameters.paramvalues['@tmp_id']:=tmp_id;
    parameters.paramvalues['@event']:=tmp_event;
    try
      execproc;
    except
      showmessage('存储过程执行失败(Pro_CK_Material),请重新操作!');
      exit;
    end;
    edit_kc_ret_1:=parameters.paramvalues['@RETURN_VALUE'];
    if edit_kc_ret_1=1 then
    begin
      msgok(handle,'物料 ['+mat_name+'] 发料  '+floattostr(ck_num)+'  '+tmp_unit+'成功!');
      SpinEdit_num.Text:='';
      exit;
    end;
    if edit_kc_ret_1=0 then
    begin
      msgErr(handle,'物料 ['+mat_name+'] 发料  '+floattostr(ck_num)+'  '+tmp_unit+'失败,请重试!');
      exit;
    end;
  end; }
end;

procedure TForm_Material_CK.LocateBtnClick(Sender: TObject);
var
tmpdatetime:Tdatetime;
begin
  if not panel5.Visible then
  begin
    panel5.Visible:=true;
    panel5.Enabled:=true;
    //得到出库日期
    GetHostDateTime(datamod.ADOCon,tmpdatetime);
    edate.DateTime:=tmpdatetime;
    Edit_id.Clear; Edit_name.Clear;
    Lookup_matype.Text:=''; DBLookup_operid.Text:='';
    Edit_empid.Clear; Edit_empname.Clear;
    edit1.Clear; edit2.Clear;
    ExtBtn.Cancel:=false;
    CancelBtn.cancel:=true;
  end;
end;

procedure TForm_Material_CK.CancelBtnClick(Sender: TObject);
begin
    panel5.Visible:=false;
    panel5.Enabled:=false;
    ExtBtn.Cancel:=true;
    CancelBtn.cancel:=false;
end;

procedure TForm_Material_CK.OKBtnClick(Sender: TObject);
var
tmpnum, tmpid, tmpname,tmpmatype, strwhere,
tmp_operid, emp_id, emp_name : string;
begin
  tmpid:=trim(Edit_id.text);
  tmpname:=trim(Edit_name.text);
  tmpmatype:=trim(Lookup_matype.Text);
  tmp_operid:=trim(DBLookup_operid.Text);
  emp_id:=trim(Edit_empid.Text);
  emp_name:=(Edit_empname.Text);
  tmpnum:=Getquery_char(ComboBox1.Text,trim(Edit1.Text),trim(ComboBox2.Text),ComboBox3.Text,trim(Edit2.Text),'num');

  //得到查询的条件语句
  begin
        strwhere:='and (a.ckdate between :TmpStart and :TmpEnd )';
        if tmpid<>'' then
        strwhere:=strwhere+' and (a.mat_id = '+''''+tmpid+''''+')';
        if tmpname<>'' then
        strwhere:=strwhere+' and (b.mat_name like '+''''+'%'+tmpname+'%'+''''+')';
        if tmpmatype<>'' then
        strwhere:=strwhere+' and (e.matype_name = '+''''+tmpmatype+''''+')';
        if tmp_operid<>'' then
        strwhere:=strwhere+' and (d.opername = '+''''+tmp_operid+''''+')';
        if emp_id<>'' then
        strwhere:= strwhere+' and (a.empid = '+''''+emp_id+''''+')';
        if emp_name<>'' then
        strwhere := strwhere +' and (c.empname like '+''''+'%'+emp_name+'%'+''''+')';
        strwhere:=strwhere + tmpnum;
  end;

  with ADOQ_ck_mate do
  begin
      try
         close;
         sql.Strings[2]:=strwhere;
         sql.Strings[3]:='order by e.matype_name, a.mat_id,a.ckdate,a.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,'数据库检索失败(Material_CK_Q)!');
         refreshdb;
         exit;
      end;
      BtnExport.Enabled:=recordcount>0;
  end;
    panel5.Visible:=false;
    panel5.Enabled:=false;
    ExtBtn.Cancel:=true;
    CancelBtn.cancel:=false;
end;

procedure TForm_Material_CK.BitBtn1Click(Sender: TObject);
begin
  if not adoq_ck_mate.Active then exit;
  refreshdb;
end;

procedure TForm_Material_CK.SerBtnClick(Sender: TObject);
begin
  edit4.Text:=trim(edit4.Text);
  if edit4.Text='' then begin edit4.SetFocus;exit;end;
  if not adoqemp.Locate('empid',edit4.Text,[]) then
  begin
      MsgErr(handle,'不存在编码为  ['+edit4.Text+']  的人员!');
      edit4.SetFocus;
  end;
end;

procedure TForm_Material_CK.Edit4KeyPress(Sender: TObject; var Key: Char);
begin
  if key=chr(13) then serbtn.Click;
end;

procedure TForm_Material_CK.Bit_Ser2Click(Sender: TObject);
begin
  edit3.Text:=trim(edit3.Text);
  if edit3.Text='' then begin edit3.SetFocus; exit;end;
  //查找对应的物料信息
  with ADOQ_material do
  begin
    close;
    sql.Strings[2]:='and a.mat_name like '+''''+'%'+edit3.Text+'%'+'''';
    open;
    if recordcount<0 then
    begin
      MsgErr(handle,'没找到名称为  ['+edit3.Text+']  的物料!');
      edit3.SetFocus;
    end;
  end;
end;

procedure TForm_Material_CK.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
  if key=chr(13) then Bit_Ser2.Click;
end;

//适时断开和连接数据表
procedure TForm_Material_CK.PageControl1Change(Sender: TObject);
begin
  if PageControl1.ActivePageIndex=0 then
  begin
    if adoq_ck_mate.Active then adoq_ck_mate.Close;
    SpinEdit_num.value:=0;
  end;
end;

procedure TForm_Material_CK.FormShow(Sender: TObject);
begin
    with ADOQ_tmp do
    begin
      close; sql.Clear;
      sql.Add('select matype_name from material_type');
      open;
      Lookup_matype.Items.Clear;
      DBLookupComboBox1.Items.Clear;
      Lookup_matype.Items.Add(' ');
      DBLookupComboBox1.Items.Add(' ');
      first;
      while not eof do
      begin
        Lookup_matype.Items.Add(fieldvalues['matype_name']);
        DBLookupComboBox1.Items.Add(fieldvalues['matype_name']);
        next;
      end;
      close; sql.Clear;
      sql.Add('select opername from operator');
      open;
      DBLookup_operid.Items.Clear;
      DBLookup_operid.Items.Add(' ');
      first;
      while not eof do
      begin
        DBLookup_operid.Items.Add(fieldvalues['opername']);
        next;
      end;
    end;
end;

procedure TForm_Material_CK.DBLookupComboBox1Change(Sender: TObject);
begin
  DBLookupComboBox1.Text:=trim(DBLookupComboBox1.Text);
  with ADOQ_material do
  begin
    close;
    if trim(DBLookupComboBox1.Text)='' then
    begin
      sql.Strings[2]:='';
      open; exit;
    end;
    sql.Strings[2]:='and b.matype_name=:matype_name';
    parameters.ParamValues['matype_name']:=trim(DBLookupComboBox1.Text);
    open;
  end;
end;

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

procedure TForm_Material_CK.BtnExportClick(Sender: TObject);
begin
  Form_main.WriteIntoExcel(DBGrid3,datetostr(date),'物料出库信息报表');
end;

end.

⌨️ 快捷键说明

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