📄 inv500_02.pas.svn-base
字号:
qryInv140I140_003.DisplayLabel:=GetDBString('INV50002055'); //单位名称
//币别名称
cbCurr.Clear;
qryGld100.Close;
qryGld100.Open;
while not qryGld100.Eof do
begin
cbCurr.Items.Add(qryGld100.FieldByName('G100_003').AsString);
qryGld100.Next;
end;
qryGld100.First;
cbCurr.ItemIndex:=0;
//操作类型
cbType.Clear;
qryInv550.Close;
qryInv550.Open;
while not qryInv550.Eof do
begin
cbType.Items.Add(qryInv550.FieldByName('I550_003').AsString);
qryInv550.Next;
end;
qryInv550.First;
cbType.ItemIndex:=0;
AObjTyp[0]:=GetDBString('INV50002056'); //空白
AObjTyp[1]:=GetDBString('INV50002057'); //客户
AObjTyp[2]:=GetDBString('INV50002058'); //员工
AObjTyp[3]:=GetDBString('INV50002059'); //部门
cbObjTyp.Clear;
cbObjTyp.Items.Add(AObjTyp[0]);
cbObjTyp.Items.Add(AObjTyp[1]);
cbObjTyp.Items.Add(AObjTyp[2]);
cbObjTyp.Items.Add(AObjTyp[3]);
cbObjTyp.ItemIndex:=0;
APost[0]:=GetDBString('INV50002060'); //未过帐
APost[1]:=GetDBString('INV50002061'); //已过帐
adsInv500B.Close;
adsInv500B.CreateDataSet;
SetDBGridA;
end;
procedure TInv500_02Form.FormCreate(Sender: TObject);
begin
inherited;
ATableName:='INV500A';
AFieldName:='I500A_001';
qryInv100.Open;
qryGld100.Open;
qryInv550.Open;
qryInv150.Open;
qryInv140.Open;
qryInv110.Open;
qryOrd150.Open;
qryHrm100.Open;
qryHrm150.Open;
AKeyEvent:=OnKeyDown;
end;
procedure TInv500_02Form.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
qryInv100.Close;
qryGld100.Close;
qryInv550.Close;
qryInv150.Close;
qryInv140.Close;
qryInv110.Close;
qryOrd150.Close;
qryHrm100.Close;
qryHrm150.Close;
end;
procedure TInv500_02Form.DeleteEvent;
var
ACode:String;
begin
inherited;
ACode:=ADOQuery1.FieldByName('I500A_001').AsString;
if ADOQuery1.FieldByName('I500A_016').AsBoolean then
begin
ShowMsg('UMS10000605'); //不允许删除已经过帐的进出仓单
Abort;
end;
if ADOQuery1.FieldByName('I550_001').Value=14 Then
begin
ShowMsg('UMS10000615'); //不允许删除操作类型为盘点调整的料品进出单
Abort;
end;
if IsExists('select 1 from INV500B where I500B_011='+''''+ACode+'''') then
begin
ShowMsg('UMS10000616'); //不允许删除有相关单据的料品进出单
Abort;
end;
//更新相关的数据,当进出仓单更新时
UpdateInv500B(ACode,'INV500','DEL',0);
//删除进出单据
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('delete from INV500B where I500B_001='+''''+ACode+'''');
SYSDM.qryQuery.ExecSQL;
DeleteTableRecord(ADOQuery1,'INV500A','I500A_001='+''''+ACode+'''');
//更新相关的数据,当进出仓单更新时
UpdateInv500B(ACode,'INV500','DEL',0);
//更新进出仓单的应收发数量
UpdateInv500BOrdQty(ACode);
end;
procedure TInv500_02Form.GetDataInfo;
begin
inherited;
edtCode.Text:=ADOQuery1.FieldByName('I500A_001').AsString; //进出单号
qryInv550.Locate('I550_001',ADOQuery1.FieldByName('I500A_002').Value,[]); //操作类型
cbType.ItemIndex:=cbType.Items.IndexOf(qryInv550.FieldByName('I550_003').AsString);
cbTypeChange(cbType);
edtSummary.Text:=ADOQuery1.FieldByName('I500A_003').AsString; //摘要说明
if ADOQuery1.FieldByName('I500A_016').AsBoolean then edtPost.Text:=APost[1] else edtPost.Text:=APost[0]; //已过帐否
qryInv100.Locate('I100_001',ADOQuery1.FieldByName('I500A_010').Value,[]); //仓库编号
edtWhs.Text:=ADOQuery1.FieldByName('I100_002').AsString; //仓库编号
edtWhsName.Text:=ADOQuery1.FieldByName('I100_003').AsString; //仓库名称
edtDate.Date:=ADOQuery1.FieldByName('I500A_004').Value; //进出日期
cbObjTyp.ItemIndex:=ADOQuery1.FieldByName('I500A_005').Value; //对象类型(0=空白,1=客户,2=员工,3=部门)
cbObjTypChange(cbObjTyp);
// AObjNo:=ADOQuery1.FieldByName('I500A_006').Value; //对象编号
edtCust.Text:=ADOQuery1.FieldByName('FCode').Value;
edtCustName.Text:=ADOQuery1.FieldByName('FName').Value;
edtOrder.Text:=ADOQuery1.FieldByName('I500A_007').AsString; //相关单据
qryGld100.Locate('G100_001',ADOQuery1.FieldByName('I500A_008').Value,[]); //币别编号
cbCurr.ItemIndex:=cbCurr.Items.IndexOf(qryGld100.FieldByName('G100_003').Value);
edtRate.Text:=ADOQuery1.FieldByName('I500A_009').AsString; //币别汇率
memRemark.Text:=ADOQuery1.FieldByName('I500A_011').AsString; //备注说明
edtCreateDate.Text:=ADOQuery1.FieldByName('I500A_012').AsString; //制单日期
edtCreateBy.Text:=ADOQuery1.FieldByName('I500A_013').AsString; //制单人员
edtUpdateDate.Text:=ADOQuery1.FieldByName('I500A_014').AsString; //修改日期
edtUpdateBy.Text:=ADOQuery1.FieldByName('I500A_015').AsString; //修改人员
GetDetailData;
wwDBGrid1UpdateFooter(wwDBGrid1);
end;
procedure TInv500_02Form.InsertEvent;
var
ADate:TDateTime;
begin
inherited;
ADate:=GetServerDate;
edtCode.Text:='';
edtSummary.Text:='';
edtPost.Text:='';
edtWhs.Text:='';
edtWhsName.Text:='';
cbType.ItemIndex:=0;
cbTypeChange(cbType);
edtDate.Date:=ADate;
//币别=本位币
qryGld100.Locate('G100_003',ACurrName,[]);
cbCurr.ItemIndex:=cbCurr.Items.IndexOf(ACurrName);
edtRate.Text:='1';
cbObjTyp.ItemIndex:=0;
cbObjTypChange(cbObjTyp);
edtOrder.Text:='';
edtCust.Text:='';
edtCustName.Text:='';
memRemark.Text:='';
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;
adsInv500B.Close;
adsInv500B.CreateDataSet;
SetDBGridA;
end;
procedure TInv500_02Form.ReportGetValue(const ParName: String;
var ParValue: Variant);
begin
inherited;
end;
procedure TInv500_02Form.SetEmptyInit;
begin
inherited;
edtCode.Text:='';
edtSummary.Text:='';
edtPost.Text:='';
edtWhs.Text:='';
edtWhsName.Text:='';
cbType.ItemIndex:=0;
cbTypeChange(cbType);
edtDate.Date:=GetServerDate;
//币别=本位币
qryGld100.Locate('G100_003',ACurrName,[]);
cbCurr.ItemIndex:=cbCurr.Items.IndexOf(ACurrName);
edtRate.Text:='1';
edtOrder.Text:='';
cbObjTyp.ItemIndex:=0;
cbObjTypChange(cbObjTyp);
edtCust.Text:='';
edtCustName.Text:='';
memRemark.Text:='';
edtCreateDate.Text:='';
edtCreateBy.Text:='';
edtUpdateDate.Text:='';
edtUpdateBy.Text:='';
ALastNo:=0;
PageControl1.ActivePageIndex:=0;
adsInv500B.Close;
adsInv500B.CreateDataSet;
SetDBGridA;
end;
procedure TInv500_02Form.TableAfterPost;
begin
inherited;
qryInv500B.Close;
qryInv500B.SQL.Clear;
qryInv500B.SQL.Add('select * from INV500B where I500B_001='+''''+edtCode.Text+''''+' order by I500B_001,I500B_002');
qryInv500B.Open;
if adsInv500B.State in [dsInsert,dsEdit] then adsInv500B.Post;
adsInv500B.First;
while not adsInv500B.Eof do
begin
qryInv500B.Append;
qryInv500B.FieldByName('I500B_001').Value:=edtCode.Text; //进出单号
qryInv500B.FieldByName('I500B_002').Value:=adsInv500B.FieldByName('FNo').Value; //单据行号
qryInv500B.FieldByName('I500B_003').Value:=adsInv500B.FieldByName('FItemNo').Value; //料品编号
qryInv500B.FieldByName('I500B_004').Value:=adsInv500B.FieldByName('FUnitNo').Value; //计量单位
qryInv500B.FieldByName('I500B_005').Value:=adsInv500B.FieldByName('FQty').Value; //进出数量
qryInv500B.FieldByName('I500B_006').Value:=adsInv500B.FieldByName('FPrice').Value; //单位价格
qryInv500B.FieldByName('I500B_007').Value:=adsInv500B.FieldByName('FAmount').Value; //料品金额
qryInv500B.FieldByName('I500B_008').Value:=adsInv500B.FieldByName('FLocNo').Value; //库位编号
qryInv500B.FieldByName('I500B_009').Value:=adsInv500B.FieldByName('FDate').Value; //生产日期
qryInv500B.FieldByName('I500B_010').Value:=adsInv500B.FieldByName('FLot').Value; //生产批号
qryInv500B.FieldByName('I500B_011').Value:=adsInv500B.FieldByName('FFromOrder').Value; //来源单号
qryInv500B.FieldByName('I500B_012').Value:=adsInv500B.FieldByName('FFromLine').Value; //来源行号
qryInv500B.FieldByName('I500B_013').Value:=adsInv500B.FieldByName('FOrdQty').AsFloat; //应收发量
qryInv500B.FieldByName('I500B_014').Value:=adsInv500B.FieldByName('FUnitRate').Value; //单位转换
qryInv500B.FieldByName('I500B_015').Value:=adsInv500B.FieldByName('FFinish').AsFloat; //已收发量
qryInv500B.FieldByName('I500B_016').Value:=adsInv500B.FieldByName('FRemark').Value; //备注说明
qryInv500B.Post;
adsInv500B.Next;
end;
//更新相关的数据,当进出仓单更新时
UpdateInv500B(edtCode.Text,'INV500','ADD',ASeqNo);
//更新进出仓单的应收发数量
UpdateInv500BOrdQty(edtCode.Text);
end;
procedure TInv500_02Form.TableBeforePost;
var
AWhsNo,ATypeNo,ACurrNo,AObjNo:Integer;
ADate:TDateTime;
ADataSet:TDataSet;
begin
inherited;
if trim(edtSummary.Text)='' then
begin
ShowMsg('UMS10000606'); //摘要说明不能为空
edtSummary.SetFocus;
Abort;
end;
if not qryInv100.Locate('I100_002',edtWhs.Text,[]) then
begin
ShowMsg('UMS10000607'); //输入的仓库编号无效
edtWhs.SetFocus;
Abort;
end;
AWhsNo:=qryInv100.FieldByName('I100_001').AsInteger;
if not qryInv550.Locate('I550_003',cbType.Text,[]) then
begin
ShowMsg('UMS10000608'); //输入的操作类型无效
cbType.SetFocus;
Abort;
end;
ATypeNo:=qryInv550.FieldByName('I550_001').AsInteger;
if trim(edtDate.Text)='' then
begin
ShowMsg('UMS10000609'); //进出日期不能为空
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(AWhsNo));
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 not qryGld100.Locate('G100_003',cbCurr.Text,[]) then
begin
ShowMsg('UMS10000412'); //输入的币别编号无效
cbCurr.SetFocus;
Abort;
end;
ACurrNo:=qryGld100.FieldByName('G100_001').AsInteger;
AObjNo:=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -