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

📄 inv510_02.pas.svn-base

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 SVN-BASE
📖 第 1 页 / 共 3 页
字号:
  HwSelDataForm.OpenSelData(qryInv100A,nil);
  if HwSelDataForm.ShowModal=1 then
  begin
    edtOutWhs.Text:=qryInv100A.FieldByName('I100_002').AsString;
    edtOutWhsName.Text:=qryInv100A.FieldByName('I100_003').AsString;
  end;
end;

procedure TInv510_02Form.edtOutWhsExit(Sender: TObject);
begin
  inherited;
//转出仓库
  if trim(edtOutWhs.Text)='' then Exit;
  if qryInv100A.Locate('I100_002',edtOutWhs.Text,[]) then
  begin
    edtOutWhs.Text:=qryInv100A.FieldByName('I100_002').AsString;
    edtOutWhsName.Text:=qryInv100A.FieldByName('I100_003').AsString;
  end else
  begin
    ShowMsg('UMS10000607');  //输入的仓库编号无效
    edtOutWhs.Text:='';
    edtOutWhsName.Text:='';
    edtOutWhs.SetFocus;
    Abort;
  end;
end;

procedure TInv510_02Form.sbInWhsClick(Sender: TObject);
begin
  inherited;
//转入仓库
  if not edtInWhs.Focused then edtInWhs.SetFocus;
  HwSelDataForm:=THwSelDataForm.Create(Application);
  HwSelDataForm.OpenSelData(qryInv100B,nil);
  if HwSelDataForm.ShowModal=1 then
  begin
    edtInWhs.Text:=qryInv100B.FieldByName('I100_002').AsString;
    edtInWhsName.Text:=qryInv100B.FieldByName('I100_003').AsString;
  end;
end;

procedure TInv510_02Form.edtInWhsExit(Sender: TObject);
begin
  inherited;
//转入仓库
  if trim(edtInWhs.Text)='' then Exit;
  if qryInv100A.Locate('I100_002',edtInWhs.Text,[]) then
  begin
    edtInWhs.Text:=qryInv100A.FieldByName('I100_002').AsString;
    edtInWhsName.Text:=qryInv100A.FieldByName('I100_003').AsString;
  end else
  begin
    ShowMsg('UMS10000607');  //输入的仓库编号无效
    edtInWhs.Text:='';
    edtInWhsName.Text:='';
    edtInWhs.SetFocus;
    Abort;
  end;
end;

procedure TInv510_02Form.ADOQuery1I510A_014GetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin
  inherited;
  if ADOQuery1.IsEmpty then Exit;
  if Sender.AsBoolean then Text:=APost[1] else Text:=APost[0];
end;

procedure TInv510_02Form.wwDBGrid1Exit(Sender: TObject);
begin
  inherited;
  OnKeyDown:=AKeyEvent;
end;

procedure TInv510_02Form.wwDBGrid1Enter(Sender: TObject);
begin
  inherited;
  OnKeyDown:=nil;
end;

procedure TInv510_02Form.edtItemCustomDlg(Sender: TObject);
var
  AWhsNo,ACustNo,ATypeNo:Integer;
  AType:String;
  AQty:Double;
begin
  inherited;
//料品编号
  if not qryInv100A.Locate('I100_002',edtOutWhs.Text,[]) then
  begin
    ShowMsg('UMS10000445');  //必须先输入正确的仓库编号
    edtOutWhs.SetFocus;
    Abort;
  end;
  AWhsNo:=qryInv100A.FieldByName('I100_001').AsInteger;
  ACustNo:=0;
  ATypeNo:=15;
  AType:='INV501';  //0=手工输入

  HwSelDataAForm:=THwSelDataAForm.Create(Application);
  HwSelDataAForm.OpenData(AType,AWhsNo,ACustNo,ATypeNo);
  if HwSelDataAForm.ShowModal=1 then
  begin
    ABusy:=True;
    adsInv510B.Last;
    with HwSelDataAForm do
    begin
      adsInv150.DisableControls;
      adsInv150.First;
      while adsInv150.Locate('FSel',-1,[]) do
      begin
        adsInv510B.Append;
        adsInv510B.FieldByName('FItemNo').Value:=adsInv150.FieldByName('FItemNo').AsInteger;
        adsInv510B.FieldByName('FItemID').Value:=adsInv150.FieldByName('FItemID').AsString;
        adsInv510B.FieldByName('FItemName').Value:=adsInv150.FieldByName('FItemName').AsString;
        adsInv510B.FieldByName('FItemSpec').Value:=adsInv150.FieldByName('FItemSpec').AsString;
        adsInv510B.FieldByName('FUnitNo').Value:=adsInv150.FieldByName('FUnitNo').AsInteger;
        adsInv510B.FieldByName('FUnitID').Value:=adsInv150.FieldByName('FUnitID').AsString;
        adsInv510B.FieldByName('FUnitName').Value:=adsInv150.FieldByName('FUnitName').AsString;
        if adsInv150.FindField('FUnitRate')<>nil then
          adsInv510B.FieldByName('FUnitRate').Value:=adsInv150.FieldByName('FUnitRate').AsString;
        if adsInv150.FindField('FLocID')<>nil then
        begin
          adsInv510B.FieldByName('FLocNo').Value:=adsInv150.FieldByName('FLocNo').AsInteger;
          adsInv510B.FieldByName('FLocID').Value:=adsInv150.FieldByName('FLocID').AsString;
          adsInv510B.FieldByName('FLocName').Value:=adsInv150.FieldByName('FLocName').AsString;
        end;

        adsInv510B.FieldByName('FQty').Value:=1;
        if AType<>'INV150' then
        begin
          adsInv510B.FieldByName('FPrice').Value:=adsInv150.FieldByName('FPrice').AsFloat;
          adsInv510B.FieldByName('FAmount').Value:=adsInv150.FieldByName('FPrice').AsFloat;
        end;
        AQty:=adsInv150.FieldByName('FBanlance').AsFloat;
        adsInv510B.FieldByName('FOrdQty').Value:=AQty;
        adsInv510B.Post;

        adsInv150.Edit;
        adsInv150.FieldByName('FSel').Value:=0;
        adsInv150.Post;
      end;
      adsInv150.EnableControls;
    end;
    ABusy:=False;
  end;
end;

procedure TInv510_02Form.edtOutLocIDCustomDlg(Sender: TObject);
begin
  inherited;
//转出库位
  HwSelDataForm:=THwSelDataForm.Create(Application);
  HwSelDataForm.OpenSelData(qryInv110A,nil);
  if HwSelDataForm.ShowModal=1 then
  begin
    if qryInv110A.IsEmpty then Exit;
    if not (adsInv510B.State in [dsInsert,dsEdit]) then
      if adsInv510B.IsEmpty then adsInv510B.Append else adsInv510B.Edit;
    adsInv510B.FieldByName('FLocNo').Value:=qryInv110A.FieldByName('I110_001').AsInteger;
    adsInv510B.FieldByName('FLocID').Value:=qryInv110A.FieldByName('I110_003').AsString;
    adsInv510B.FieldByName('FLocName').Value:=qryInv110A.FieldByName('I110_004').AsString;
  end;
end;

procedure TInv510_02Form.edtInLocIDCustomDlg(Sender: TObject);
begin
  inherited;
//转入库位
  HwSelDataForm:=THwSelDataForm.Create(Application);
  HwSelDataForm.OpenSelData(qryInv110B,nil);
  if HwSelDataForm.ShowModal=1 then
  begin
    if qryInv110B.IsEmpty then Exit;
    if not (adsInv510B.State in [dsInsert,dsEdit]) then
      if adsInv510B.IsEmpty then adsInv510B.Append else adsInv510B.Edit;
    adsInv510B.FieldByName('FLocNo').Value:=qryInv110B.FieldByName('I110_001').AsInteger;
    adsInv510B.FieldByName('FLocID').Value:=qryInv110B.FieldByName('I110_003').AsString;
    adsInv510B.FieldByName('FLocName').Value:=qryInv110B.FieldByName('I110_004').AsString;
  end;
end;

procedure TInv510_02Form.edtUnitCustomDlg(Sender: TObject);
begin
  inherited;
//计量单位
  HwSelDataForm:=THwSelDataForm.Create(Application);
  HwSelDataForm.OpenSelData(qryInv140,nil);
  if HwSelDataForm.ShowModal=1 then
  begin
    if qryInv140.IsEmpty then Exit;
    if not (adsInv510B.State in [dsInsert,dsEdit]) then
      if adsInv510B.IsEmpty then adsInv510B.Append else adsInv510B.Edit;
    adsInv510B.FieldByName('FUnitNo').Value:=qryInv140.FieldByName('I140_001').AsInteger;
    adsInv510B.FieldByName('FUnitID').Value:=qryInv140.FieldByName('I140_002').AsString;
    adsInv510B.FieldByName('FUnitName').Value:=qryInv140.FieldByName('I140_003').AsString;
  end;
end;

procedure TInv510_02Form.adsInv510BBeforePost(DataSet: TDataSet);
begin
  inherited;
//数据有效性检验
  CheckItem;
  CheckUnit;
  CheckOutLoc;
  CheckInLoc;
  CheckQty;
end;

procedure TInv510_02Form.wwDBGrid1ColExit(Sender: TObject);
begin
  inherited;
//数据有效性检验
  if wwDBGrid1.GetActiveField.FieldName='FItemID' then
  begin
    CheckItem;
  end else
  if wwDBGrid1.GetActiveField.FieldName='FUnitID' then
  begin
    CheckUnit;
  end else
  if wwDBGrid1.GetActiveField.FieldName='FOutLocID' then
  begin
    CheckOutLoc;
  end else
  if wwDBGrid1.GetActiveField.FieldName='FInLocID' then
  begin
    CheckInLoc;
  end else
  if wwDBGrid1.GetActiveField.FieldName='FQty' then
  begin
    CheckQty;
  end;
end;

procedure TInv510_02Form.CheckItem;
begin
  if not ActSave.Enabled then Exit;
  if not (adsInv510B.State in [dsInsert,dsEdit]) then adsInv510B.Edit;
  if qryInv150.Locate('I150_002',adsInv510BFItemID.Value,[]) then
  begin
    adsInv510BFItemNo.AsInteger:=qryInv150.FieldByName('I150_001').AsInteger;
    adsInv510BFItemID.AsString:=qryInv150.FieldByName('I150_002').AsString;
    adsInv510BFItemName.AsString:=qryInv150.FieldByName('I150_003').AsString;
    adsInv510BFItemSpec.AsString:=qryInv150.FieldByName('I150_004').AsString;
    adsInv510BFUnitNo.AsInteger:=qryInv150.FieldByName('I140_001').AsInteger;
    adsInv510BFUnitID.AsString:=qryInv150.FieldByName('I140_002').AsString;
    adsInv510BFUnitName.AsString:=qryInv150.FieldByName('I140_003').AsString;
  end else
  begin
    ShowMsg('UMS10000267');  //输入的产品编号无效
    wwDBGrid1.SetActiveField('FItemID');
    Abort;
  end;
end;

procedure TInv510_02Form.CheckOutLoc;
begin
  if not ActSave.Enabled then Exit;
  if ABusy then Exit;
  if not (adsInv510B.State in [dsInsert,dsEdit]) then adsInv510B.Edit;
  if qryInv110A.Locate('I110_003',adsInv510BFOutLocID.AsString,[]) then
  begin
    adsInv510BFOutLocNo.AsInteger:=qryInv110A.FieldByName('I110_001').AsInteger;
    adsInv510BFOutLocID.AsString:=qryInv110A.FieldByName('I110_003').AsString;
    adsInv510BFOutLocName.AsString:=qryInv110A.FieldByName('I110_004').AsString;
  end else
  begin
    ShowMsg('UMS10000625');  //输入的库位编号无效
    wwDBGrid1.SetActiveField('FOutLocID');
    Abort;
  end;
end;

procedure TInv510_02Form.CheckInLoc;
begin
  if not ActSave.Enabled then Exit;
  if ABusy then Exit;
  if not (adsInv510B.State in [dsInsert,dsEdit]) then adsInv510B.Edit;
  if qryInv110B.Locate('I110_003',adsInv510BFINLocID.AsString,[]) then
  begin
    adsInv510BFInLocNo.AsInteger:=qryInv110B.FieldByName('I110_001').AsInteger;
    adsInv510BFInLocID.AsString:=qryInv110B.FieldByName('I110_003').AsString;
    adsInv510BFInLocName.AsString:=qryInv110B.FieldByName('I110_004').AsString;
  end else
  begin
    ShowMsg('UMS10000625');  //输入的库位编号无效
    wwDBGrid1.SetActiveField('FInLocID');
    Abort;
  end;
end;

procedure TInv510_02Form.CheckQty;
begin
  if not ActSave.Enabled then Exit;
  if adsInv510B.FieldByName('FOrdQty').AsFloat=0 then Exit;
  if adsInv510B.FieldByName('FOrdQty').AsFloat<adsInv510B.FieldByName('FQty').AsFloat then
  begin
    ShowMsg('UMS10000626');  //输入的进出数量不能大于应收发量
    wwDBGrid1.SetActiveField('FQty');
    Abort;
  end;
end;

procedure TInv510_02Form.CheckUnit;
begin
  if not ActSave.Enabled then Exit;
  if not qryInv150.Locate('I150_002',adsInv510BFItemID.Value,[]) then
  begin
    ShowMsg('UMS10000422');  //必须先输入正确的产品编号
    wwDBGrid1.SetActiveField('FItemID');
    Abort;
  end;
  if not (adsInv510B.State in [dsInsert,dsEdit]) then adsInv510B.Edit;
  if qryInv140.Locate('I140_002',adsInv510BFUnitID.AsString,[]) then
  begin
    adsInv510BFUnitNo.AsInteger:=qryInv140.FieldByName('I140_001').AsInteger;
    adsInv510BFUnitID.AsString:=qryInv140.FieldByName('I140_002').AsString;
    adsInv510BFUnitName.AsString:=qryInv140.FieldByName('I140_003').AsString;
  end else
  begin
    ShowMsg('UMS10000411');  //输入的计量单位无效
    wwDBGrid1.SetActiveField('FUnitID');
    Abort;
  end;
end;

end.

⌨️ 快捷键说明

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