📄 inv510_02.pas.svn-base
字号:
begin
inherited;
ACode:=ADOQuery1.FieldByName('I510A_001').AsString;
if ADOQuery1.FieldByName('I510A_014').AsBoolean then
begin
ShowMsg('UMS10000617'); //不允许删除已经过帐的转仓单
Abort;
end;
//更新相关的数据,当进出仓单更新时
UpdateInv500B(ACode,'INV510','DEL',0);
//删除进出单据
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('delete from INV510B where I510B_001='+''''+ACode+'''');
SYSDM.qryQuery.ExecSQL;
DeleteTableRecord(ADOQuery1,'INV510A','I510A_001='+''''+ACode+'''');
//更新相关的数据,当进出仓单更新时
UpdateInv500B(ACode,'INV510','DEL',0);
//更新进出仓单的应收发数量
UpdateInv500BOrdQty(ACode);
end;
procedure TInv510_02Form.GetDataInfo;
begin
inherited;
edtCode.Text:=ADOQuery1.FieldByName('I510A_001').AsString; //转仓单号
qryInv550.Locate('I550_001',ADOQuery1.FieldByName('I510A_002').Value,[]); //操作类型
edtType.Text:=qryInv550.FieldByName('I550_003').AsString;
edtSummary.Text:=ADOQuery1.FieldByName('I510A_003').AsString; //摘要说明
if ADOQuery1.FieldByName('I510A_014').AsBoolean then edtPost.Text:=APost[1] else edtPost.Text:=APost[0]; //已过帐否
edtDate.Date:=ADOQuery1.FieldByName('I510A_004').Value; //转仓日期
qryInv100A.Locate('I100_001',ADOQuery1.FieldByName('I510A_005').Value,[]); //转出仓库
edtOutWhs.Text:=ADOQuery1.FieldByName('FOutWhsID').AsString; //转出仓号
edtOutWhsName.Text:=ADOQuery1.FieldByName('FOutWhsName').AsString; //转出仓名
qryInv100B.Locate('I100_001',ADOQuery1.FieldByName('I510A_007').Value,[]); //转入仓库
edtInWhs.Text:=ADOQuery1.FieldByName('FInWhsID').AsString; //转入仓号
edtInWhsName.Text:=ADOQuery1.FieldByName('FInWhsName').AsString; //转入仓名
memRemark.Text:=ADOQuery1.FieldByName('I510A_009').AsString; //备注说明
edtCreateDate.Text:=ADOQuery1.FieldByName('I510A_010').AsString; //制单日期
edtCreateBy.Text:=ADOQuery1.FieldByName('I510A_011').AsString; //制单人员
edtUpdateDate.Text:=ADOQuery1.FieldByName('I510A_012').AsString; //修改日期
edtUpdateBy.Text:=ADOQuery1.FieldByName('I510A_013').AsString; //修改人员
GetDetailData;
wwDBGrid1UpdateFooter(wwDBGrid1);
end;
procedure TInv510_02Form.InsertEvent;
var
ADate:TDateTime;
begin
inherited;
ADate:=GetServerDate;
edtCode.Text:='';
edtSummary.Text:='';
edtPost.Text:='';
edtOutWhs.Text:='';
edtOutWhsName.Text:='';
edtInWhs.Text:='';
edtInWhsName.Text:='';
qryInv550.Locate('I550_001',15,[]); //操作类型
edtType.Text:=qryInv550.FieldByName('I550_003').AsString;
edtDate.Date:=ADate;
memRemark.Text:='';
edtDate.Date:=ADate;
edtCreateDate.Text:=FormatDateTime('yyyy-mm-dd hh:mm:ss',ADate);
edtCreateBy.Text:=AUserName;
edtUpdateDate.Text:=FormatDateTime('yyyy-mm-dd hh:mm:ss',ADate);
edtUpdateBy.Text:=AUserName;
ALastNo:=0;
PageControl1.ActivePageIndex:=0;
adsInv510B.Close;
adsInv510B.CreateDataSet;
SetDBGridA;
end;
procedure TInv510_02Form.ReportGetValue(const ParName: String;
var ParValue: Variant);
begin
inherited;
end;
procedure TInv510_02Form.SetEmptyInit;
begin
inherited;
edtCode.Text:='';
edtSummary.Text:='';
edtPost.Text:='';
edtOutWhs.Text:='';
edtOutWhsName.Text:='';
edtInWhs.Text:='';
edtInWhsName.Text:='';
edtType.Text:='';
edtDate.Date:=GetServerDate;
memRemark.Text:='';
edtCreateDate.Text:='';
edtCreateBy.Text:='';
edtUpdateDate.Text:='';
edtUpdateBy.Text:='';
ALastNo:=0;
PageControl1.ActivePageIndex:=0;
adsInv510B.Close;
adsInv510B.CreateDataSet;
SetDBGridA;
end;
procedure TInv510_02Form.TableAfterPost;
begin
inherited;
qryInv510B.Close;
qryInv510B.SQL.Clear;
qryInv510B.SQL.Add('select * from INV510B where I510B_001='+''''+edtCode.Text+''''+' order by I510B_001,I510B_002');
qryInv510B.Open;
if adsInv510B.State in [dsInsert,dsEdit] then adsInv510B.Post;
adsInv510B.First;
while not adsInv510B.Eof do
begin
qryInv510B.Append;
qryInv510B.FieldByName('I510B_001').Value:=edtCode.Text; //转仓单号
qryInv510B.FieldByName('I510B_002').Value:=adsInv510B.FieldByName('FNo').Value; //单据行号
qryInv510B.FieldByName('I510B_003').Value:=adsInv510B.FieldByName('FItemNo').Value; //料品编号
qryInv510B.FieldByName('I510B_004').Value:=adsInv510B.FieldByName('FUnitNo').Value; //计量单位
qryInv510B.FieldByName('I510B_005').Value:=adsInv510B.FieldByName('FQty').Value; //转仓数量
qryInv510B.FieldByName('I510B_006').Value:=adsInv510B.FieldByName('FPrice').Value; //单位价格
qryInv510B.FieldByName('I510B_007').Value:=adsInv510B.FieldByName('FAmount').Value; //转仓金额
qryInv510B.FieldByName('I510B_008').Value:=adsInv510B.FieldByName('FDate').Value; //生产日期
qryInv510B.FieldByName('I510B_009').Value:=adsInv510B.FieldByName('FLot').Value; //生产批号
qryInv510B.FieldByName('I510B_010').Value:=adsInv510B.FieldByName('FOutLocNo').Value; //转出库位
qryInv510B.FieldByName('I510B_011').Value:=adsInv510B.FieldByName('FInLocNo').Value; //转入库位
qryInv510B.FieldByName('I510B_012').Value:=adsInv510B.FieldByName('FUnitRate').Value; //单位转换
qryInv510B.FieldByName('I510B_013').Value:=adsInv510B.FieldByName('FRemark').Value; //备注说明
qryInv510B.Post;
adsInv510B.Next;
end;
//更新相关的数据,当进出仓单更新时
UpdateInv500B(edtCode.Text,'INV510','ADD',ASeqNo);
//更新进出仓单的应收发数量
UpdateInv500BOrdQty(edtCode.Text);
end;
procedure TInv510_02Form.TableBeforePost;
var
AOutWhsNo,AInWhsNo:Integer;
ADate:TDateTime;
begin
inherited;
if trim(edtSummary.Text)='' then
begin
ShowMsg('UMS10000606'); //摘要说明不能为空
edtSummary.SetFocus;
Abort;
end;
if not qryInv100A.Locate('I100_002',edtOutWhs.Text,[]) then
begin
ShowMsg('UMS10000618'); //输入的转出仓库编号无效
edtOutWhs.SetFocus;
Abort;
end;
AOutWhsNo:=qryInv100A.FieldByName('I100_001').AsInteger;
if not qryInv100B.Locate('I100_002',edtInWhs.Text,[]) then
begin
ShowMsg('UMS10000619'); //输入的转入仓库编号无效
edtInWhs.SetFocus;
Abort;
end;
AInWhsNo:=qryInv100B.FieldByName('I100_001').AsInteger;
if trim(edtDate.Text)='' then
begin
ShowMsg('UMS10000620'); //转仓日期不能为空
edtDate.SetFocus;
Abort;
end;
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('select I500_005 from INV500 where I500_003=1 and I500_007='+IntToStr(AOutWhsNo));
SYSDM.qryQuery.Open;
if not SYSDM.qryQuery.IsEmpty then
begin
if edtDate.Date<SYSDM.qryQuery.Fields[0].AsDateTime then
begin
ShowMsg('UMS10000632'); //进出日期不能小于期初建帐日期
edtDate.SetFocus;
Abort;
end;
end;
if adsInv510B.State in [dsInsert,dsEdit] then adsInv510B.Post;
if adsInv510B.IsEmpty then
begin
ShowMsg('UMS10000611'); //料品信息资料不能为空
PageControl1.ActivePageIndex:=0;
wwDBGrid1.SetFocus;
Abort;
end;
//更新相关的数据,当进出仓单更新时
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('select top 1 I500_017 from INV500 where I500_001='+''''+edtCode.Text+''''+' order by I500_017');
SYSDM.qryQuery.Open;
ASeqNo:=SYSDM.qryQuery.Fields[0].AsInteger;
UpdateInv500B(edtCode.Text,'INV510','DEL',0);
//删除进出仓单子表
qryInv510B.Close;
qryInv510B.SQL.Clear;
qryInv510B.SQL.Add('delete from INV510B where I510B_001='+''''+edtCode.Text+'''');
qryInv510B.ExecSQL;
if AMode='ADD' then
begin
ADOQuery1.Append;
ADOQuery1.FieldByName('I510A_010').AsString:=edtCreateDate.Text; //制单日期
ADOQuery1.FieldByName('I510A_011').AsString:=edtCreateBy.Text; //制单人员
ADOQuery1.FieldByName('I510A_012').AsString:=edtUpdateDate.Text; //修改日期
ADOQuery1.FieldByName('I510A_013').AsString:=edtUpdateBy.Text; //修改人员
end else
begin
ADate:=GetServerDate;
ADOQuery1.Edit;
ADOQuery1.FieldByName('I500A_012').Value:=ADate; //修改日期
ADOQuery1.FieldByName('I500A_013').Value:=AUserName; //修改人员
end;
ADOQuery1.FieldByName('I510A_002').Value:=15; //操作类型 转仓
ADOQuery1.FieldByName('I510A_003').AsString:=edtSummary.Text; //摘要说明
ADOQuery1.FieldByName('I510A_004').Value:=edtDate.Date; //转仓日期
ADOQuery1.FieldByName('I510A_005').Value:=AOutWhsNo; //转出仓库
ADOQuery1.FieldByName('I510A_007').Value:=AInWhsNo; //转入仓库
ADOQuery1.FieldByName('I510A_009').AsString:=memRemark.Text; //备注说明
ADOQuery1.FieldByName('I510A_014').Value:=False; //已过帐否
end;
procedure TInv510_02Form.UpdateEvent;
begin
inherited;
if ADOQuery1.FieldByName('I510A_014').AsBoolean then
begin
ShowMsg('UMS10000621'); //不允许修改已经过帐的转仓单
Abort;
end;
SetDBGridA;
end;
procedure TInv510_02Form.GetDetailData;
begin
ALastNo:=0;
adsInv510B.DisableControls;
adsInv510B.Close;
adsInv510B.CreateDataSet;
SetDBGridA;
qryInv510B.Close;
qryInv510B.SQL.Clear;
qryInv510B.SQL.Add('select A.*,B.I150_002,B.I150_003,B.I150_004,C.I140_002,C.I140_003');
qryInv510B.SQL.Add('from (INV510B A left join INV150 B on A.I510B_003=B.I150_001)');
qryInv510B.SQL.Add(' left join INV140 C on A.I510B_004=C.I140_001');
qryInv510B.SQL.Add('where A.I510B_001='+''''+edtCode.Text+'''');
qryInv510B.SQL.Add('order by I510B_002');
qryInv510B.Open;
while not qryInv510B.Eof do
begin
adsInv510B.Append;
adsInv510B.FieldByName('FNo').Value:=qryInv510B.FieldByName('I510B_002').Value;
adsInv510B.FieldByName('FItemNo').Value:=qryInv510B.FieldByName('I510B_003').Value;
adsInv510B.FieldByName('FItemID').Value:=qryInv510B.FieldByName('I150_002').Value;
adsInv510B.FieldByName('FItemName').Value:=qryInv510B.FieldByName('I150_003').Value;
adsInv510B.FieldByName('FItemSpec').Value:=qryInv510B.FieldByName('I150_004').Value;
adsInv510B.FieldByName('FUnitNo').Value:=qryInv510B.FieldByName('I510B_004').Value;
adsInv510B.FieldByName('FUnitID').Value:=qryInv510B.FieldByName('I140_002').Value;
adsInv510B.FieldByName('FUnitName').Value:=qryInv510B.FieldByName('I140_003').Value;
adsInv510B.FieldByName('FQty').Value:=qryInv510B.FieldByName('I510B_005').Value;
adsInv510B.FieldByName('FPrice').Value:=qryInv510B.FieldByName('I510B_006').Value;
adsInv510B.FieldByName('FAmount').Value:=qryInv510B.FieldByName('I510B_007').Value;
adsInv510B.FieldByName('FDate').Value:=qryInv510B.FieldByName('I510B_008').Value;
adsInv510B.FieldByName('FLot').Value:=qryInv510B.FieldByName('I510B_009').Value;
adsInv510B.FieldByName('FOutLocNo').Value:=qryInv510B.FieldByName('I510B_010').Value;
adsInv510B.FieldByName('FInLocNo').Value:=qryInv510B.FieldByName('I510B_011').Value;
adsInv510B.FieldByName('FUnitRate').Value:=qryInv510B.FieldByName('I510B_012').Value;
adsInv510B.FieldByName('FRemark').Value:=qryInv510B.FieldByName('I510B_013').Value;
adsInv510B.Post;
ALastNo:=qryInv510B.FieldByName('I510B_002').AsInteger;
qryInv510B.Next;
end;
adsInv510B.EnableControls;
end;
procedure TInv510_02Form.wwDBGrid1UpdateFooter(Sender: TObject);
var
ASumQty,ASumAmt:Double;
begin
inherited;
ASumQty:=0;
ASumAmt:=0;
ADODataSet1.Clone(adsInv510B);
ADODataSet1.DisableControls;
ADODataSet1.First;
while not ADODataSet1.Eof do
begin
ASumQty:=ASumQty+ADODataSet1.FieldByName('FQty').AsFloat;
ASumAmt:=ASumAmt+StrToFloatA(FloatToStrF(ADODataSet1.FieldByName('FAmount').AsFloat,ffNumber,18,2));
ADODataSet1.Next;
end;
ADODataSet1.EnableControls;
wwDBGrid1.ColumnByName('FItemID').FooterValue:=GetDBString('COM00004002')+FloatToStrF(ADODataSet1.RecordCount,ffNumber,18,0); //记录总数
wwDBGrid1.ColumnByName('FQty').FooterValue:=FloatToStrF(ASumQty,ffNumber,18,2);
wwDBGrid1.ColumnByName('FAmount').FooterValue:=FloatToStrF(ASumAmt,ffNumber,18,2);
end;
procedure TInv510_02Form.adsInv510BNewRecord(DataSet: TDataSet);
begin
inherited;
ALastNo:=ALastNo+1;
adsInv510BFNo.Value:=ALastNo;
adsInv510BFUnitRate.Value:=1;
adsInv510BFQty.Value:=1;
adsInv510BFPrice.Value:=0;
adsInv510BFAmount.Value:=0;
end;
procedure TInv510_02Form.sbOutWhsClick(Sender: TObject);
begin
inherited;
//转出仓库
if not edtOutWhs.Focused then edtOutWhs.SetFocus;
HwSelDataForm:=THwSelDataForm.Create(Application);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -