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

📄 material_rk.pas

📁 服装厂管理系统源程序压缩包, 请耐心阅读提供的文件包含的内容
💻 PAS
📖 第 1 页 / 共 2 页
字号:
      parameters.ParamValues['rkdate']:=rk_date;
      try
        execsql;
      except
        if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
        MsgErr(handle,'物料入库处理失败--1!');
        rkmat_flag:=false; exit;
      end;
  end
  else
  //如果时间没改变则入库时间默认为服务器时间
  with ADOQ_tmp do
  begin
      close;sql.clear;
      sql.add('insert into rk_material(mat_id,num,tmp_id)');
      sql.add('values(:mat_id,:num,:tmp_id)');
      parameters.ParamValues['mat_id']:=mat_id;
      parameters.ParamValues['num']:=rk_num;
      parameters.ParamValues['tmp_id']:=tmp_id;
      try
        execsql;
      except
        if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
        MsgErr(handle,'物料入库处理失败--1!');
        rkmat_flag:=false; exit;
      end;
  end;

  //2.更新物料库存表的库存量
  with ADOQ_tmp do
  begin
    close; sql.clear;
    //如果库存表存在则更新记录
    if kc_flag then
    begin
      sql.Add('update kc_material set num=num+:rk_num where (mat_id=:mat_id)');
    end;
    //如果库存表不存在该服装成品的数据则新增一条记录
    if not kc_flag then
    begin
      close;sql.clear;
      sql.add('insert into kc_material(mat_id, num ) values(:mat_id, :rk_num)');
    end;
    //确保数据的安全性Start
    if rk_num=null then rk_num:=0;
    parameters.ParamValues['mat_id']:=mat_id;
    parameters.ParamValues['rk_num']:=rk_num;
    try
      execsql;
    except
      if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
      MsgErr(handle,'物料入库处理失败--2!');
      rkmat_flag:=false; exit;
    end;
  end;//2.End

  //提交数据库
  if not rkmat_flag then
  begin
    if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
    MsgErr(handle,'物料入库表处理失败4!(ADOQ_rk_material)');
    exit;
  end;
  if rkmat_flag then
  if datamod.ADOCon.InTransaction then
  begin
    try
        datamod.ADOCon.CommitTrans;
    except
        MsgErr(handle,'物料入库表处理失败4!(ADOQ_rk_material)');
        if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
        exit;
    end;
    msgok(handle,'物料 ['+mat_name+'] 入库  '+floattostr(rk_num)+'  '+tmp_unit+'成功!');
    //将最后物料入库时间赋给全局时间变量:[com_rk_date]
    com_rk_date:=rk_date;
    SpinEdit_num.Value:=0;
  end;
//********************************************
//********************************************
//********************************************
end;

procedure TForm_Material_RK.BitBtn_showRKClick(Sender: TObject);
var
RK_date: Tdatetime;
begin
  if panel1.Visible then exit;
  panel2.Visible:=false;
  panel1.Visible:=true;
  BtnExport.Enabled:=false;
  if ADOQ_rk_material.Active then ADOQ_rk_material.Close;
  BitBtn_showRK.Enabled:=false;
  BitBtn1.Enabled:=false;
  BitBtn_RK.Default:=true;
  OKBtn.Default:=false;
  DetailBtn.Enabled:=true;
  LocateBtn.Enabled:=true;
  GetHostDateTime(datamod.ADOCon,RK_date);
  datep_rkdate.Date:=RK_date;
  SpinEdit_num.Value:=0;
  dbgrid1.SetFocus;
end;

procedure TForm_Material_RK.DetailBtnClick(Sender: TObject);
begin
  if PageControl1.ActivePageIndex<>0 then PageControl1.ActivePageIndex:=0;
  panel1.Visible:=false;
  panel2.Visible:=true;
  DetailBtn.Enabled:=false;
  LocateBtn.Enabled:=true;
  BitBtn1.Enabled:=true;
  BitBtn_showRK.Enabled:=true;
end;

procedure TForm_Material_RK.LocateBtnClick(Sender: TObject);
var tmpdatetime:TDateTime;
begin
  if PageControl1.ActivePageIndex<>0 then PageControl1.ActivePageIndex:=0;
  if panel1.Visible then panel1.Visible:=false;
  if not panel2.Visible then panel2.Visible:=true;
  if not panel4.Visible then
  begin
    panel4.Enabled:=true;
    panel4.Visible:=true;
    DetailBtn.Enabled:=true;
    BitBtn_showRK.Enabled:=true;
    LocateBtn.Enabled:=false;
    BitBtn1.Enabled:=true;
    ExtBtn.Cancel:=false;
    //得到入库日期
    GetHostDateTime(datamod.ADOCon,tmpdatetime);
    edate.DateTime:=tmpdatetime;
    Edit_id.Clear; Edit_name.clear;
    DBLookup_operid.Text:='';
    Lookup_matype.Text:='';
    edit1.Clear;edit2.clear;
    BitBtn_RK.Default:=false;
    OKBtn.Default:=true;
  end;
end;

procedure TForm_Material_RK.CancelBtnClick(Sender: TObject);
begin
  Panel4.Enabled:=false;
  Panel4.Visible:=false;
  LocateBtn.Enabled:=true;
  BitBtn_showRK.Enabled:=true;
  LocateBtn.Enabled:=true;
  DetailBtn.Enabled:=false;
  ExtBtn.Cancel:=true;
end;

procedure TForm_Material_RK.OKBtnClick(Sender: TObject);
var
tmpnum, tmpid, tmpname, //Bool_str, TmpStart, tmpend,
tmpmatype, strwhere, tmp_operid: string;
begin
  //得到入库日期.End
  tmpid:=trim(Edit_id.text);
  tmpname:=trim(Edit_name.text);
  tmp_operid:=trim(DBLookup_operid.Text);
  tmpmatype:=trim(Lookup_matype.Text);
  tmpnum:=Getquery_char(ComboBox1.Text,trim(Edit1.Text),trim(ComboBox2.Text),ComboBox3.Text,trim(Edit2.Text),'num');

  //得到查询的条件语句
  begin
        strwhere:='and (a.rkdate between :TmpStart and :TmpEnd )';
//        strwhere:=strwhere+'and (mat_id in (select mat_id from material where flag = '+''''+bool_str+''''+')'+')';
        if tmpid<>'' then
        strwhere:=strwhere+' and (a.mat_id = '+''''+tmpid+''''+')';
        if tmpname<>'' then
        strwhere:=strwhere+' and (b.mat_name like '+''''+'%'+tmpname+'%'+''''+')';
        if tmp_operid<>'' then
        strwhere:=strwhere+' and (c.opername = '+''''+tmp_operid+''''+')';
        if tmpmatype<>'' then   
        strwhere:=strwhere+' and (d.matype_name = '+''''+tmpmatype+''''+')';
        strwhere:=strwhere + tmpnum;
  end;

  with ADOQ_rk_material do
  begin
      try
         close;
         sql.Strings[2]:=strwhere;
         sql.Strings[3]:='order by d.matype_name, a.mat_id,a.rkdate,a.num desc';
         parameters.ParamValues['TmpStart']:=strtodatetime(formatdatetime('yyyy-mm-dd',sdate.Date)+' 0:00:00');
         parameters.ParamValues['TmpEnd']:=strtodatetime(formatdatetime('yyyy-mm-dd',edate.Date)+' 23:59:59');
         execsql;
         open;
      except
         MsgErr(handle,'数据库检索失败(Material_RK_Q)!');
         refreshdb;
         exit;
      end;
      BtnExport.Enabled:=recordcount>0;
  end;
  Panel4.Visible:=false;
  Panel4.Enabled:=false;
  LocateBtn.Enabled:=true;
  DetailBtn.Enabled:=false;
  BitBtn_showRK.Enabled:=true;
  ExtBtn.Cancel:=true;
end;

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

procedure TForm_Material_RK.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_RK.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
  if key=chr(13) then Bit_Ser2.Click;
end;

procedure TForm_Material_RK.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']:=DBLookupComboBox1.Text;
    open;
  end;
end;

procedure TForm_Material_RK.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_RK.DS_rk_material_QDataChange(Sender: TObject;
  Field: TField);
  var flag_bool:boolean;
begin
  if not panel2.Visible then exit;
  if (sender as Tdatasource).DataSet.RecordCount=0 then exit;
  if (sender as Tdatasource).DataSet.FieldValues['flag'] then
  flag_bool:=true else flag_bool:=false;
  DBCheckBox1.Checked:=flag_bool;
  if flag_bool then
  begin
    Label_price_1.Visible:=true;
    DBE_price_1.Visible:=true;
    Label_3.Visible:=true;
  end
  else
  begin
    Label_price_1.Visible:=false;
    DBE_price_1.Visible:=false;
    Label_3.Visible:=false;
  end;
end;

procedure TForm_Material_RK.DBGrid2DblClick(Sender: TObject);
begin
  if not adoq_rk_material.Active then exit;
  if adoq_rk_material.Recordcount=0 then exit;
  PageControl1.ActivePageIndex:=1;
end;

procedure TForm_Material_RK.datep_rkdateChange(Sender: TObject);
var rk_date:Tdatetime;
begin
  GetHostDateTime(datamod.ADOCon,RK_date);
  datep_rkdate.Time:=StrToTimeDef('hh-mm-ss',RK_date);
end;

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

procedure TForm_Material_RK.DBCheckBox_flagClick(Sender: TObject);
var flag_bool:boolean;
begin
  flag_bool:=DBCheckBox_flag.Checked;
  if flag_bool then
  begin
    Label_price.Visible:=true;
    DBE_price.Visible:=true;
    Label20.Visible:=true;
  end
  else
  begin
    Label_price.Visible:=false;
    DBE_price.Visible:=false;
    Label20.Visible:=false;
  end;
end;

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

end.

⌨️ 快捷键说明

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