inv_saleproduct_d.pas
来自「一个MRPII系统源代码版本」· PAS 代码 · 共 595 行 · 第 1/2 页
PAS
595 行
begin
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:='Select MpsFinishQty'
+' From Mps Where MpsId='+Edt_MpsId.Text+'';
AdoQry_Tmp.Open;
if (AdoQry_Tmp.fieldbyname('MpsFinishQty').AsFloat+StrToFloat(Edt_InvBillQty.Text))<0 then
begin
DispInfo('冲销数量不能大于累计完成数量!',3);
TWinControl(Sender).SetFocus;
Abort;
end;
end;
end;
end;
end;
procedure TFrm_Inv_SaleProduct_D.FormCreate(Sender: TObject);
begin
inherited;
LineCount:=-1;
end;
procedure TFrm_Inv_SaleProduct_D.Edt_MpsIdExit(Sender: TObject);
var
BookmArk:TBookmArk;
begin
inherited;
if(ActiveControl.Name='btn_Cancel')then
Abort;
if Param2<>'NoMps' then
begin
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:='Select MrpParamValueN From MrpParam'
+' Where MrpParamCode=''autoBalanceMps''';
AdoQry_Tmp.Open;
if AdoQry_Tmp.fieldbyname('MrpParamValueN').AsString<>'1' then
begin
if Edt_MpsId.Text='' then
begin
with TFrm_Inv_MpsHint.Create(Self) do
begin
InitForm(DBConnect,ExtEdt_ItemCode.Text,Lbl_ItemName.Caption,Edt_MpsId.Text);
if ShowModal=mrOk then
TEdit(Sender).Text:=MpsID;
Release;
end;
TWinControl(Sender).SetFocus;
Abort;
end;
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:='Select MpsId'
+' From Mps Where MpsId='+Edt_MpsId.Text+''
+' And MpsStatus=3'
+' And ItemCode='''+ExtEdt_ItemCode.Text+'''';
AdoQry_Tmp.Open;
if AdoQry_Tmp.fieldbyname('MpsId').AsString='' then
begin
with TFrm_Inv_MpsHint.Create(Self) do
begin
InitForm(DBConnect,ExtEdt_ItemCode.Text,Lbl_ItemName.Caption,Edt_MpsId.Text);
if ShowModal=mrOk then
TEdit(Sender).Text:=MpsID;
Release;
end;
TWinControl(Sender).SetFocus;
Abort;
end;
if (Status='Add')or((Status<>'Add')and(
AdoQry_Body.fieldbyname('MpsId').AsString<>TEdit(Sender).Text))then
begin
BookmArk:=AdoQry_Body.GetBookmArk;
AdoQry_Body.First;
while not AdoQry_Body.Eof do
begin
if(AdoQry_Body.fieldbyname('MpsId').AsString=TEdit(Sender).Text)then
begin
DispInfo(' 该"主生产计划ID"在本单据中已经存在,不允许增加! ',3);
TWinControl(Sender).SetFocus;
AdoQry_Body.GotoBookmArk(BookmArk);
AdoQry_Body.FreeBookmArk(BookmArk);
Abort;
end;
AdoQry_Body.Next;
end;
AdoQry_Body.GotoBookmArk(BookmArk);
AdoQry_Body.FreeBookmArk(BookmArk);
end;
end
else
begin
TEdit(Sender).Text:='';
end;
end;
end;
procedure TFrm_Inv_SaleProduct_D.Edt_MpsIdKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
inherited;
if(Key=120)then
begin
with TFrm_Inv_MpsHint.Create(Self) do
begin
InitForm(DBConnect,ExtEdt_ItemCode.Text,Lbl_ItemName.Caption,Edt_MpsId.Text);
if ShowModal=mrOk then
TEdit(Sender).Text:=MpsID;
Release;
end;
TWinControl(Sender).SetFocus;
end;
end;
procedure TFrm_Inv_SaleProduct_D.Edt_InvBillQtyChange(Sender: TObject);
begin
inherited;
if LockFlag=0 then
begin
LockFlag:=1;
try
AllChange(Sender);
Edt_InvBillSaleAmount.Text:=FormatFloat('#0.00',StrToFloat(TEdit(Sender).Text)
*StrToFloat(Edt_InvBillSalePrice.Text));
Edt_InvBillNoTaxSaleAmount.Text:=FormatFloat('#0.00',StrToFloat(TEdit(Sender).Text)
*StrToFloat(Edt_InvBillNoTaxSalePrice.Text));
except
LockFlag:=0;
end;
LockFlag:=0;
end;
end;
procedure TFrm_Inv_SaleProduct_D.Edt_InvBillSalePriceChange(
Sender: TObject);
begin
inherited;
if LockFlag=0 then
begin
LockFlag:=1;
try
AllChange(Sender);
Edt_InvBillNoTaxSalePrice.Text:=FloatToStr((StrToFloat(Edt_InvBillSalePrice.Text)/
(1+AdoQry_Head.fieldbyname('InvBillTAXRATE').AsFloat/100)));
Edt_InvBillSaleAmount.Text:=FormatFloat('#0.00',StrToFloat(Edt_InvBillQty.Text)
*StrToFloat(Edt_InvBillSalePrice.Text));
Edt_InvBillNoTaxSaleAmount.Text:=FormatFloat('#0.00',StrToFloat(Edt_InvBillQty.Text)
*StrToFloat(Edt_InvBillNoTaxSalePrice.Text));
except
LockFlag:=0;
end;
LockFlag:=0;
end;
end;
procedure TFrm_Inv_SaleProduct_D.Edt_InvBillSaleAmountChange(
Sender: TObject);
begin
inherited;
if LockFlag=0 then
begin
LockFlag:=1;
try
AllChange(Sender);
if StrToFloat(Edt_InvBillQty.Text)<>0 then
Edt_InvBillSalePrice.Text:=FloatToStr(StrToFloat(Edt_InvBillSaleAmount.Text)
/StrToFloat(Edt_InvBillQty.Text));
Edt_InvBillNoTaxSalePrice.Text:=FloatToStr((StrToFloat(Edt_InvBillSalePrice.Text)/
(1+AdoQry_Head.fieldbyname('InvBillTAXRATE').AsFloat/100)));
Edt_InvBillNoTaxSaleAmount.Text:=FormatFloat('#0.00',StrToFloat(Edt_InvBillQty.Text)
*StrToFloat(Edt_InvBillNoTaxSalePrice.Text));
except
LockFlag:=0;
end;
LockFlag:=0;
end;
end;
procedure TFrm_Inv_SaleProduct_D.Edt_InvBillNoTaxSalePriceChange(
Sender: TObject);
begin
inherited;
if LockFlag=0 then
begin
LockFlag:=1;
try
AllChange(Sender);
Edt_InvBillSalePrice.Text:=FloatToStr((StrToFloat(Edt_InvBillNoTaxSalePrice.Text)*
(1+AdoQry_Head.fieldbyname('InvBillTAXRATE').AsFloat/100)));
Edt_InvBillSaleAmount.Text:=FormatFloat('#0.00',StrToFloat(Edt_InvBillQty.Text)
*StrToFloat(Edt_InvBillSalePrice.Text));
Edt_InvBillNoTaxSaleAmount.Text:=FormatFloat('#0.00',StrToFloat(Edt_InvBillQty.Text)
*StrToFloat(Edt_InvBillNoTaxSalePrice.Text));
except
LockFlag:=0;
end;
LockFlag:=0;
end;
end;
procedure TFrm_Inv_SaleProduct_D.Edt_InvBillNoTaxSaleAmountChange(
Sender: TObject);
begin
inherited;
if LockFlag=0 then
begin
LockFlag:=1;
try
AllChange(Sender);
if StrToFloat(Edt_InvBillQty.Text)<>0 then
Edt_InvBillNoTaxSalePrice.Text:=FloatToStr(StrToFloat(Edt_InvBillNoTaxSaleAmount.Text)
/StrToFloat(Edt_InvBillQty.Text));
Edt_InvBillSalePrice.Text:=FloatToStr((StrToFloat(Edt_InvBillNoTaxSalePrice.Text)*
(1+AdoQry_Head.fieldbyname('InvBillTAXRATE').AsFloat/100)));
Edt_InvBillSaleAmount.Text:=FormatFloat('#0.00',StrToFloat(Edt_InvBillQty.Text)
*StrToFloat(Edt_InvBillSalePrice.Text));
except
LockFlag:=0;
end;
LockFlag:=0;
end;
end;
procedure TFrm_Inv_SaleProduct_D.ExtEdt_ItemCodeKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
var
InvFieldName:String;
begin
inherited;
if Key=120 then
begin
InvFieldName:=GetInvField(AdoQry_Tmp,AdoQry_Head.fieldbyname('WHCode').
AsString
,AdoQry_Head.fieldbyname('WhPositionCode').AsString,'CurrentInv');
Frm_Sys_Hint:=TFrm_Sys_Hint.Create(nil);
if Param2<>'NoMps' then
begin
Frm_Sys_Hint.InitForm(DBConnect,
'Select Distinct Mps.ItemCode As ''物料代码'''
+',CurrentInv.'+InvFieldName+' As ''库存量'''
+',Item.ItemName As ''物料描述'''
+' From Mps Join Item On Mps.ItemCode=Item.ItemCode'
+' And Item.CanSale=1 And Item.ItemUsable=1'
+' Left Join (Select ItemCode,'+InvFieldName
+' From CurrentInv'
+' Where WHCode='''+AdoQry_Head.fieldbyname('WHCode').AsString+''''
+' And WhPositionCode='''+AdoQry_Head.fieldbyname('WhPositionCode').AsString+''''
+') CurrentInv On Mps.ItemCode=CurrentInv.ItemCode'
+' Where MpsStatus=3'
);
end
else
begin
Frm_Sys_Hint.InitForm(DBConnect,
'Select Item.ItemCode As ''物料代码'''
+',CurrentInv.'+InvFieldName+' As ''库存量'''
+',Item.ItemName As ''物料描述'''
+' From Item'
+' Join (Select ItemCode,'+InvFieldName
+' From CurrentInv'
+' Where WHCode='''+AdoQry_Head.fieldbyname('WHCode').AsString+''''
+' And WhPositionCode='''+AdoQry_Head.fieldbyname('WhPositionCode').AsString+''''
+') CurrentInv On Item.ItemCode=CurrentInv.ItemCode'
);
end;
if Frm_Sys_Hint.ShowModal=mrOk then
TEdit(Sender).Text:=Frm_Sys_Hint.GetValueByFieldIndex(0);
Frm_Sys_Hint.Release;
end;
end;
procedure TFrm_Inv_SaleProduct_D.Edt_BatchNoExit(Sender: TObject);
begin
inherited;
if(ActiveControl.Name='btn_Cancel')then
Abort;
if TEdit(Sender).ReadOnly=False then
begin
if not BatchNoCheck(AdoQry_Tmp,TEdit(Sender).Text,ExtEdt_ItemCode.Text
,'',AdoQry_Head.fieldbyname('InvBillDate').AsString) then
begin
TWinControl(Sender).SetFocus;
Abort;
end;
end;
end;
procedure TFrm_Inv_SaleProduct_D.Edt_BatchNoKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
inherited;
if(Key=120)and(TEdit(Sender).ReadOnly=False)then
TEdit(Sender).Text:=BatchHint(DBConnect,ExtEdt_ItemCode.Text
,'',AdoQry_Head.fieldbyname('WHCode').AsString
,AdoQry_Head.fieldbyname('WhPositionCode').AsString);
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?