📄 pur500_02.pas.svn-base
字号:
inherited;
qryPur100.Close;
qryHrm100.Close;
qryHrm150.Close;
qryOrd151.Close;
qryOrd152.Close;
end;
procedure TPur500_02Form.DeleteEvent;
var
ACode:String;
begin
inherited;
//0=新建,1=核准,2=完成,3=取消
if ADOQuery1.FieldByName('P500A_004').AsInteger<>0 then
begin
ShowMsg('UMS10000564'); //不允许删除非新建状态的采购申请
Abort;
end;
ACode:=ADOQuery1.FieldByName('P500A_001').AsString;
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('delete from PUR500B where P500B_001='+''''+ACode+'''');
SYSDM.qryQuery.ExecSQL;
DeleteTableRecord(ADOQuery1,'PUR500A','P500A_001='+''''+ACode+'''');
end;
procedure TPur500_02Form.GetCustPlaceInfo;
var
ACustNo:Integer;
AShortName,S:String;
begin
//缺省值为主交货地点,如无主交货地点,则取客户资料表中的信息作为主交货地点
//缺省的交货地址
S:=GetSysParams('PUR0004');
if S='' then S:='0';
ACustNo:=StrToInt(S);
qryOrd152.Close;
qryOrd152.SQL.Clear;
qryOrd152.SQL.Add('select A.*,B.O120_002,C.O151_002,C.O151_003,C.O151_004');
qryOrd152.SQL.Add('from (ORD152 A left join ORD120 B on A.O152_003=B.O120_001) left join ORD151 C on A.O152_001=C.O151_001 and A.O152_008=C.O151_002');
qryOrd152.SQL.Add('where A.O152_001='+IntToStr(ACustNo));
qryOrd152.Open;
if ACustNo<>0 then
begin
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('select A.O150_001,A.O150_002,A.O150_003,A.O150_004,A.O150_005,A.O150_006,A.O150_012,A.O150_011,');
SYSDM.qryQuery.SQL.Add(' B.O151_002,B.O151_003,B.O151_004,');
SYSDM.qryQuery.SQL.Add(' C.O120_002');
SYSDM.qryQuery.SQL.Add('from (ORD150 A left join (select * from ORD151 where O151_011<>0) B on A.O150_001=B.O151_001) left join ORD120 C on A.O150_011=C.O120_001');
SYSDM.qryQuery.SQL.Add('where O150_001='+IntToStr(ACustNo));
SYSDM.qryQuery.Open;
AShortName:=SYSDM.qryQuery.FieldByName('O150_004').AsString;
qryOrd152.Insert;
qryOrd152.FieldByName('O152_001').Value:=ACustNo;
qryOrd152.FieldByName('O152_002').Value:=SYSDM.qryQuery.FieldByName('O150_004').AsString;
qryOrd152.FieldByName('O152_003').Value:=SYSDM.qryQuery.FieldByName('O150_011').AsString;
qryOrd152.FieldByName('O120_002').Value:=SYSDM.qryQuery.FieldByName('O120_002').AsString;
qryOrd152.FieldByName('O152_004').Value:=SYSDM.qryQuery.FieldByName('O150_012').AsString;
qryOrd152.FieldByName('O152_006').Value:=SYSDM.qryQuery.FieldByName('O150_005').AsString;
qryOrd152.FieldByName('O152_007').Value:=SYSDM.qryQuery.FieldByName('O150_006').AsString;
qryOrd152.FieldByName('O152_008').Value:=SYSDM.qryQuery.FieldByName('O151_002').AsString;
qryOrd152.FieldByName('O151_002').Value:=SYSDM.qryQuery.FieldByName('O151_002').AsString;
qryOrd152.FieldByName('O151_003').Value:=SYSDM.qryQuery.FieldByName('O151_003').AsString;
qryOrd152.FieldByName('O151_004').Value:=SYSDM.qryQuery.FieldByName('O151_004').AsString;
qryOrd152.FieldByName('O152_010').Value:=False;
qryOrd152.Post;
end;
if not qryOrd152.Locate('O152_010',StrToInt(GetBoolean(True)),[]) then
begin
qryOrd152.Locate('O152_002',AShortName,[]);
end;
edtPlace.Text:=qryOrd152.FieldByName('O152_002').AsString; //交货地址
edtRegion.Text:=qryOrd152.FieldByName('O120_002').AsString; //所属地区
edtPlaceAddress.Text:=qryOrd152.FieldByName('O152_004').AsString;
edtPlacePhone.Text:=qryOrd152.FieldByName('O152_006').AsString;
edtPlaceFax.Text:=qryOrd152.FieldByName('O152_007').AsString;
edtPlaceContact.Text:=qryOrd152.FieldByName('O151_002').AsString;
edtPlaceDept.Text:=qryOrd152.FieldByName('O151_003').AsString;
edtPlacePosit.Text:=qryOrd152.FieldByName('O151_004').AsString;
qryOrd151.Close;
qryOrd151.SQL.Clear;
qryOrd151.SQL.Add('select * from ORD151 where O151_001='+IntToStr(ACustNo));
qryOrd151.Open;
end;
procedure TPur500_02Form.GetDataInfo;
var
ACustNo,ASaleNo,ADeptNo:Integer;
S:String;
begin
inherited;
edtCode.Text:=ADOQuery1.FieldByName('P500A_001').AsString; //请购单号
qryPur100.Locate('P100_001',ADOQuery1.FieldByName('P500A_002').Value,[]);
cbType.ItemIndex:=cbType.Items.IndexOf(qryPur100.FieldByName('P100_002').AsString); //请购类型
edtDate.Date:=ADOQuery1.FieldByName('P500A_003').Value; //请购日期
edtStatus.Text:=AStatus[ADOQuery1.FieldByName('P500A_004').AsInteger]; //请购状态
cbFrom.ItemIndex:=ADOQuery1.FieldByName('P500A_005').AsInteger; //来源类型(0=手工输入,1=自动补库,2=物料需求)
edtPerson.Text:='';
edtPersonName.Text:='';
ASaleNo:=ADOQuery1.FieldByName('P500A_007').AsInteger; //请购人员
if qryHrm150.Locate('H150_001',ASaleNo,[]) then
begin
edtPerson.Text:=qryHrm150.FieldByName('H150_002').AsString; //请购人员
edtPersonName.Text:=qryHrm150.FieldByName('H150_003').AsString;
end;
cbDept.Text:='';
ADeptNo:=ADOQuery1.FieldByName('P500A_008').AsInteger; //请购部门
if qryHrm100.Locate('H100_001',ADeptNo,[]) then
begin
cbDept.Text:=qryHrm100.FieldByName('H100_002').Value; //请购部门
end;
S:=GetSysParams('PUR0004');
if S='' then S:='0';
ACustNo:=StrToInt(S);
GetCustPlaceInfo; //交货地址
if not (ADOQuery1.FieldByName('P500A_006').Value='') then
begin
if qryOrd151.Locate('O151_001;O151_002',VarArrayOf([ACustNo,ADOQuery1P500A_009.value]),[]) then
begin
edtPlaceContact.Text:=qryOrd151.FieldByName('O151_002').AsString;
edtPlaceDept.Text:=qryOrd151.FieldByName('O151_003').AsString;
edtPlacePhone.Text:=qryOrd151.FieldByName('O151_005').AsString;
edtPlaceFax.Text:=qryOrd151.FieldByName('O151_006').AsString;
edtPlacePosit.Text:=qryOrd151.FieldByName('O151_004').AsString;
edtPlaceDept.Text:=qryOrd151.FieldByName('O151_003').AsString;
end;
end;
edtCheckDate.Text:=ADOQuery1.FieldByName('P500A_010').AsString; //审核日期
edtChecker.Text:=ADOQuery1.FieldByName('P500A_011').AsString; //审核人员
memRemark.Text:=ADOQuery1.FieldByName('P500A_012').AsString; //备注说明
edtCreateDate.Text:=ADOQuery1.FieldByName('P500A_013').AsString; //制单日期
edtCreateBy.Text:=ADOQuery1.FieldByName('P500A_014').AsString; //制单人员
edtUpdateDate.Text:=ADOQuery1.FieldByName('P500A_015').AsString; //修改日期
edtUpdateBy.Text:=ADOQuery1.FieldByName('P500A_016').AsString; //修改人员
GetDetailData;
wwDBGrid1UpdateFooter(wwDBGrid1);
end;
procedure TPur500_02Form.InsertEvent;
var
ADate:TDateTime;
begin
inherited;
ADate:=GetServerDate;
edtCode.Text:='';
cbType.ItemIndex:=0;
qryPur100.Locate('P100_002',cbType.Text,[]);
edtDate.Date:=ADate;
edtStatus.Text:=AStatus[0];
edtPerson.Text:='';
edtCheckDate.Clear;
edtChecker.Text:='';
edtPlace.Text:='';
edtRegion.Text:='';
edtPlacePhone.Text:='';
edtPlaceAddress.Text:='';
edtPlaceFax.Text:='';
edtPlaceContact.Text:='';
edtPlaceDept.Text:='';
edtPlacePosit.Text:='';
GetCustPlaceInfo;
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;
adsPur500B.Close;
adsPur500B.CreateDataSet;
PageControl1.ActivePageIndex:=0;
PageControl2.ActivePageIndex:=0;
SetDBGrid;
end;
procedure TPur500_02Form.ReportGetValue(const ParName: String;
var ParValue: Variant);
begin
inherited;
end;
procedure TPur500_02Form.SetEmptyInit;
begin
inherited;
edtCode.Text:='';
cbType.ItemIndex:=0;
qryPur100.Locate('P100_002',cbType.Text,[]);
edtDate.Date:=GetServerDate;
edtStatus.Text:=AStatus[0];
edtPerson.Text:='';
cbFrom.ItemIndex:=0;
edtCheckDate.Clear;
edtChecker.Text:='';
edtPlace.Text:='';
edtRegion.Text:='';
edtPlacePhone.Text:='';
edtPlaceAddress.Text:='';
edtPlaceFax.Text:='';
edtPlaceContact.Text:='';
edtPlaceDept.Text:='';
edtPlacePosit.Text:='';
memRemark.Text:='';
edtCreateDate.Text:='';
edtCreateBy.Text:='';
edtUpdateDate.Text:='';
edtUpdateBy.Text:='';
ALastNo:=0;
adsPur500B.Close;
adsPur500B.CreateDataSet;
end;
procedure TPur500_02Form.TableAfterPost;
begin
inherited;
qryPur500B.Close;
qryPur500B.SQL.Clear;
qryPur500B.SQL.Add('select * from PUR500B where P500B_001='+''''+edtCode.Text+''''+' order by P500B_001,P500B_002');
qryPur500B.Open;
if adsPur500B.State in [dsInsert,dsEdit] then adsPur500B.Post;
adsPur500B.First;
while not adsPur500B.Eof do
begin
qryPur500B.Append;
qryPur500B.FieldByName('P500B_001').Value:=edtCode.Text;
qryPur500B.FieldByName('P500B_002').Value:=adsPur500B.FieldByName('FNo').Value;
qryPur500B.FieldByName('P500B_003').Value:=adsPur500B.FieldByName('FItemNo').Value;
qryPur500B.FieldByName('P500B_004').Value:=adsPur500B.FieldByName('FUnitNo').Value;
qryPur500B.FieldByName('P500B_005').Value:=adsPur500B.FieldByName('FQty').Value;
qryPur500B.FieldByName('P500B_006').Value:=adsPur500B.FieldByName('FDate').Value;
qryPur500B.FieldByName('P500B_007').Value:=adsPur500B.FieldByName('FPlace').Value;
qryPur500B.FieldByName('P500B_008').Value:=adsPur500B.FieldByName('FFromID').Value;
qryPur500B.FieldByName('P500B_009').Value:=adsPur500B.FieldByName('FLineNo').Value;
qryPur500B.FieldByName('P500B_010').Value:=adsPur500B.FieldByName('FRemark').Value;
qryPur500B.FieldByName('P500B_011').Value:=adsPur500B.FieldByName('FUnitRate').Value;
qryPur500B.Post;
adsPur500B.Next;
end;
end;
procedure TPur500_02Form.TableBeforePost;
var
ADate:TDateTime;
begin
inherited;
if trim(cbType.Text)='' then
begin
ShowMsg('UMS10000640'); //请购类型不能为空
cbType.SetFocus;
Abort;
end;
qryPur100.Locate('P100_002',cbType.Text,[]);
if trim(edtDate.Text)='' then
begin
ShowMsg('UMS10000641'); //请购日期不能为空
edtDate.SetFocus;
Abort;
end;
if not qryHrm150.Locate('H150_002',edtPerson.Text,[]) then
begin
ShowMsg('UMS10000642'); //输入的请购人员无效
edtPerson.SetFocus;
Abort;
end;
if not qryHrm100.Locate('H100_002',cbDept.Text,[]) then
begin
ShowMsg('UMS10000643'); //输入的请购部门无效
cbDept.SetFocus;
Abort;
end;
if trim(cbFrom.Text)='' then
begin
ShowMsg('UMS10000529'); //来源类型不能为空
cbFrom.SetFocus;
Abort;
end;
if tsPlace.TabVisible then
begin
if trim(edtPlace.Text)='' then
begin
ShowMsg('UMS10000190'); //交货地点不能为空
PageControl2.ActivePageIndex:=1;
edtPlace.SetFocus;
Abort;
end;
if not qryOrd152.Locate('O152_002',edtPlace.Text,[]) then
begin
ShowMsg('UMS10000420'); //输入的交货地点无效
PageControl2.ActivePageIndex:=1;
edtPlace.SetFocus;
Abort;
end;
end;
if adsPur500B.State in [dsInsert,dsEdit] then adsPur500B.Post;
if adsPur500B.IsEmpty then
begin
ShowMsg('UMS10000421'); //产品信息资料不能为空
PageControl1.ActivePageIndex:=0;
wwDBGrid1.SetFocus;
Abort;
end;
qryPur500B.Close;
qryPur500B.SQL.Clear;
qryPur500B.SQL.Add('delete from PUR500B where P500B_001='+''''+edtCode.Text+'''');
qryPur500B.ExecSQL;
if AMode='ADD' then
begin
ADOQuery1.Append;
ADOQuery1.FieldByName('P500A_004').Value:=0; //新建
ADOQuery1.FieldByName('P500A_013').AsString:=edtCreateDate.Text; //制单日期
ADOQuery1.FieldByName('P500A_014').AsString:=edtCreateBy.Text; //制单人员
ADOQuery1.FieldByName('P500A_015').AsString:=edtUpdateDate.Text; //修改日期
ADOQuery1.FieldByName('P500A_016').AsString:=edtUpdateBy.Text; //修改人员
end else
begin
ADate:=GetServerDate;
ADOQuery1.Edit;
ADOQuery1.FieldByName('P500A_015').Value:=ADate; //修改日期
ADOQuery1.FieldByName('P500A_016').Value:=AUserName; //修改人员
end;
ADOQuery1.FieldByName('P500A_002').Value:=qryPur100.FieldByName('P100_001').Value; //请购类型
ADOQuery1.FieldByName('P500A_003').Value:=edtDate.Date; //请购日期
ADOQuery1.FieldByName('P500A_005').Value:=cbFrom.ItemIndex; //来源类型
if trim(edtPerson.Text)<>'' then ADOQuery1.FieldByName('P500A_007').Value:=qryHrm150.FieldByName('H150_001').Value; //请购人员
if trim(cbDept.Text)<>'' then ADOQuery1.FieldByName('P500A_008').Value:=qryHrm100.FieldByName('H100_001').Value; //请购部门
if tsPlace.TabVisible then
begin
ADOQuery1.FieldByName('P500A_009').Value:=qryOrd152.FieldByName('O152_002').Value; //交货地点
ADOQuery1.FieldByName('P500A_006').AsString:=edtPlaceContact.Text; //联系人名
end;
ADOQuery1.FieldByName('P500A_010').AsString:=edtCheckDate.Text; //审核日期
ADOQuery1.FieldByName('P500A_011').AsString:=edtChecker.Text; //审核人员
ADOQuery1.FieldByName('P500A_012').AsString:=memRemark.Text; //备注说明
end;
procedure TPur500_02Form.UpdateEvent;
begin
inherited;
//0=新建,1=核准,2=取消,3=完成
if ADOQuery1.FieldByName('P500A_004').AsInteger<>0 then
begin
ShowMsg('UMS10000644'); //不允许修改非新建状态的采购申请
Abort;
end;
SetDBGrid;
end;
//取得明细表数据
procedure TPur500_02Form.GetDetailData;
begin
ALastNo:=0;
adsPur500B.DisableControls;
adsPur500B.Close;
adsPur500B.CreateDataSet;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -