📄 inv510_02.pas.svn-base
字号:
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 + -