📄 sal_enter_saleorder.pas
字号:
end;
end;
procedure TFrm_Sal_Enter_SaleOrder.AdoQry_BodyAfterPost(DataSet: TDataSet);
var
TotalNoTaxAmount,TotalTaxAmount:double;
BookMArk:String;
begin
inherited;
TotalNoTaxAmount:=0;
TotalTaxAmount:=0;
if AdoQry_Body.RecordCount >0 then
BookMArk:=AdoQry_Body.BookMArk;
AdoQry_Body.First;
while not AdoQry_Body.Eof do
begin
TotalTaxAmount:= TotalTaxAmount +AdoQry_Body.fieldbyname('TaxAmount').asfloat;
TotalNoTaxAmount:= TotalNoTaxAmount +AdoQry_Body.fieldbyname('NoTaxAmount').asfloat;
AdoQry_Body.Next;
end;
if AdoQry_Body.RecordCount >0 then
AdoQry_Body.BookMArk:=BookMArk;
Edt_TotalNoTaxAmount.Text:= floattostr(TotalNoTaxAmount);
Edt_TotalTaxAmount.Text:= floattostr(TotalTaxAmount);
end;
procedure TFrm_Sal_Enter_SaleOrder.Act_ModifyExecute(Sender: TObject);
begin
If Status<>'Add' Then
begin
if AdoQry_Body.fieldbyname('SloLineStatus').AsInteger <> 5 then
begin
DispInfo('行状态不为准备状态不能修改!',3);
abort;
end;
end;
TaxRate_Percent:=Edt_TaxRate_Percent.Text;
CustomerCode:=Edt_CustomerCode.Text;
CurrencyCode := Edt_CurrencyCode.Text;
inherited;
end;
procedure TFrm_Sal_Enter_SaleOrder.Edt_TaxRate_PercentExit(
Sender: TObject);
begin
inherited;
IF Trim(Edt_TaxRate_Percent.Text)='' Then
Edt_TaxRate_Percent.Text:='17';
try
Edt_TaxRate_Percent.Text:=FloatToStr(Strtofloat(Edt_TaxRate_Percent.Text));
except
DispInfo('销售税率输入错误!',3);
TWincontrol(Sender).SetFocus;
Abort;
end;
If Strtofloat(Edt_TaxRate_Percent.Text)<=0 Then
begin
DispInfo('销售税率不能小于或等于0!',3);
TWincontrol(Sender).SetFocus;
Abort;
end;
end;
procedure TFrm_Sal_Enter_SaleOrder.Edt_SaleTypeCodeKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
inherited;
If (Key=120) Then
CommonHint(Sender,AdoQry_Body,'SaleTypeName','销售类型描述','SaleTypeCode','销售类型代码',
'SaleType');
end;
procedure TFrm_Sal_Enter_SaleOrder.Edt_SaleDeptCodeExit(Sender: TObject);
begin
inherited;
if Trim(Edt_SaleDeptCode.Text)<> '' then
begin
DeptCodeCheck(sender);
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.clear;
AdoQry_Tmp.SQL.Text:=' Select DeptCode,DeptName from Dept '
+' where DeptCode= '''+Edt_SaleDeptCode.Text+''' ';
AdoQry_Tmp.Open;
Edt_SaleDeptName.Text := AdoQry_Tmp.fieldbyname('DeptName').AsString;
end
else
Edt_SaleDeptName.Text :='';
end;
procedure TFrm_Sal_Enter_SaleOrder.Edt_SaleEmployeeCodeExit(
Sender: TObject);
begin
inherited;
if Edt_SaleEmployeeCode.Text <>'' then
begin
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.clear;
AdoQry_Tmp.SQL.Text:=' Select EmployeeCode,EmployeeName from Employee '
+' where EmployeeCode= '''+Edt_SaleEmployeeCode.Text+''' ';
AdoQry_Tmp.Open;
if not AdoQry_Tmp.Eof then
begin
Edt_SaleEmployeeName.Text := AdoQry_Tmp.fieldbyname('EmployeeName').AsString;
end
else
begin
DispInfo('销售员代码错误,请重新输入',1);
TWinControl(Sender).SetFocus;
Abort;
end;
end
else
Edt_SaleEmployeeName.Text:='';
end;
procedure TFrm_Sal_Enter_SaleOrder.Act_InsertLineExecute(Sender: TObject);
var MaxLineNo : Integer;
BookMArk : String;
begin
IF Trim(Edt_CustomerCode.Text)='' Then
begin
DispInfo('销售客户不能为空!',3);
Edt_CustomerCode.SetFocus;
Abort;
end;
IF Trim(Edt_TaxRate_Percent.Text)='' Then
begin
DispInfo('销售税率不能为空!',3);
Edt_TaxRate_Percent.SetFocus;
Abort;
end;
IF Trim(Edt_CurrencyCode.Text)<>'' Then
CurrencyCodeCheck(Edt_CurrencyCode);
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.clear;
AdoQry_Tmp.SQL.Text:=' Select CurrencyCode,CurrencyName,IsMaster from Currency '
+' where CurrencyCode= '''+Edt_CurrencyCode.Text+''' ';
AdoQry_Tmp.Open;
Edt_CurrencyName.Text := AdoQry_Tmp.fieldbyname('CurrencyName').AsString;
ExchRate := 1;
If AdoQry_Tmp.fieldbyname('IsMaster').AsInteger<>1 then {如果是本位币则不用判断是否有外币汇率资料}
begin
ExecuteSql(AdoQry_Tmp,' select * from ExchRate '
+ ' where CurrencyCode= '+QuotedStr(Edt_CurrencyCode.Text)
+ ' and ExchMonth= '+QuotedStr(copy(Medt_CreateDate.Text,1,7)),0);
if AdoQry_tmp.RecordCount=0 then
begin
DispInfo('没有该货币'+Copy(Medt_CreateDate.Text,1,7)+'月的外币汇率!',3);
If Edt_CurrencyCode.CanFocus then Edt_CurrencyCode.SetFocus;
Abort;
end;
ExchRate := AdoQry_Tmp.fieldbyname('ExchRate').AsFloat;
end;
TaxRate_Percent:=Edt_TaxRate_Percent.Text;
CustomerCode:=Edt_CustomerCode.Text;
CurrencyCode := Edt_CurrencyCode.Text;
Frm_Sal_Enter_SaleOrder_D.LineNo := AdoQry_Body.RecordCount;
If Pos('Edit',Status)>0 then
begin
MaxLineNo := 0;
BookMArk := AdoQry_Body.BookmArk;
AdoQry_Body.DisableControls;
AdoQry_Body.First;
While Not AdoQry_Body.Eof do
begin
If AdoQry_Body.fieldbyname('SloLineNo').AsInteger>MaxLineNo then
MaxLineNo := AdoQry_Body.fieldbyname('SloLineNo').AsInteger;
AdoQry_Body.Next;
end;
AdoQry_Body.BookmArk := BookMArk;
AdoQry_Body.EnableControls;
Frm_Sal_Enter_SaleOrder_D.LineNo := MaxLineNo;
end;
inherited;
If AdoQry_Body.RecordCount>0 then
begin
Edt_TaxRate_Percent.Enabled := False;
Edt_CurrencyCode.Enabled:=False;
end;
Edt_SloNo.Enabled:=False;
end;
procedure TFrm_Sal_Enter_SaleOrder.GetCustomerItem(CustomerCode: String);
var
SqlText:String;
begin
SqlText:=' Select CustomerTaxRate_Percent,CustomerShipModeCode,ShipModeName,CustomerCurrencyCode,CurrencyName,'
+' CustomerPayTermCode,PayTermName,CustomerSaleTypeCode,SaleTypeName,'
+' CustomerSaleDeptCode,DeptName,CustomerSaleEmployeeCode,EmployeeName '
+' From Customer '
+' Left Join ShipMode '
+' On Customer.CustomerShipModeCode=ShipMode.ShipModeCode'
+' Left Join Currency '
+' On Customer.CustomerCurrencyCode=Currency.CurrencyCode '
+' Left Join PayTerm '
+' On Customer.CustomerPayTermCode=PayTerm.PayTermCode '
+' Left Join SaleType'
+' On Customer.CustomerSaleTypeCode=SaleType.SaleTypeCode '
+' Left Join Dept '
+' On Customer.CustomerSaleDeptCode=Dept.DeptCode '
+' Left Join Employee '
+' On Customer.CustomerSaleEmployeeCode=Employee.EmployeeCode '
+' Where CustomerCode='''+CustomerCode+''' ';
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.clear;
AdoQry_Tmp.SQL.text:=SqlText;
AdoQry_Tmp.Open;
With AdoQry_Tmp do
begin
{ if Edt_TaxRate_Percent.Text='' then
begin
}
if (fieldbyname('CustomerTaxRate_Percent').AsInteger<>0) then
Edt_TaxRate_Percent.Text := fieldbyname('CustomerTaxRate_Percent').AsString
else
Edt_TaxRate_Percent.Text :='17';
// end;
{ if Trim(Edt_SaleDeptCode.Text)='' then
begin
}
Edt_SaleDeptCode.Text := fieldbyname('CustomerSaleDeptCode').asstring;
Edt_SaleDeptName.Text := fieldbyname('DeptName').asstring;
// end;
{ if Trim(Edt_ShipModeCode.Text)='' then
begin
}
Edt_ShipModeCode.Text := fieldbyname('CustomerShipModeCode').asstring;
Edt_ShipModeName.Text := fieldbyname('ShipModeName').asstring;
// end;
{ if Trim(Edt_SaleTypeCode.Text)='' then
begin
}
Edt_SaleTypeCode.Text := fieldbyname('CustomerSaleTypeCode').asstring;
Edt_SaleTypeName.Text :=fieldbyname('SaleTypeName').AsString;
// end;
{ if Trim(Edt_SaleEmployeeCode.Text)=''then
begin
}
Edt_SaleEmployeeCode.Text := fieldbyname('CustomerSaleEmployeeCode').asstring;
Edt_SaleEmployeeName.Text := fieldbyname('EmployeeName').asstring;
// end;
{ if Trim(Edt_PayTermCode.Text)='' then
begin
}
Edt_PayTermCode.Text := fieldbyname('CustomerPayTermCode').asstring;
Edt_SaleTermName.Text := fieldbyname('PayTermName').asstring;
// end;
{ if Trim(Edt_CurrencyCode.Text)='' then
begin
}
Edt_CurrencyCode.Text := fieldbyname('CustomerCurrencyCode').asstring;
Edt_CurrencyName.Text := fieldbyname('CurrencyName').asstring;
// end;
end;
SqlText:=' Select ShipAddresSCode,ShipAddressName From CustomerShipAddress '
+' Where CustomerCode='''+CustomerCode+''' ';
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.clear;
AdoQry_Tmp.SQL.text:=SqlText;
AdoQry_Tmp.Open;
with AdoQry_Tmp do
begin
{ if Trim(Edt_ShipAddresSCode.Text)='' then
begin
}
Edt_ShipAddresSCode.Text := fieldbyname('ShipAddresSCode').asstring;
Edt_ShipAddressName.Text := fieldbyname('ShipAddressName').asstring;
// end;
end;
end;
procedure TFrm_Sal_Enter_SaleOrder.Edt_CustomerCodeEnter(Sender: TObject);
begin
inherited;
Enter_CustomerCode:=Trim(Edt_CustomerCode.text);
end;
procedure TFrm_Sal_Enter_SaleOrder.Edt_ShipAddresSCodeButtonClick(
Sender: TObject);
begin
inherited;
CommOnHint(Sender,AdoQry_Tmp,'ShipAddressName','发货地址名称','ShipAddresSCode',
'发货地址代号',' CustomerShipAddress ',' CustomerCode= '''+Edt_CustomerCode.Text+'''');
end;
procedure TFrm_Sal_Enter_SaleOrder.Edt_PayTermCodeButtonClick(
Sender: TObject);
begin
inherited;
CommOnHint(Sender,AdoQry_Tmp,'PayTermName','付款条款名称','PayTermCode',
'付款条款代号',' PayTerm ');
end;
procedure TFrm_Sal_Enter_SaleOrder.Edt_ShipModeCodeButtonClick(
Sender: TObject);
begin
inherited;
CommOnHint(Sender,AdoQry_Tmp,'ShipModeName','发货方式名称','ShipModeCode',
'发货方式代号',' ShipMode ');
end;
procedure TFrm_Sal_Enter_SaleOrder.Edt_SaleTypeCodeButtonClick(
Sender: TObject);
begin
inherited;
CommonHint(Sender,AdoQry_Body,'SaleTypeName','销售类型描述','SaleTypeCode','销售类型代码',
'SaleType');
end;
procedure TFrm_Sal_Enter_SaleOrder.Act_SaveExecute(Sender: TObject);
begin
inherited;
Act_InsertLine.Enabled := False;
Act_DeleteLine.Enabled := False;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -