📄 pur500_02.pas.svn-base
字号:
SetDBGrid;
qryPur500B.Close;
qryPur500B.SQL.Clear;
qryPur500B.SQL.Add('select A.*,B.I150_002,B.I150_003,B.I150_008,B.I150_004,C.I140_002,C.I140_003');
qryPur500B.SQL.Add('from (PUR500B A left join INV150 B on A.P500B_003=B.I150_001) left join INV140 C on A.P500B_004=C.I140_001');
qryPur500B.SQL.Add('where A.P500B_001='+''''+edtCode.Text+'''');
qryPur500B.SQL.Add('order by P500B_002');
qryPur500B.Open;
while not qryPur500B.Eof do
begin
adsPur500B.Append;
adsPur500B.FieldByName('FNo').Value:=qryPur500B.FieldByName('P500B_002').Value;
adsPur500B.FieldByName('FItemNo').Value:=qryPur500B.FieldByName('P500B_003').Value;
adsPur500B.FieldByName('FItemID').Value:=qryPur500B.FieldByName('I150_002').Value;
adsPur500B.FieldByName('FItemName').Value:=qryPur500B.FieldByName('I150_003').Value;
adsPur500B.FieldByName('FEngItemName').Value:=qryPur500B.FieldByName('I150_008').Value;
adsPur500B.FieldByName('FItemSpec').Value:=qryPur500B.FieldByName('I150_004').Value;
adsPur500B.FieldByName('FUnitNo').Value:=qryPur500B.FieldByName('P500B_004').Value;
adsPur500B.FieldByName('FUnitID').Value:=qryPur500B.FieldByName('I140_002').Value;
adsPur500B.FieldByName('FUnitName').Value:=qryPur500B.FieldByName('I140_003').Value;
adsPur500B.FieldByName('FQty').Value:=qryPur500B.FieldByName('P500B_005').Value;
adsPur500B.FieldByName('FDate').Value:=qryPur500B.FieldByName('P500B_006').Value;
adsPur500B.FieldByName('FPlace').Value:=qryPur500B.FieldByName('P500B_007').Value;
adsPur500B.FieldByName('FRemark').Value:=qryPur500B.FieldByName('P500B_010').Value;
adsPur500B.FieldByName('FUnitRate').Value:=qryPur500B.FieldByName('P500B_011').Value;
adsPur500B.Post;
ALastNo:=qryPur500B.FieldByName('P500B_002').AsInteger;
qryPur500B.Next;
end;
adsPur500B.EnableControls;
end;
procedure TPur500_02Form.Action1Execute(Sender: TObject);
begin
inherited;
//核准
//0=新建,1=核准,2=完成,3=取消
if ADOQuery1.IsEmpty then
begin
ShowMsg('UMS10000002'); //表记录为空,操作无效
Abort;
end;
if ADOQuery1P500A_004.Value<>0 then
begin
ShowMsg('UMS10000565'); //仅新建状态的采购申请可以核准
Abort;
end;
ADOQuery1.Edit;
ADOQuery1P500A_004.Value:=1;
ADOQuery1.Post;
ShowMsg('UMS10000566'); //采购申请已成功设置为核准状态
end;
procedure TPur500_02Form.Action2Execute(Sender: TObject);
begin
inherited;
//取消
//0=新建,1=核准,2=完成,3=取消
if ADOQuery1.IsEmpty then
begin
ShowMsg('UMS10000002'); //表记录为空,操作无效
Abort;
end;
if ADOQuery1P500A_004.Value<>1 then
begin
ShowMsg('UMS10000567'); //仅核准状态的采购申请可以取消
Abort;
end;
ADOQuery1.Edit;
ADOQuery1P500A_004.Value:=2;
ADOQuery1.Post;
ShowMsg('UMS10000568'); //采购申请已成功设置为取消状态
end;
procedure TPur500_02Form.ADOQuery1P500A_004GetText(Sender: TField;
var Text: String; DisplayText: Boolean);
begin
inherited;
if ADOQuery1.IsEmpty then Exit;
Text:=AStatus[Sender.AsInteger];
end;
procedure TPur500_02Form.ADOQuery1P500A_005GetText(Sender: TField;
var Text: String; DisplayText: Boolean);
begin
inherited;
if ADOQuery1.IsEmpty then Exit;
Text:=AFrom[Sender.AsInteger];
end;
procedure TPur500_02Form.wwDBGrid1UpdateFooter(Sender: TObject);
var
ASumQty:Double;
begin
inherited;
ASumQty:=0;
ADODataSet1.Clone(adsPur500B);
ADODataSet1.DisableControls;
ADODataSet1.First;
while not ADODataSet1.Eof do
begin
ASumQty:=ASumQty+ADODataSet1.FieldByName('FQty').AsFloat;
ADODataSet1.Next;
end;
ADODataSet1.EnableControls;
wwDBGrid1.ColumnByName('FItemID').FooterValue:=GetDBString('COM00004002')+FloatToStrF(ADODataSet1.RecordCount,ffNumber,10,0); //记录总数
wwDBGrid1.ColumnByName('FQty').FooterValue:=FloatToStrF(ASumQty,ffNumber,10,2);
end;
procedure TPur500_02Form.edtItemCustomDlg(Sender: TObject);
begin
inherited;
//产品编号
HwSelDataForm:=THwSelDataForm.Create(Application);
HwSelDataForm.OpenSelData(qryInv150,nil);
if HwSelDataForm.ShowModal=1 then
begin
if not (adsPur500B.State in [dsInsert,dsEdit]) then
if adsPur500B.IsEmpty then adsPur500B.Append else adsPur500B.Edit;
adsPur500B.FieldByName('FItemNo').Value:=qryInv150.FieldByName('I150_001').Value;
adsPur500B.FieldByName('FItemID').Value:=qryInv150.FieldByName('I150_002').Value;
adsPur500B.FieldByName('FItemName').Value:=qryInv150.FieldByName('I150_003').Value;
adsPur500B.FieldByName('FEngItemName').Value:=qryInv150.FieldByName('I150_008').Value;
adsPur500B.FieldByName('FItemSpec').Value:=qryInv150.FieldByName('I150_004').Value;
adsPur500B.FieldByName('FUnitNo').Value:=qryInv150.FieldByName('I140_001').Value;
adsPur500B.FieldByName('FUnitID').Value:=qryInv150.FieldByName('I140_002').Value;
adsPur500B.FieldByName('FUnitName').Value:=qryInv150.FieldByName('I140_003').Value;
adsPur500B.FieldByName('FUnitRate').Value:=1;
adsPur500B.FieldByName('FQty').Value:=1;
adsPur500B.FieldByName('FDate').Value:=edtDate.Date;
adsPur500B.FieldByName('FPlace').Value:=null;
adsPur500B.FieldByName('FRemark').Value:=null;
adsPur500B.Post;
end;
end;
procedure TPur500_02Form.edtItemEnter(Sender: TObject);
begin
inherited;
if not ActSave.Enabled then Exit;
if not (adsPur500B.State in [dsInsert,dsEdit]) then
if adsPur500B.IsEmpty then adsPur500B.Append else adsPur500B.Edit;
end;
procedure TPur500_02Form.edtUnitCustomDlg(Sender: TObject);
var
ACustNo,AItemNo,AUnitNo:Integer;
begin
inherited;
//计算单位
if not edtUnit.Focused then edtUnit.SetFocus;
HwSelDataForm:=THwSelDataForm.Create(Application);
HwSelDataForm.OpenSelData(qryInv140,nil);
if HwSelDataForm.ShowModal=1 then
begin
if qryInv140.IsEmpty then Exit;
if not (adsPur500B.State in [dsInsert,dsEdit]) then
if adsPur500B.IsEmpty then adsPur500B.Append else adsPur500B.Edit;
adsPur500BFUnitNo.AsString:=qryInv140.FieldByName('I140_001').AsString;
adsPur500BFUnitID.AsString:=qryInv140.FieldByName('I140_002').AsString;
adsPur500BFUnitName.AsString:=qryInv140.FieldByName('I140_003').AsString;
ACustNo:=0;
AItemNo:=adsPur500B.FieldByName('FItemNo').AsInteger;
AUnitNo:=qryInv140.FieldByName('I140_001').AsInteger;
adsPur500BFUnitRate.Value:=GetUnitRate(ACustNo,AItemNo,AUnitNo);
end;
end;
procedure TPur500_02Form.sbPersonClick(Sender: TObject);
begin
inherited;
//请购人员
if not edtPerson.Focused then edtPerson.SetFocus;
HwSelDataForm:=THwSelDataForm.Create(Application);
HwSelDataForm.OpenSelData(qryHrm150,nil);
if HwSelDataForm.ShowModal=1 then
begin
edtPerson.Text:=qryHrm150.FieldByName('H150_002').AsString;
edtPersonName.Text:=qryHrm150.FieldByName('H150_003').AsString;
cbDept.Text:=qryHrm150.FieldByName('H100_002').AsString;
end;
end;
procedure TPur500_02Form.edtPersonExit(Sender: TObject);
begin
inherited;
//请购人员
if trim(edtPerson.Text)='' then Exit;
if qryHrm150.Locate('H150_002',edtPerson.Text,[]) then
begin
edtPerson.Text:=qryHrm150.FieldByName('H150_002').AsString;
edtPersonName.Text:=qryHrm150.FieldByName('H150_003').AsString;
cbDept.Text:=qryHrm150.FieldByName('H100_002').AsString;
end else
begin
ShowMsg('UMS10000642'); //输入的请购人员无效
edtPerson.Text:='';
edtPersonName.Text:='';
cbDept.Text:='';
edtPerson.SetFocus;
Abort;
end;
end;
procedure TPur500_02Form.sbPlaceClick(Sender: TObject);
begin
inherited;
//交货地点
if not edtPlace.Focused then edtPlace.SetFocus;
HwSelDataForm:=THwSelDataForm.Create(Application);
HwSelDataForm.OpenSelData(qryOrd152,nil);
if HwSelDataForm.ShowModal=1 then
begin
edtPlace.Text:=qryOrd152.FieldByName('O152_002').AsString;
edtRegion.Text:=qryOrd152.FieldByName('O120_002').AsString;
edtPlacePhone.Text:=qryOrd152.FieldByName('O152_006').AsString;
edtPlaceAddress.Text:=qryOrd152.FieldByName('O152_004').AsString;
edtPlaceContact.Text:=qryOrd152.FieldByName('O151_002').AsString;
edtPlaceDept.Text:=qryOrd152.FieldByName('O151_003').AsString;
edtPlacePosit.Text:=qryOrd152.FieldByName('O151_004').AsString;
end;
end;
procedure TPur500_02Form.edtPlaceExit(Sender: TObject);
begin
inherited;
//交货地点
if trim(edtPlace.Text)='' then Exit;
if qryOrd152.Locate('O152_002',edtPlace.Text,[]) then
begin
edtPlace.Text:=qryOrd152.FieldByName('O152_002').AsString;
edtRegion.Text:=qryOrd152.FieldByName('O120_002').AsString;
edtPlacePhone.Text:=qryOrd152.FieldByName('O152_006').AsString;
edtPlaceAddress.Text:=qryOrd152.FieldByName('O152_004').AsString;
edtPlaceContact.Text:=qryOrd152.FieldByName('O151_002').AsString;
edtPlaceDept.Text:=qryOrd152.FieldByName('O151_003').AsString;
edtPlacePosit.Text:=qryOrd152.FieldByName('O151_004').AsString;
end else
begin
ShowMsg('UMS10000420'); //输入的交货地点无效
edtPlace.SetFocus;
Abort;
end;
end;
procedure TPur500_02Form.sbPlaceContactClick(Sender: TObject);
begin
inherited;
//联系人员
if not edtPlaceContact.Focused then edtPlaceContact.SetFocus;
HwSelDataForm:=THwSelDataForm.Create(Application);
HwSelDataForm.OpenSelData(qryOrd151,nil);
if HwSelDataForm.ShowModal=1 then
begin
if qryOrd151.IsEmpty then Exit;
edtPlaceContact.Text:=qryOrd151.FieldByName('O151_002').AsString;
edtPlaceDept.Text:=qryOrd151.FieldByName('O151_003').AsString;
edtPlacePosit.Text:=qryOrd151.FieldByName('O151_004').AsString;
end;
end;
procedure TPur500_02Form.edtPlaceContactExit(Sender: TObject);
begin
inherited;
//联系人员
if trim(edtPlaceContact.Text)='' then Exit;
if qryOrd151.Locate('O151_002',edtPlaceContact.Text,[]) then
begin
edtPlaceContact.Text:=qryOrd151.FieldByName('O151_002').AsString;
edtPlaceDept.Text:=qryOrd151.FieldByName('O151_003').AsString;
edtPlacePosit.Text:=qryOrd151.FieldByName('O151_004').AsString;
end else
begin
ShowMsg('UMS10000427'); //输入的联系人员无效
edtPlaceContact.SetFocus;
Abort;
end;
end;
procedure TPur500_02Form.adsPur500BNewRecord(DataSet: TDataSet);
begin
inherited;
ALastNo:=ALastNo+1;
adsPur500BFNo.Value:=ALastNo;
adsPur500BFQty.Value:=1;
adsPur500BFDate.Value:=edtDate.Date;
adsPur500BFUnitRate.Value:=1;
end;
procedure TPur500_02Form.CheckItem;
begin
//产品编号
if not ActSave.Enabled then Exit;
if not qryInv150.Active then qryInv150.Open;
if qryInv150.Locate('I150_002',adsPur500BFItemID.AsString,[]) then
begin
if not (adsPur500B.State in [dsInsert,dsEdit]) then
if adsPur500B.IsEmpty then adsPur500B.Append else adsPur500B.Edit;
adsPur500BFItemNo.AsInteger:=qryInv150.FieldByName('I150_001').AsInteger;
adsPur500BFItemID.AsString:=qryInv150.FieldByName('I150_002').AsString;
adsPur500BFItemName.AsString:=qryInv150.FieldByName('I150_003').AsString;
adsPur500BFEngItemName.AsString:=qryInv150.FieldByName('I150_008').AsString;
adsPur500BFItemSpec.AsString:=qryInv150.FieldByName('I150_004').AsString;
adsPur500BFUnitNo.AsInteger:=qryInv150.FieldByName('I140_001').AsInteger;
adsPur500BFUnitID.AsString:=qryInv150.FieldByName('I140_002').AsString;
adsPur500BFUnitName.AsString:=qryInv150.FieldByName('I140_003').AsString;
end else
begin
ShowMsg('UMS10000267'); //输入的产品编号无效
if not (adsPur500B.State in [dsInsert,dsEdit]) then adsPur500B.Edit;
adsPur500BFItemID.AsString:='';
wwDBGrid1.SetActiveField('FItemID');
Abort;
end;
end;
procedure TPur500_02Form.CheckUnit;
begin
//计量单位
if not ActSave.Enabled then Exit;
if not qryInv150.Active then qryInv150.Open;
if not qryInv150.Locate('I150_002',edtItem.Text,[]) then
begin
ShowMsg('UMS10000422'); //必须先输入正确的产品编号
wwDBGrid1.SetActiveField('FItemID');
Abort;
end;
if not qryInv140.Active then qryInv140.Open;
if qryInv140.Locate('I140_002',adsPur500BFUnitID.AsString,[]) then
begin
if not (adsPur500B.State in [dsInsert,dsEdit]) then
if adsPur500B.IsEmpty then adsPur500B.Append else adsPur500B.Edit;
adsPur500BFUnitNo.AsString:=qryInv140.FieldByName('I140_001').AsString;
adsPur500BFUnitID.AsString:=qryInv140.FieldByName('I140_002').AsString;
adsPur500BFUnitName.AsString:=qryInv140.FieldByName('I140_003').AsString;
end else
begin
ShowMsg('UMS10000411'); //输入的计量单位无效
if not (adsPur500B.State in [dsInsert,dsEdit]) then adsPur500B.Edit;
adsPur500BFUnitID.AsString:='';
wwDBGrid1.SetActiveField('FUnitID');
Abort;
end;
end;
procedure TPur500_02Form.adsPur500BBeforePost(DataSet: TDataSet);
begin
inherited;
CheckItem;
CheckUnit;
end;
procedure TPur500_02Form.wwDBGrid1Enter(Sender: TObject);
begin
inherited;
OnKeyDown:=nil;
end;
procedure TPur500_02Form.wwDBGrid1Exit(Sender: TObject);
begin
inherited;
OnKeyDown:=AKeyEvent;
end;
initialization
RegisterClass(TPur500_02Form);
finalization
UnRegisterClass(TPur500_02Form);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -