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

📄 unitpypk.pas

📁 仓储系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
    else
    begin
      Parameters.ParamByName('@kw').value:=listkw[cbbkw.itemindex];//库位代码
    end;

    ExecProc;
  end;
  //---------------------------------------
  if isAdd then isAdd:=false;
  if isMod then isMod:=false;

  Panel2.Enabled:=false;

  btnadd.enabled:=true;
  btnadd.SetFocus;
  btnErase.enabled:=true;
  btnMod.enabled:=true;
  btnSave.enabled:=false;
  btnCancel.enabled:=false;

  Dm.qry_PyPk.EnableControls;
  Dm.qry_PyPk.close;
  Dm.qry_PyPk.open;
end;

procedure TfrmPyPk.btncancelClick(Sender: TObject);
begin
  if isAdd then isadd:=false;
  if isMod then isMod:=false;

  dm.qry_PyPk.enableControls;

  if btnCancel.caption='取消(&C)' then
  begin
    panel2.enabled:=false;
    edtStockNum.Enabled:=false;
    edtStockZJ.Enabled:=false;
    btnMx.Enabled:=true;
    btnGz.Enabled:=true;

    btnAdd.enabled:=true;
    btnErase.enabled:=true;
    btnMod.enabled:=true;
    btnSave.enabled:=false;
    btnCancel.enabled:=false;
  end;
  DM.qry_PyPk.EnableControls;

  DM.qry_PyPk.close;
  DM.qry_PyPk.open;
end;

procedure TfrmPyPk.cbbKfExit(Sender: TObject);
var
  i:integer;
begin
  if cbbkf.text='' then begin
    cbbKw.items.Clear;
    cbbKw.Text:='';
    exit;
  end;
  if btnCancel.Focused then
  begin
    btnCancel.onclick(sender);
    exit;
  end;
  if btnClose.focused   then
  begin
     btnClose.OnClick(Sender);
     exit;
  end;
  //
  with ADOQuery_sql do
  begin
    close;
    sql.clear;
    sql.add('select * from Storeposition where Storeroom_zip='+quotedstr(copy(cbbkf.text,1,2)));
    sql.add('order by StorePlace_zip');
    open;
    setlength(listKw,recordcount);
    cbbKw.Items.clear;
    for i:=0 to recordcount - 1 do
    begin
      listKw[i]:=fieldbyname('Storeplace_zip').asstring;
      cbbKw.items.Add(listKw[i]+' '+fieldbyname('Storeplace_name').asstring);
      next;
    end;
  end;
end;

procedure TfrmPyPk.edtPddhKeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
  begin
    key:=#0;
    perform(cm_dialogkey,vk_tab,0);
  end;
end;

procedure TfrmPyPk.edtBzKeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
  begin
    key:=#0;
    btnSave.setfocus;
  end;
end;

procedure TfrmPyPk.edtWlbmExit(Sender: TObject);
begin
  if btnCancel.Focused then
  begin
    btnCancel.onclick(sender);
    exit;
  end;
  if btnClose.focused   then
  begin
     btnClose.OnClick(Sender);
     exit;
  end;
  //
  with ADOQuery_sql do
  begin
    close;
    sql.Clear;
    sql.Add('select * from mate_basic where mate_code='''+trim(edtWlbm.text)+''' ');
    Open;
  end;
  if ADOQuery_sql.recordcount>0 then
  begin
    edtWlmc.text:=trim(ADOQuery_sql.fieldByName('Mate_Name').asstring);
    edtType.text:=trim(ADOQuery_sql.fieldByName('Mate_Type').asstring);
    edtStoreNum.text:=trim(ADOQuery_sql.fieldByName('Stoc_Amount').asstring);
  end else
  begin
    application.messagebox('    基础物料中不存在该物料编码,      '#13#10'请录入该数据!','提示',mb_ok+mb_iconwarning);
    edtWlbm.text:='';
    edtWlbm.setfocus;
    exit;
  end;
end;

procedure TfrmPyPk.sbtncodeClick(Sender: TObject);
begin
  frmSelectCodeNameType:=TfrmSelectCodeNameType.create(self);
  frmSelectCodeNameType.show;
end;

procedure TfrmPyPk.dsPyPkDataChange(Sender: TObject; Field: TField);
var
  str:string;
  i:integer;
begin
//----------Gys -----------Dept_id
  edtPddh.text:=dm.qry_PyPk.fieldbyname('Pd_Bill').asstring;

  edtwlbm.text:=dm.qry_PyPk.fieldbyname('Mate_Code').asstring;
  edtWlmc.text:=dm.qry_PyPk.fieldbyname('Mate_Name').asstring;
  edtType.text:=dm.qry_PyPk.fieldbyname('Mate_Type').asstring;
  edtStoreNum.text:=dm.qry_PyPk.fieldbyname('Stoc_Amount').asstring;

  if dm.qry_PyPk.fieldbyname('Pd_date').IsNull then
     dtpPd.Date:=now
  else
     dtpPd.date:=dm.qry_PyPk.fieldbyname('Pd_date').asdatetime;

  edtNum.text:=dm.qry_PyPk.fieldbyname('Pd_Amount').asstring;

  edtYkNum.text:=dm.qry_PyPk.fieldbyname('Yk_Amount').asstring;

  edtPdr.text:=dm.qry_PyPk.fieldbyname('pd_man').asstring;
  edtZdr.text:=dm.qry_PyPk.fieldbyname('Oper_id').asstring;
  edtBz.text:=dm.qry_PyPk.fieldbyname('Pd_Memo').asstring;

  //---------盘点类别-----------------------
  cbbPd.itemindex:=-1;
  str:=trim(DM.qry_PyPk.FieldByName('Pd_ClassNo').asstring);
  if high(listPd)>=0 then
  begin
    for i:=0 to high(listPd) do
    begin
      if listPd[i]=str then
      begin
        cbbPd.itemindex:=i;
        break;
      end;
    end;
  end;
  //---------部门-----------------------
  cbbDept.itemindex:=-1;
  str:=DM.qry_PyPk.FieldByName('Dept_id').asstring;
  if high(listDept)>=0 then
  begin
    for i:=0 to high(listDept) do
    begin
      if listDept[i]=str then
      begin
        cbbDept.itemindex:=i;
        break;
      end;
    end;
  end;
  //---------库房-----------------------
  cbbKf.itemindex:=-1;
  str:=DM.qry_PyPk.FieldByName('KfNo').asstring;
  if high(listKf)>=0 then
  begin
    for i:=0 to high(listKf) do
    begin
      if listKf[i]=str then
      begin
        cbbKf.itemindex:=i;
        break;
      end;
    end;
  end;
  //---------库位-----------------------
  cbbKw.itemindex:=-1;
  str:=DM.qry_PyPk.FieldByName('KwNo').asstring;
  if high(listKw)>=0 then
  begin
    for i:=0 to high(listKw) do
    begin
      if listKw[i]=str then
      begin
        cbbKw.itemindex:=i;
        break;
      end;
    end;
  end;
end;

procedure TfrmPyPk.FormShow(Sender: TObject);
var
  str:string;
begin
  str:=' select a.Pd_Bill,a.Pd_ClassNo,a.Pd_date,                     '+
       '     a.mate_code,b.mate_name,b.mate_type,a.Dept_id,           '+
       '        a.KfNo,a.KwNo,b.Stoc_Amount,a.Pd_Amount,a.Yk_Amount,a.Pd_Post,a.pd_man,a.Oper_id,a.Pd_Memo   '+
       '   from Mate_PyPk a                                                          '+
       '   left outer join mate_basic b on a.mate_code=b.mate_code   ';
  with dm.qry_PyPk do
  begin
    close;
    sql.clear;
    sql.add(str);
    open;
  end;
end;

procedure TfrmPyPk.edtNumExit(Sender: TObject);
begin
  edtYkNum.text:=floattostr(strtofloat(edtStoreNum.text)-strtofloat(edtNum.text));
end;

procedure TfrmPyPk.btnGzClick(Sender: TObject);
var
  seltotal,i:integer;
  myprocess:Tfrmprocess;
  //strdjh:string;
begin
  //根据入库单号、入库标志可直接判断出该单据是否已经过帐
  with dm.qry_PyPkGz do
  begin
    close;
    sql.Clear;
    sql.Add('select * from mate_PyPk where (Pd_bill='''+trim(edtPddh.text)+''')  and (pd_post=''Y'') ');
    open;
  end;
  if dm.qry_PyPkGz.recordcount>0 then
  begin
    application.MessageBox('该单据已经过帐!','警告',mb_ok+mb_iconwarning);
    exit;
  end else     //下面是没有过帐
  begin
     //用1个存储过程进行过帐,更新对应的入库单号的数量、核算价格、和入库单的过帐标志
     if not btnadd.Enabled then
     begin
      application.MessageBox('注意:'+#13#10+'  请先保存或取消当前未完成的工作!','警告',mb_ok+mb_iconwarning);
      exit;
     end;
     seltotal:=DBGrid1.SelectedRows.Count;

     if seltotal=0 then
     begin
       application.MessageBox('注意:'+#13#10+'  请先选择要过帐的单据记录!','提示',mb_ok+mb_iconinformation);
       exit;
     end else//选项不为空
     begin
       //显示进度条
       myprocess:=Tfrmprocess.create(application);
       try
         myprocess.show;
         myprocess.setposition(0);
         //获得选中的记录
         for i:=0 to seltotal - 1 do
         begin
           DM.qry_PyPk.Bookmark:=DBGrid1.SelectedRows.Items[i];
           //-------------------过帐--------------------------
           with dm.sp_PyPkGz do
           begin
             dm.sp_PyPkGz.ProcedureName:='Pd_gz;1';
             Parameters.Refresh;
             Parameters.ParamByName('@pddh').value:=edtpddh.Text;
             ExecProc;
           end;
           myprocess.closeprocess;
           DBGrid1.SelectedRows.Clear;
           DM.qry_PyPk.close;
           DM.qry_PyPk.open;
           application.MessageBox('所选入库单已全部过帐成功!!','提示',mb_ok+mb_iconinformation);
         end ;//end for
       finally
         myprocess.Free;
       end;      //end try
     end;
  end;
  dm.qry_PyPk.Close;
  dm.qry_PyPk.Open;
end;

procedure TfrmPyPk.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
  //未盘点的内容显示红色
  if trim(dm.qry_PyPk.FieldByName('Pd_Post').AsString)='N' then
  begin
    DBGrid1.Canvas.Font.Color:=clGreen;
    DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
  end;
end;

end.

⌨️ 快捷键说明

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