📄 sal_enter_saleorder_d.pas
字号:
+' Join Sa_SaleContract '
+' On Sa_SaleContractLine.SlcNo=Sa_SaleContract.SlcNo '
+' Where CustomerCode='''+CustomerCode+''' '
+' and CurrencyCode='+QuotedStr(CurrencyCode)
+' and StArtQty<='+Edt_SloQty.Text +' and endQty>='+Edt_SloQty.Text
+' And StArtDate<='''+MEdt_SloLineDate.text+''' '
+' And endDate>='''+MEdt_SloLineDate.text+''' And ItemCode='''+ExtEdt_ItemCode.Text+''' '
+' Order By CreateDate DESC ';
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:=SqlText;
AdoQry_Tmp.Open;
if Not AdoQry_Tmp.Eof then
begin
Edt_TaxPrice.Text :=AdoQry_Tmp.fieldbyname('TaxPrice').AsString;
Edt_NoTaxPrice.Text :=AdoQry_Tmp.fieldbyname('NoTaxPrice').AsString;
end;
if StrToFloat(Edt_TaxPrice.text) <> 0 then
begin
Edt_TaxAmount.Text:= FloatToStr(StrToFloat(Edt_TaxPrice.text)*StrToFloat(Edt_SloQty.text));
Edt_NoTaxAmount.Text:= FloatToStr(StrToFloat(Edt_NoTaxPrice.text)*StrToFloat(Edt_SloQty.text));
end;
end;
procedure TFrm_Sal_Enter_SaleOrder_D.Edt_SloQtyExit(Sender: TObject);
begin
inherited;
if ActiveControl <> btn_Cancel then
begin
try
Edt_SloQty.text := floattostr(StrToFloat(Edt_SloQty.Text));
except
DispInfo('请输入数据类型!',3);
TWincontrol(Sender).SetFocus;
Abort;
end;
if StrToFloat(Edt_SloQty.Text)<=0 then
begin
DispInfo('约定交货量不能小于或等于0!',3);
TWincontrol(Sender).SetFocus;
Abort;
end
else
if Status<>'Add' then
begin
if StrToFloat(Edt_SloQty.Text)<StrToFloat(Edt_ShipQty.text) then
begin
DispInfo('"约定交货量"不可以小于"已发货量"!',3);
TWincontrol(Sender).SetFocus;
Abort
end;
end;
if StrToFloat(Edt_TaxPrice.text) <> 0 then
begin
Edt_TaxAmount.Text:= FloatToStr(StrToFloat(Edt_TaxPrice.text)*StrToFloat(Edt_SloQty.text));
Edt_NoTaxAmount.Text:= FloatToStr(StrToFloat(Edt_NoTaxPrice.text)*StrToFloat(Edt_SloQty.text));
end;
end;
end;
procedure TFrm_Sal_Enter_SaleOrder_D.Edt_TaxPriceExit(Sender: TObject);
begin
inherited;
if ActiveControl <> btn_Cancel then
begin
try
Edt_TaxPrice.Text := FloattoStr(StrToFloat(Edt_TaxPrice.Text));
except
DispInfo('请输入数据类型!',3);
TWincontrol(Sender).SetFocus;
Abort;
end;
if StrToFloat(Edt_TaxPrice.Text)<=0 then
begin
DispInfo('含税单价不能小于或等于0!',3);
TWincontrol(Sender).SetFocus;
Abort;
end;
if Edt_TaxPrice.Modified then
begin
Edt_NoTaxPrice.Text:=FloatToStr(StrToFloat(Edt_TaxPrice.Text)/(1+StrtoFloat(TaxRate_Percent)/100));
Edt_TaxAmount.Text:= FloatToStr(StrToFloat(Edt_TaxPrice.text)*StrToFloat(Edt_SloQty.text));
Edt_NoTaxAmount.Text:= FloatToStr(StrToFloat(Edt_NoTaxPrice.text)*StrToFloat(Edt_SloQty.text));
end;
end;
end;
procedure TFrm_Sal_Enter_SaleOrder_D.Edt_NoTaxPriceExit(Sender: TObject);
begin
inherited;
if ActiveControl <> btn_Cancel then
begin
try
Edt_NoTaxPrice.Text := FloatToStr(StrToFloat(Edt_NoTaxPrice.Text));
except
DispInfo('请输入数据类型!',3);
TWincontrol(Sender).SetFocus;
Abort;
end;
if StrToFloat(Edt_NoTaxPrice.Text)<0 then
begin
DispInfo('未税单价不能小于0!',3);
TWincontrol(Sender).SetFocus;
Abort;
end;
if Edt_NoTaxPrice.Modified then
begin
Edt_TaxPrice.Text:=FloatToStr(StrToFloat(Edt_NoTaxPrice.Text)*(1+StrtoFloat(TaxRate_Percent)/100));
Edt_TaxAmount.Text:= FloatToStr(StrToFloat(Edt_TaxPrice.text)*StrToFloat(Edt_SloQty.text));
Edt_NoTaxAmount.Text:= FloatToStr(StrToFloat(Edt_NoTaxPrice.text)*StrToFloat(Edt_SloQty.text));
end;
end;
end;
procedure TFrm_Sal_Enter_SaleOrder_D.Edt_DiSCountRateExit(Sender: TObject);
begin
inherited;
if ActiveControl <> btn_Cancel then
begin
try
Edt_DiSCountRate.Text := FloatToStr(StrToFloat(Edt_DiSCountRate.Text));
except
DispInfo('请输入数据类型!',3);
TWincontrol(Sender).SetFocus;
Abort;
end;
if StrToFloat(Edt_DiSCountRate.Text)<0 then
begin
DispInfo('未税单价不能小于0!',3);
TWincontrol(Sender).SetFocus;
Abort;
end;
if Edt_DiSCountRate.Modified then
Edt_DiSCountAmount.Text:= FloatToStr(StrToFloat(Edt_TaxAmount.text)*StrToFloat(Edt_DiSCountRate.text)/100);
end;
end;
procedure TFrm_Sal_Enter_SaleOrder_D.ExtEdt_ItemCodeKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
inherited;
If key=120 Then
CommOnHint(Sender,AdoQry_Tmp,'ItemName','物料描述','ItemCode',
'物料代码',' Item ','ItemUsable=1 and ItemType=0 and CanSale=1 ');
end;
procedure TFrm_Sal_Enter_SaleOrder_D.MEdt_SloLineDateExit(Sender: TObject);
var
SqlText:String;
begin
inherited;
If ActiveControl.Name='btn_Cancel' Then
Exit;
If SlCalendar(DbConnect,MEdt_SlolineDate.Text,0)<>MEdt_SlolineDate.Text Then
begin
DispInfo(MEdt_SlolineDate.Text+'不是工作日!',3);
MEdt_SlolineDate.Text:=SlCalendar(DbConnect,MEdt_SlolineDate.Text,0);
MEdt_SlolineDate.SetFocus;
Abort;
end;
SqlText:=' Select Top 1 NoTaxPrice,TaxPrice '
+' From Sa_SaleContractLine '
+' Join Sa_SaleContract '
+' On Sa_SaleContractLine.SlcNo=Sa_SaleContract.SlcNo '
+' Where CustomerCode='''+CustomerCode+''' And StArtDate<='''+MEdt_SloLineDate.text+''' '
+' And endDate>='''+MEdt_SloLineDate.text+''' And ItemCode='''+ExtEdt_ItemCode.Text+''' '
+' Order By CreateDate DESC ';
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:=SqlText;
AdoQry_Tmp.Open;
if Not AdoQry_Tmp.Eof then
begin
Edt_TaxPrice.Text :=AdoQry_Tmp.fieldbyname('TaxPrice').AsString;
Edt_NoTaxPrice.Text :=AdoQry_Tmp.fieldbyname('NoTaxPrice').AsString;
end;
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:='Select SalePriceContrl From Customer Where CustomerCode='''+CustomerCode+''' ';
AdoQry_Tmp.Open;
if AdoQry_Tmp.fieldbyname('SalePriceContrl').AsInteger =1 then
begin
Edt_TaxPrice.Enabled := False;
Edt_NoTaxPrice.Enabled := False;
end;
if StrToFloat(Edt_TaxPrice.text) <> 0 then
begin
Edt_TaxAmount.Text:= FloatToStr(StrToFloat(Edt_TaxPrice.text)*StrToFloat(Edt_SloQty.text));
Edt_NoTaxAmount.Text:= FloatToStr(StrToFloat(Edt_NoTaxPrice.text)*StrToFloat(Edt_SloQty.text));
end;
end;
procedure TFrm_Sal_Enter_SaleOrder_D.btn_okClick(Sender: TObject);
begin
if (StrtoFloat(Edt_TaxPrice.Text)<=0) then
begin
DispInfo('含税单价不能小于或等于0!',3);
if Edt_TaxPrice.CanFocus then
Edt_TaxPrice.SetFocus;
abort;
end;
if StrToFloat(Edt_NoTaxPrice.Text)<=0 then
begin
DispInfo('未税单价不能小于或等于0!',3);
if Edt_NoTaxPrice.CanFocus then
Edt_NoTaxPrice.SetFocus;
Abort;
end;
ExtEdt_ItemCode.OnExit(ExtEdt_ItemCode);
inherited;
end;
procedure TFrm_Sal_Enter_SaleOrder_D.ExtEdt_ItemCodeButtonClick(
Sender: TObject);
begin
inherited;
CommOnHint(Sender,AdoQry_Tmp,'ItemName','物料描述','ItemCode',
'物料代码',' Item ','ItemUsable=1 and ItemType=0 and CanSale=1 ');
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -