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

📄 upartsmove.pas

📁 天涯進銷存系統
💻 PAS
📖 第 1 页 / 共 2 页
字号:
procedure TfrmPartsMove.Action8Execute(Sender: TObject);
begin
  OpenData('Select * from DepotPartsMoveHand  Order by BillCode DESC',BillHandData);
  BillInfoLabel.Caption:=''
end;

procedure TfrmPartsMove.Action9Execute(Sender: TObject);
var
  i:integer;
begin
  i:=0;
  if (BillBodyData.RecordCount=1)and
   (PartCodeDBEdit.Text='')  then
  begin
    Application.MessageBox(NotPartsOfSave, Hintinfo,$30);
    Exit;
  end;
  BillBodyData.Edit;
  BillBodyData.Post;
  DBCtrlGrid.SetFocus;
  if BillHandData.FieldByName('OutPutDepotCode').AsString='' then
  begin
    Application.MessageBox('移出仓库不能为空,请输入。',Hintinfo,$30);
    OutPutDepotDBEdit.SetFocus;
    Exit;
  end;
  if BillHandData.FieldByName('InPutDepotCode').AsString='' then
  begin
    Application.MessageBox('移至仓库不能为空,请输入。',Hintinfo,$30);
    InPutDepotDBEdit.SetFocus;
    Exit;
  end;
  if BillHandData.FieldByName('BillDate').AsString='' then
  begin
    Application.MessageBox('移仓日期不能为空,请输入。',Hintinfo,$30);
    BillDateDBEdit.SetFocus;
    Exit;
  end;
  if not isEdit then
  begin
    BillHandData.Edit;
    BillHandData.Fieldbyname('BILLCode').asstring:=ComDepotCode+'-'+'YC'+'-'+
          GetBillID('40', BillHandData.Fieldbyname('BILLDATE').asstring);
  end;
  with BillBodyData do
  begin
    First;
    while not Eof do
    begin
      if Fieldbyname('PartCode').asstring<>'' then
      begin
        Edit;
        Fieldbyname('ID').asinteger:=i+1;
        Fieldbyname('OutPutQry').asfloat:=0;
        Fieldbyname('BILLCode').asstring:=BillHandData.Fieldbyname('BILLCode').asstring;
        i:=i+1;
        Next;
      end
      else
      begin
        BillHandData.Edit;
        BillHandData.FieldByName('TOTALSUM').asfloat:=
        BillHandData.FieldByName('TOTALSUM').asfloat-
        Fieldbyname('TOTALSUM').AsFloat;
        Delete;
        if BillBodyData.RecNo=BillBodyData.RecordCount  then
        Next;
      end;
    end;
  end;
  if BillBodyData.IsEmpty then
  begin
    Application.MessageBox(NotPartsOfSave,Hintinfo,$30);
    Exit;
  end;
  Try
    BillBodyData.ApplyUpdates(-1);
    BillHandData.ApplyUpDates(-1);
    Application.MessageBox(DataSaveOfSucceed,Hintinfo,$30);
  except
    Application.MessageBox(DataSaveOfFail, Errorinfo,$10);
    BillBodyData.CancelUpdates;
    BillHandData.CancelUpdates;
  end;
  BillBodyData.First;
  isStateEdit:=False;
  SetView;
  BillBodyData.ReadOnly:=True;
  BillHandData.ReadOnly:=True;
  Action5Execute(Sender);
end;

procedure TfrmPartsMove.Action10Execute(Sender: TObject);
begin
  DBCtrlGrid.SetFocus;
  BillBodyData.CancelUpdates;
  BillHandData.CancelUpdates;
  BillBodyData.First;
  Sum:=0;
  isStateEdit:=False;
  SetView;
  BillBodyData.ReadOnly:=True;
  BillHandData.ReadOnly:=True;
end;

procedure TfrmPartsMove.InPutDepotDBEditEnter(Sender: TObject);
begin
  if Not isStateEdit then Exit;
  OldDepotCode:=InPutDepotDBEdit.Text;
  SetIndexListData('select DepotCode, DepotName From Depot', InPutDepotDBEdit, 'DepotCode','DepotName');
  if Not dmData.sdsPublic.IsEmpty then isGetList:=True;
end;

procedure TfrmPartsMove.DBCtrlGridKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  key:=0;
end;

procedure TfrmPartsMove.LBSpeecButton3Click(Sender: TObject);
var
  BillCode: string;
begin
  if BillHandData.IsEmpty then
  begin
    Application.MessageBox('没有可删除的采购订货单。',Hintinfo,$30);
    Exit;
  end;
  if BillHandData.FieldByName('isAuditing').asstring='1' then
  begin
    Application.MessageBox('此采购订货单已审核,不可删除。',Hintinfo,$30);
    Exit;
  end;
  if Application.MessageBox('确定在要删除当前订货单吗?',Hintinfo,$24)=idYes then
  begin
    BillHandData.ReadOnly:=False;
    BillCode:=BillHandData.Fieldbyname('BillCode').asstring;
    try
      BillHandData.Delete;
      BillHandData.ApplyUpdates(-1);
      DeleteBillBody('Delete From OrderBillBody where BillCode='+#39+BillCode+#39);
      OpenData('select * from OrderBillHand Order by BillCode DESC',
               BillHandData);
    except
      Application.MessageBox('删除数据不成功。',Errorinfo,$10);
    end;
    BillHandData.ReadOnly:=True;
  end;
end;

procedure TfrmPartsMove.LBEditButton2Click(Sender: TObject);
begin
  if not isStateEdit then Exit;
  GetXoY(LBEditButton2);
  if BillHandData.Fieldbyname('BillDate').asDateTime>0 then
    sDate:=BillHandData.Fieldbyname('BillDate').asDateTime
  else
    sDate:=Date;
  SelectDate;
  BillHandData.Edit;
  BillHandData.FieldByName('BillDate').AsDateTime:=SDate;
end;

procedure TfrmPartsMove.PartCodeDBEditKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key=VK_DELETE then
  begin
    if BillBodyData.FieldByName('PartCode').asstring='' then
    begin
      Application.MessageBox('没有可删除的商品。',Hintinfo, $30);
      Exit;
    end;
    if Application.MessageBox('确定要删除本商品吗?',Hintinfo, $24)=idYes then
    begin
      BillBodyData.Delete;
    end;
  end;
  if (KEY=VK_INSERT) then
  begin
    BillAddPart(BillBodyData);
    PartCodeDBEditDblClick(Nil);
  end;
  if key=13 then
  begin
    DBCtrlGrid.SetFocus;
    PartNameDBEdit.SetFocus;
  end;
  BillKeyDown(Key, BillBodyData, 16);
end;

procedure TfrmPartsMove.PartNameDBEditKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  if Key=VK_DELETE then
  begin
    if BillBodyData.FieldByName('PartCode').asstring='' then
    begin
      Application.MessageBox('没有可删除的商品。',Hintinfo, $30);
      Exit;
    end;
    if Application.MessageBox('确定要删除本商品吗?',Hintinfo, $24)=idYes then
    begin
      BillBodyData.Delete;
    end;
  end;
  if (KEY=VK_INSERT) then
  begin
    BillAddPart(BillBodyData);
    PartCodeDBEditDblClick(Nil);
  end;
  if key=13 then
  begin
    DBCtrlGrid.SetFocus;
    ProducingDBEdit.SetFocus;
  end;  
  BillKeyDown(Key, BillBodyData, 16);
end;

procedure TfrmPartsMove.ProducingDBEditKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  if key=13 then
  begin
    DBCtrlGrid.SetFocus;
    UnitDBEdit.SetFocus;
  end;
  BillKeyDown(Key, BillBodyData, 16);
end;

procedure TfrmPartsMove.UnitDBEditKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key=13 then
  begin
    DBCtrlGrid.SetFocus;
    DepotPlaceDBEdit.SetFocus;
  end;  
  BillKeyDown(Key, BillBodyData, 16);
end;

procedure TfrmPartsMove.DepotPlaceDBEditKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  if key=13 then
  begin
    DBCtrlGrid.SetFocus;
    QuantityDBEdit.SetFocus;
  end;
  BillKeyDown(Key, BillBodyData, 16);
end;

procedure TfrmPartsMove.QuantityDBEditKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  if key=13 then
  begin
    DBCtrlGrid.SetFocus;
    if BillBodyData.Fieldbyname('PartCode').asstring='' then
    begin
      PartCodeDBEdit.SetFocus;
      Exit;
    end;
    if not isStateEdit then
    begin
      if BillBodyData.RecordCount>BillBodyData.RecNo then
        BillBodyData.Next;
      PartCodeDBEdit.SetFocus;
      Exit;
    end;
    BillBodyData.Next;
    PartCodeDBEdit.SetFocus;
    if BillBodyData.Eof then
    begin
      BillBodyData.Append;
      BillBodyData.Fieldbyname('BillCode').asstring:='新单据';
      BillBodyData.Fieldbyname('ID').asInteger:=BIllBodyData.RecordCount+1;
      BillBodyData.Post;
    end;  
  end;
  BillKeyDown(Key, BillBodyData, 16);
end;

procedure TfrmPartsMove.QuantityDBEditExit(Sender: TObject);
begin
  if not isStateEdit then Exit;
  if Trim(QuantityDBEdit.Text)='' then QuantityDBEdit.Text:='0';
  if StrTOFloat(QuantityDBEdit.Text)>BillBodyData.Fieldbyname('REIMBURSEQRY').asfloat then
  begin
    Application.MessageBox('退货数量不可大于收货数量。',Hintinfo,$30);
    BillBodyData.Edit;
    BillBodyData.FieldByName('Quantity').asfloat:=OldSaleQty;
    BillBodyData.Post;
    Exit;
  end;
  OpenData('select PartCode, BillQuantity From StockPart where PartCode='+
           #39+Trim(PartCodeDBEdit.Text)+#39+' and DepotCode='+
           #39+BillHandData.Fieldbyname('DepotCode').asstring+#39, dmData.sdsPublic);
  if dmData.sdsPublic.FieldByName('BillQuantity').asfloat<StrTOFloat(QuantityDBEdit.Text) then
    if Application.MessageBox('库存数量不足,是否继续?',Hintinfo,$24)=idNo then
    begin
      BillBodyData.Edit;
      BillBodyData.FieldByName('Quantity').asfloat:=OldSaleQty;
      BillBodyData.Post;
    end;
end;

procedure TfrmPartsMove.BillNextButtonClick(Sender: TObject);
begin
  if isStateEdit then Exit;
  BillHandData.Next;
  if BillHandData.RecNo=1 then
    BillHandData.Next;
  if BillHandData.RecordCount=BillHandData.RecNo then
  begin
    if BillHandData.GetNextPacket=0 then
      BillInfoLabel.Caption:='已经是移到第一张单据了!'
    else
      BillInfoLabel.Caption:='';
    BillHandData.Next;
  end
  else
    BillInfoLabel.Caption:='';
end;

procedure TfrmPartsMove.BillPriorButtonClick(Sender: TObject);
begin
  if isStateEdit then Exit;
  BillHandData.Prior;
  if BillHandData.RecNo=1 then
    BillHandData.Prior;
  if BillHandData.Bof then
    BillInfoLabel.Caption:='已经是移到最后一张单据了!'
  else
    BillInfoLabel.Caption:='';
end;

procedure TfrmPartsMove.BillDateDBEditKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  if (ssCtrl in Shift) and (Key=13) then
  begin
    LBEditButton2Click(Nil);
    Exit;
  end;
  if key=13 then  Perform(WM_NEXTDLGCTL,0,0);
end;

procedure TfrmPartsMove.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key=27 then Close;
  if not isStateEdit then
  begin
    if key=VK_LEFT then BillNextButtonClick(Sender);
    if key=VK_RIGHT then BillPriorButtonClick(Sender);
  end;   
end;

procedure TfrmPartsMove.InPutDepotDBEditKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  if key=13 then  Perform(WM_NEXTDLGCTL,0,0);
end;

procedure TfrmPartsMove.InPutDepotDBEditExit(Sender: TObject);
begin
  if not isStateEdit then Exit;
  if (Trim(InPutDepotDBEdit.Text)<>'')
  and (Trim(InPutDepotDBEdit.Text)<> OldDepotCode) and (isGetList) then
  begin
    BillHandData.Edit;
    TObject(List):=InPutDepotDBEdit.Items.Objects[InPutDepotDBEdit.ItemIndex];
    BillHandData.FieldByName('InPutDepotCode').asstring:=List.Code;
  end;
end;

procedure TfrmPartsMove.EXECUTEMANDBEditKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  if key=13 then  PartCodeDBEdit.SetFocus;
end;

procedure TfrmPartsMove.QuantityDBEditEnter(Sender: TObject);
begin
  if not isStateEdit then Exit;
  if Trim(QuantityDBEdit.Text)='' then QuantityDBEdit.Text:='0';
     OldSaleQty:=StrToFloat(QuantityDBEdit.Text);
end;

procedure TfrmPartsMove.EXECUTEMANDBEditEnter(Sender: TObject);
begin
  if not isStateEdit then Exit;
    SetListData('select Name From Employee', EXECUTEMANDBEdit);
end;

procedure TfrmPartsMove.OutPutDepotDBEditEnter(Sender: TObject);
begin
  if Not isStateEdit then Exit;
  OldDepotCode:=OutPutDepotDBEdit.Text;
  SetIndexListData('select DepotCode, DepotName From Depot', OutPutDepotDBEdit, 'DepotCode','DepotName');
  if Not dmData.sdsPublic.IsEmpty then isGetList:=True;
end;

procedure TfrmPartsMove.OutPutDepotDBEditExit(Sender: TObject);
begin
  if not isStateEdit then Exit;
  if (Trim(OutPutDepotDBEdit.Text)<>'')
  and (Trim(OutPutDepotDBEdit.Text)<> OldDepotCode) and (isGetList) then
  begin
    BillHandData.Edit;
    TObject(List):=OutPutDepotDBEdit.Items.Objects[OutPutDepotDBEdit.ItemIndex];
    BillHandData.FieldByName('OutPutDepotCode').asstring:=List.Code;
  end;
end;

procedure TfrmPartsMove.OutPutDepotDBEditChange(Sender: TObject);
begin
  if not isStateEdit then Exit;
  if InPutDepotDBEdit.Text=OutPutDepotDBEdit.Text then
  begin
    Application.MessageBox('移出和移入库存不可相同。',Hintinfo, $30);
    OutPutDepotDBEdit.Clear;
    Exit; 
  end;
end;

procedure TfrmPartsMove.InPutDepotDBEditChange(Sender: TObject);
begin
  if not isStateEdit then Exit;
  if InPutDepotDBEdit.Text=OutPutDepotDBEdit.Text then
  begin
    Application.MessageBox('移出和移入库存不可相同。',Hintinfo, $30);
    InPutDepotDBEdit.Clear;
    Exit; 
  end;
end;

procedure TfrmPartsMove.PartCodeDBEditDblClick(Sender: TObject);
begin
  if not isStateEdit then Exit;
  SelectPartType:=7;
  SelectPartCds:=BillBodyData;
  SelectParts;
  OldCode:=Trim(PartCodeDBEdit.Text);
end;

end.

⌨️ 快捷键说明

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