📄 inv600_02.pas.svn-base
字号:
qryInv600B.FieldByName('I600B_007').Value:=adsInv600B.FieldByName('FIsFinish').Value;
qryInv600B.Post;
adsInv600B.Next;
end;
end;
//打印报表的多语种处理
procedure TInv600_02Form.ReportGetValue(const ParName: String;
var ParValue: Variant);
begin
inherited;
end;
//取得明细表数据
procedure TInv600_02Form.GetDetailData;
begin
ALastNo:=0;
adsInv600B.Close;
adsInv600B.CreateDataSet;
qryInv600B.Close;
qryInv600B.SQL.Clear;
qryInv600B.SQL.Add('select A.*,B.I110_003,B.I110_004,C.I150_002,C.I150_003,C.I150_004,D.I140_002,D.I140_003');
qryInv600B.SQL.Add('from ((INV600B A left join INV110 B on A.I600B_004=B.I110_001) left join INV150 C on A.I600B_003=C.I150_001) left join INV140 D on C.I150_011=D.I140_001');
qryInv600B.SQL.Add('where I600B_001='+''''+edtCode.Text+'''');
qryInv600B.SQL.Add('order by I600B_002');
qryInv600B.Open;
while not qryInv600B.Eof do
begin
adsInv600B.Append;
adsInv600B.FieldByName('FNo').Value:=qryInv600B.FieldByName('I600B_002').Value;
adsInv600B.FieldByName('FItemNo').Value:=qryInv600B.FieldByName('I600B_003').Value;
adsInv600B.FieldByName('FItemID').Value:=qryInv600B.FieldByName('I150_002').Value;
adsInv600B.FieldByName('FItemName').Value:=qryInv600B.FieldByName('I150_003').Value;
adsInv600B.FieldByName('FItemSpec').Value:=qryInv600B.FieldByName('I150_004').Value;
adsInv600B.FieldByName('FUnitID').Value:=qryInv600B.FieldByName('I140_002').Value;
adsInv600B.FieldByName('FUnitName').Value:=qryInv600B.FieldByName('I140_003').Value;
adsInv600B.FieldByName('FLocNo').Value:=qryInv600B.FieldByName('I600B_004').Value;
adsInv600B.FieldByName('FLocID').Value:=qryInv600B.FieldByName('I110_003').Value;
adsInv600B.FieldByName('FLocName').Value:=qryInv600B.FieldByName('I110_004').Value;
adsInv600B.FieldByName('FQty').Value:=qryInv600B.FieldByName('I600B_005').Value;
adsInv600B.FieldByName('FIsPrint').Value:=qryInv600B.FieldByName('I600B_006').Value;
adsInv600B.FieldByName('FIsFinish').Value:=qryInv600B.FieldByName('I600B_007').Value;
adsInv600B.Post;
ALastNo:=qryInv600B.FieldByName('I600B_002').AsInteger;
qryInv600B.Next;
end;
end;
procedure TInv600_02Form.edtItemIDCustomDlg(Sender: TObject);
var
I,AWhsNo:Integer;
AIsFound:Boolean;
begin
inherited;
//料品查询
if not qryInv100.Locate('I100_002',edtWhs.Text,[]) then
begin
ShowMsg('UMS10000445'); //必须先输入正确的仓库编号
edtWhs.SetFocus;
Abort;
end;
AWhsNo:=qryInv100.FieldByName('I100_001').AsInteger;
if not edtItemID.Focused then edtItemID.SetFocus;
HwSelDataAForm:=THwSelDataAForm.Create(Application);
HwSelDataAForm.OpenData('INV501',AWhsNo,0,0);
if HwSelDataAForm.ShowModal=1 then
begin
adsInv600B.Last;
I:=adsInv600B.FieldByName('FNo').AsInteger;
with HwSelDataAForm do
begin
adsInv150.First;
while not adsInv150.Eof do
begin
if adsInv150.FieldByName('FSel').Value=-1 then
begin
I:=I+1;
if adsInv150.FieldByName('FLocID').AsString='' then
AIsFound:=adsInv600B.Locate('FItemID',adsInv150.FieldByName('FItemID').AsString,[])
else
AIsFound:=adsInv600B.Locate('FItemID;FLocID',VarArrayOf([adsInv150.FieldByName('FItemID').AsString,adsInv150.FieldByName('FLocID').AsString]),[]);
if AIsFound then adsInv600B.Edit else adsInv600B.Append;
adsInv600B.FieldByName('FNo').Value:=I;
adsInv600B.FieldByName('FItemNo').Value:=adsInv150.FieldByName('FItemNo').Value;
adsInv600B.FieldByName('FItemID').AsString:=adsInv150.FieldByName('FItemID').AsString;
adsInv600B.FieldByName('FItemName').AsString:=adsInv150.FieldByName('FItemName').AsString;
adsInv600B.FieldByName('FItemSpec').AsString:=adsInv150.FieldByName('FItemSpec').AsString;
adsInv600B.FieldByName('FUnitID').AsString:=adsInv150.FieldByName('FUnitID').AsString;
adsInv600B.FieldByName('FUnitName').AsString:=adsInv150.FieldByName('FUnitName').AsString;
adsInv600B.FieldByName('FLocNo').Value:=adsInv150.FieldByName('FLocNo').Value;
adsInv600B.FieldByName('FLocID').AsString:=adsInv150.FieldByName('FLocID').AsString;
adsInv600B.FieldByName('FLocName').AsString:=adsInv150.FieldByName('FLocName').AsString;
adsInv600B.FieldByName('FQty').Value:=adsInv150.FieldByName('FQty').Value;
adsInv600B.FieldByName('FIsPrint').Value:=False;
adsInv600B.FieldByName('FIsFinish').Value:=False;
adsInv600B.Post;
end;
adsInv150.Next;
end;
end;
end;
end;
procedure TInv600_02Form.sbWhsClick(Sender: TObject);
begin
inherited;
//仓库查询
if not edtWhs.Focused then edtWhs.SetFocus;
qryInv100.Close;
qryInv100.Open;
HwSelDataForm:=THwSelDataForm.Create(Application);
HwSelDataForm.OpenSelData(qryInv100,nil);
if HwSelDataForm.ShowModal=1 then
begin
edtWhs.Text:=qryInv100.FieldByName('I100_002').AsString;
edtWhsName.Text:=qryInv100.FieldByName('I100_003').AsString;
qryInv501.Close;
qryInv501.SQL.Clear;
qryInv501.SQL.Add('select A.*,I100_002,I100_003,I110_003,I110_004,I150_002,I150_003,I150_004,I140_002,I140_003');
qryInv501.SQL.Add('from ((((INV501 A left join INV100 B on A.I501_001=B.I100_001)');
qryInv501.SQL.Add(' left join INV110 C on A.I501_002=C.I110_001)');
qryInv501.SQL.Add(' left join INV150 D on A.I501_003=D.I150_001)');
qryInv501.SQL.Add(' left join INV140 E on D.I150_011=E.I140_001)');
qryInv501.SQL.Add('where I100_002='+''''+edtWhs.Text+'''');
qryInv501.SQL.Add('order by I100_002,I110_003,I150_002');
qryInv501.Open;
end;
end;
procedure TInv600_02Form.wwDBGrid1UpdateFooter(Sender: TObject);
begin
inherited;
ADODataSet1.Clone(adsInv600B);
edtQty.Text:=FloatToStrF(ADODataSet1.RecordCount,ffNumber,10,0);
wwDBGrid1.ColumnByName('FItemID').FooterValue:=GetDBString('COM00004002')+edtQty.Text; //记录总数
end;
procedure TInv600_02Form.edtWhsExit(Sender: TObject);
begin
inherited;
//仓库查询
if trim(edtWhs.Text)='' then Exit;
if qryInv100.Locate('I100_002',edtWhs.Text,[]) then
begin
edtWhs.Text:=qryInv100.FieldByName('I100_002').AsString;
edtWhsName.Text:=qryInv100.FieldByName('I100_003').AsString;
qryInv501.Close;
qryInv501.SQL.Clear;
qryInv501.SQL.Add('select A.*,I100_002,I100_003,I110_003,I110_004,I150_002,I150_003,I150_004,I140_002,I140_003');
qryInv501.SQL.Add('from ((((INV501 A left join INV100 B on A.I501_001=B.I100_001)');
qryInv501.SQL.Add(' left join INV110 C on A.I501_002=C.I110_001)');
qryInv501.SQL.Add(' left join INV150 D on A.I501_003=D.I150_001)');
qryInv501.SQL.Add(' left join INV140 E on D.I150_011=E.I140_001)');
qryInv501.SQL.Add('where I100_002='+''''+edtWhs.Text+'''');
qryInv501.SQL.Add('order by I100_002,I110_003,I150_002');
qryInv501.Open;
end else
begin
edtWhs.Text:='';
edtWhsName.Text:='';
ShowMsg('UMS10000440'); //无效的仓库编号,请重新输入
edtWhs.SetFocus;
Abort;
end;
end;
procedure TInv600_02Form.adsInv600BBeforePost(DataSet: TDataSet);
var
AIsFound:Boolean;
begin
inherited;
if not ActSave.Enabled then Exit;
if not Active then Exit;
//检验子表数据是否完整及有效
if adsInv600BFLocID.AsString='' then
AIsFound:=qryInv501.Locate('I100_002;I150_002',VarArrayOf([edtWhs.Text,adsInv600BFItemID.Value]),[])
else
AIsFound:=qryInv501.Locate('I100_002;I110_003;I150_002',VarArrayOf([edtWhs.Text,adsInv600BFLocID.Value,adsInv600BFItemID.Value]),[]);
if not AIsFound then
begin
ShowMsg('UMS10000446'); //输入的料品编号无效,或者该料品没有相关的存货记录
wwDBGrid1.SetFocus;
Abort;
end;
end;
procedure TInv600_02Form.mmiAddClick(Sender: TObject);
begin
inherited;
//新增(&I)
adsInv600B.Append;
end;
procedure TInv600_02Form.mmiEditClick(Sender: TObject);
begin
inherited;
//修改(&U)
if adsInv600B.IsEmpty then
begin
ShowMsg('UMS10000002'); //表记录为空,操作无效
Abort;
end;
adsInv600B.Edit;
end;
procedure TInv600_02Form.mmiDelClick(Sender: TObject);
begin
inherited;
//删除(&E)
if adsInv600B.IsEmpty then
begin
ShowMsg('UMS10000002'); //表记录为空,操作无效
Abort;
end;
if ShowDialog('UMS10000008')=IDNO then Abort; //确定要删除此记录吗?
adsInv600B.Delete;
end;
procedure TInv600_02Form.wwDBGrid1Enter(Sender: TObject);
begin
inherited;
OnKeyDown:=nil;
end;
procedure TInv600_02Form.wwDBGrid1Exit(Sender: TObject);
begin
inherited;
OnKeyDown:=AKeyEvent;
end;
procedure TInv600_02Form.pmInv600BPopup(Sender: TObject);
begin
inherited;
mmiAdd.Enabled:=ActSave.Enabled;
mmiEdit.Enabled:=ActSave.Enabled;
mmiDel.Enabled:=ActSave.Enabled;
end;
procedure TInv600_02Form.SetEmptyInit;
begin
edtCode.Text:='';
edtName.Text:='';
edtStatus.Text:='';
edtWhs.Text:='';
edtWhsName.Text:='';
edtFromDate.Clear;
edtToDate.Clear;
edtFactFromDate.Clear;
edtFactToDate.Clear;
edtQty.Text:='';
memRemark.Text:='';
edtCreateDate.Text:='';
edtCreateBy.Text:='';
edtUpdateDate.Text:='';
edtUpdateBy.Text:='';
ALastNo:=0;
adsInv600B.Close;
adsInv600B.CreateDataSet;
end;
procedure TInv600_02Form.DeleteEvent;
var
ACode:string;
begin
if ADOQuery1I600A_003.AsInteger=2 then
begin
ShowMsg('UMS10000435'); //不允许删除完成状态的盘点计划
Abort;
end;
if IsExists('select 1 from INV610A where I610A_002='+''''+ADOQuery1I600A_001.AsString+'''') then
begin
ShowMsg('UMS10000514'); //不允许删除已汇报的盘点计划
Abort;
end;
ACode:=ADOQuery1I600A_001.AsString;
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('delete from INV600B where I600B_001='+''''+ACode+'''');
SYSDM.qryQuery.ExecSQL;
DeleteTableRecord(ADOQuery1,'INV600A','I600A_001='+''''+ACode+'''');
end;
procedure TInv600_02Form.InsertEvent;
begin
edtCode.Text:='';
edtName.Text:='';
edtStatus.Text:=AStatus[0];
edtWhs.Text:='';
edtWhsName.Text:='';
edtFromDate.Date:=GetServerDate;
edtToDate.Date:=edtFromDate.Date;
edtFactFromDate.Clear;
edtFactToDate.Clear;
edtQty.Text:='0';
memRemark.Text:='';
ALastNo:=0;
adsInv600B.Close;
adsInv600B.CreateDataSet;
end;
procedure TInv600_02Form.UpdateEvent;
begin
//0=计划,1=执行,2=完成
if ADOQuery1I600A_003.AsInteger=1 then
begin
ShowMsg('UMS10000516'); //不允许修改执行状态的盘点计划
Abort;
end;
if ADOQuery1I600A_003.AsInteger=2 then
begin
ShowMsg('UMS10000434'); //不允许修改完成状态的盘点计划
Abort;
end;
end;
procedure TInv600_02Form.ActPrintExecute(Sender: TObject);
begin
//打印
if ADOQuery1I600A_003.AsInteger=2 then
begin
ShowMsg('UMS10000515'); //不允许打印完成状态的盘点计划
Abort;
end;
//更新盘点计划的库存数量
UpdateInvQty;
try
SYSDM.frReport2.OnPrintReport:=UpdatePrintData;
SYSDM.frDBDataSet1.RangeBegin:=rbCurrent;
SYSDM.frDBDataSet1.RangeEnd:=reCurrent;
SYSDM.frDBDataSet2.DataSet:=adsInv600B;
inherited;
finally
SYSDM.frDBDataSet1.RangeBegin:=rbFirst;
SYSDM.frDBDataSet1.RangeEnd:=reLast;
SYSDM.frReport2.OnPrintReport:=nil;
end;
end;
initialization
RegisterClass(TInv600_02Form);
finalization
UnRegisterClass(TInv600_02Form);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -