📄 pm_pc_entry_d.pas
字号:
and (Param1='1'),
'Edt_PcTaxPrice,Edt_PcNoTaxPrice,',
'');
SetFocus_Control:=Edt_PcTaxPrice;
end
else
EnableControls:='none';
end
else if (CurrentStatus='Add') Or (IsPriceRequestPass=0) then
begin
SetFocus_Control:=ExtEdt_ItemCode;
EnableControls:='ExtEdt_ItemCode,MEdt_PcStArtDate,MEdt_PcendDate'
+',Edt_PcStArtQty,Edt_PcendQty,'
+IifString( (Param1='0'),
'Edt_PcTaxPrice_Formal,Edt_PcNoTaxPrice_Formal,',
'')
+IifString( (Param1='1'),
'Edt_PcTaxPrice,Edt_PcNoTaxPrice,',
'');
end;
end;
procedure TFrm_Pm_Pc_Entry_D.MEdt_PcendDateExit(Sender: TObject);
begin
inherited;
if(ActiveControl.Name='btn_Cancel')then
Abort;
DateCheck(Sender);
if MEdt_PcStArtDate.Text>=MEdt_PcendDate.Text then
begin
DispInfo('起始日期不能大于等于终止日期',3);
TWinControl(Sender).SetFocus;
Abort;
end;
end;
{
procedure MEdt_PcStArtDateExit(Sender: TObject);
procedure TFrm_Pm_Pc_Entry_D.MEdt_PcStArtDateExit(Sender: TObject);
var
StArtDate,endDate:TDateTime;
s1,s2:String;
Flag:Integer;
BookmArk:TBookmArk;
begin
inherited;
if(ActiveControl.Name='btn_Cancel')then
Abort;
DateCheck(Sender);
if OnlyOne=1 then
Abort;
AdoQry_Body.DisableControls;
BookmArk:=AdoQry_Body.GetBookmArk;
AdoQry_Body.First;
StArtDate:=AdoQry_Body.fieldbyname('PcStArtDate').AsDateTime;
endDate:=AdoQry_Body.fieldbyname('PcendDate').AsDateTime+1;
Flag:=0;
while not AdoQry_Body.Eof do
begin
if ExtEdt_ItemCode.Text=AdoQry_Body.fieldbyname('ItemCode').AsString then
begin
if Flag=0 then
begin
StArtDate:=AdoQry_Body.fieldbyname('PcStArtDate').AsDateTime;
endDate:=AdoQry_Body.fieldbyname('PcendDate').AsDateTime+1;
end;
Flag:=1;
if StArtDate<AdoQry_Body.fieldbyname('PcStArtDate').AsDateTime then
StArtDate:=AdoQry_Body.fieldbyname('PcStArtDate').AsDateTime;
if endDate<AdoQry_Body.fieldbyname('PcendDate').AsDateTime+1 then
endDate:=AdoQry_Body.fieldbyname('PcendDate').AsDateTime+1;
end;
AdoQry_Body.Next;
end;
AdoQry_Body.GotoBookmArk(BookmArk);
AdoQry_Body.FreeBookmArk(BookmArk);
AdoQry_Body.EnableControls;
if Flag=1 then
begin
s1:=FormatDateTime('yyyy.mm.dd',StArtDate);
s2:=FormatDateTime('yyyy.mm.dd',endDate);
if(MEdt_PcStArtDate.Text<>FormatDateTime('yyyy.mm.dd',StArtDate)) and
(MEdt_PcStArtDate.Text<>FormatDateTime('yyyy.mm.dd',endDate)) then
begin
DispInfo('起始日期不能跟上面的衔接',3);
TWinControl(Sender).SetFocus;
Abort;
end;
end;
end;
procedure MEdt_PcendDateExit(Sender: TObject);
procedure TFrm_Pm_Pc_Entry_D.MEdt_PcendDateExit(Sender: TObject);
var
StArtDate,endDate:TDateTime;
Flag:Integer;
BookmArk:TBookmArk;
begin
inherited;
if(ActiveControl.Name='btn_Cancel')then
Abort;
DateCheck(Sender);
if MEdt_PcStArtDate.Text>=MEdt_PcendDate.Text then
begin
DispInfo('起始日期不能大于等于终止日期',3);
TWinControl(Sender).SetFocus;
Abort;
end;
if OnlyOne=1 then
Abort;
AdoQry_Body.DisableControls;
BookmArk:=AdoQry_Body.GetBookmArk;
AdoQry_Body.First;
StArtDate:=AdoQry_Body.fieldbyname('PcStArtDate').AsDateTime;
endDate:=AdoQry_Body.fieldbyname('PcendDate').AsDateTime;
Flag:=0;
while not AdoQry_Body.Eof do
begin
if ExtEdt_ItemCode.Text=AdoQry_Body.fieldbyname('ItemCode').AsString then
begin
if Flag=0 then
begin
StArtDate:=AdoQry_Body.fieldbyname('PcStArtDate').AsDateTime;
endDate:=AdoQry_Body.fieldbyname('PcendDate').AsDateTime;
end;
Flag:=1;
if StArtDate<AdoQry_Body.fieldbyname('PcStArtDate').AsDateTime then
StArtDate:=AdoQry_Body.fieldbyname('PcStArtDate').AsDateTime;
if endDate<AdoQry_Body.fieldbyname('PcendDate').AsDateTime then
endDate:=AdoQry_Body.fieldbyname('PcendDate').AsDateTime;
end;
AdoQry_Body.Next;
end;
if Flag=1 then
begin
if(MEdt_PcStArtDate.Text=FormatDateTime('yyyy.mm.dd',StArtDate))then
begin
if (MEdt_PcendDate.Text<>FormatDateTime('yyyy.mm.dd',endDate))then
begin
DispInfo('终止日期不能跟上面的衔接',3);
TWinControl(Sender).SetFocus;
AdoQry_Body.GotoBookmArk(BookmArk);
AdoQry_Body.FreeBookmArk(BookmArk);
AdoQry_Body.EnableControls;
Abort;
end
else
begin
AdoQry_Body.First;
while not AdoQry_Body.Eof do
begin
if (ExtEdt_ItemCode.Text=AdoQry_Body.fieldbyname('ItemCode').AsString)
and(AdoQry_Body.fieldbyname('PcStArtDate').AsString=MEdt_PcStArtDate.Text)
and(AdoQry_Body.fieldbyname('PcendDate').AsString=MEdt_PcendDate.Text)
and(AdoQry_Body.fieldbyname('PcStArtQty').AsString='0')
and(AdoQry_Body.fieldbyname('PcendQty').AsString='0') then
begin
DispInfo('同一时间段 重复的输入',3);
ActiveControl:=MEdt_PcStArtDate;
Break;
end;
AdoQry_Body.Next;
end;
end;
end;
end;
AdoQry_Body.GotoBookmArk(BookmArk);
AdoQry_Body.FreeBookmArk(BookmArk);
AdoQry_Body.EnableControls;
end;
procedure Edt_PcStArtQtyExit(Sender: TObject);
procedure TFrm_Pm_Pc_Entry_D.Edt_PcStArtQtyExit(Sender: TObject);
var
MaxFloat:Double;
BookmArk:TBookmArk;
begin
inherited;
if(ActiveControl.Name='btn_Cancel')then
Abort;
FloatCheck(Sender);
AdoQry_Body.DisableControls;
BookmArk:=AdoQry_Body.GetBookmArk;
AdoQry_Body.First;
MaxFloat:=-1;
while not AdoQry_Body.Eof do
begin
if (ExtEdt_ItemCode.Text=AdoQry_Body.fieldbyname('ItemCode').AsString)and
(MEdt_PcStArtDate.Text=FormatDateTime('yyyy.mm.dd',
AdoQry_Body.fieldbyname('PcStArtDate').AsDateTime))and
(MEdt_PcendDate.Text=FormatDateTime('yyyy.mm.dd',
AdoQry_Body.fieldbyname('PcendDate').AsDateTime))and
(MaxFloat<AdoQry_Body.fieldbyname('PcendQty').AsFloat)then
MaxFloat:=AdoQry_Body.fieldbyname('PcendQty').AsFloat;
AdoQry_Body.Next;
end;
AdoQry_Body.GotoBookmArk(BookmArk);
AdoQry_Body.FreeBookmArk(BookmArk);
AdoQry_Body.EnableControls;
if (OnlyOne<>1)and(MaxFloat<>-1)and(MaxFloat<>StrToFloat(Edt_PcStArtQty.Text)) then
begin
DispInfo('起始数量不能跟上面的衔接',3);
TWinControl(Sender).SetFocus;
Abort;
end;
if ((OnlyOne=1)or(MaxFloat=-1))and(StrToFloat(Edt_PcStArtQty.Text)<>0) then
begin
DispInfo('新的日期时段起始数量必须从零开始!',3);
TWinControl(Sender).SetFocus;
Abort;
end;
end;
}
procedure TFrm_Pm_Pc_Entry_D.Edt_PcStArtQtyExit(Sender: TObject);
begin
inherited;
if(ActiveControl.Name='btn_Cancel')then
Abort;
FloatCheck(Sender);
if StrToFloat(Edt_PcStArtQty.Text)<0 then
begin
DispInfo('起始数量不能小于零',3);
TWinControl(Sender).SetFocus;
Abort;
end;
end;
procedure TFrm_Pm_Pc_Entry_D.btn_okClick(Sender: TObject);
var ExistsSc : Boolean;
SqlText :String;
begin
ExistsSc := True;
ExecuteSql(AdoQry_Tmp,'select * from PmParam '
+' where PmParamCode='+QuotedStr('PoPriceRequestispo'),0);
If AdoQry_Tmp.fieldbyname('PmParamValueN').AsInteger = 1 then
begin
SqlText := 'select * from ItemSampleNo '
+' where ItemCode='+QuotedStr(ExtEdt_ItemCode.Text)
+' and VendorCode='+QuotedStr(VendorCode)
+' and StArtDate<='+QuotedStr(Medt_PcStArtDate.Text)
+' and StArtDate<='+QuotedStr(Medt_PcendDate.Text)
+' and endDate>='+QuotedStr(Medt_PcendDate.Text);
ExecuteSql(AdoQry_Tmp,SqlText,0);
If AdoQry_Tmp.RecordCount=0 then
begin
DispInfo('该供应商没有该物料该时间段的样品单号!',3);
If Medt_PcStArtDate.CanFocus then
Medt_PcStArtDate.SetFocus;
Abort;
end;
end;
if existsPC(VendorCode,Trim(Extedt_ItemCode.text),medt_PcstArtdate.Text,medt_Pcenddate.Text,strtofloat(edt_PcstArtqty.Text),strtofloat(edt_Pcendqty.text)) then
begin
DispInfo('已存在该供应商该时间段及数量段的合同!',3);
medt_PcstArtdate.SetFocus;
abort;
end;
ExecuteSql(AdoQry_Tmp,'Select * from Sc_PriceMaster '
+' where ItemCode =' +QuotedStr(ExtEdt_ItemCode.Text),0);
If AdoQry_Tmp.RecordCount = 0 then ExistsSc := False;
ExecuteSql(AdoQry_Tmp,'Select * from Sc_CostMaster '
+' where ItemCode =' +QuotedStr(ExtEdt_ItemCode.Text),0);
If AdoQry_Tmp.RecordCount = 0 then ExistsSc := False;
If (Status='Add') and (Not ExistsSc) then
begin
If DispInfo('该物料没有标准成本,是否将该价格作为标准成本价!',2)<>'y' then
begin
If Edt_PcNoTaxPrice.CanFocus then Edt_PcNoTaxPrice.SetFocus;
Abort;
end;
end;
Edt_PcTaxPrice.OnExit(Edt_PcTaxPrice);
Edt_PcNoTaxPrice.OnExit(Edt_PcNoTaxPrice);
inherited;
end;
procedure TFrm_Pm_Pc_Entry_D.ExtEdt_ItemCodeButtonClick(Sender: TObject);
begin
inherited;
CommonHint(Sender,AdoQry_Tmp,'ItemName','物料名称','ItemCode',
'物料代码','Item','PmCode In (1,2,3) and ItemUsable=1 ');
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:='Select Item.PmCode,Uom.UomName'
+' From Item Join Uom On Item.UomCode=Uom.UomCode'
+' Where Item.ItemCode='''+TExtEdit(Sender).Text+'''';
AdoQry_Tmp.Open;
Lbl_UomName.Text:=AdoQry_Tmp.fieldbyname('UomName').AsString;
if AdoQry_Tmp.fieldbyname('PmCode').AsString='1' then
CmBx_PcPriceType.ItemIndex:=0
else
CmBx_PcPriceType.ItemIndex:=1;
end;
procedure TFrm_Pm_Pc_Entry_D.Edt_PcTaxPrice_FormalExit(Sender: TObject);
begin
inherited;
FloatCheck(Sender);
if Changed then
begin
try
Edt_PcNoTaxPrice_Formal.Text:=FormatFloat('0.000000',(StrToFloat(Edt_PcTaxPrice_Formal.Text)/(1+
AdoQry_Head.fieldbyname('PCTaxRate_Percent').AsFloat/100)));
except
end;
end;
end;
procedure TFrm_Pm_Pc_Entry_D.Edt_PcNoTaxPrice_FormalExit(Sender: TObject);
begin
inherited;
FloatCheck(Sender);
if Changed then
begin
try
Edt_PcTaxPrice_Formal.Text:=FloatToStr((StrToFloat(Edt_PcNoTaxPrice_Formal.Text)*
(1+AdoQry_Head.fieldbyname('PCTaxRate_Percent').AsFloat/100)));
except
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -