📄 sal_enter_salecontract.pas
字号:
+''''+FloatToStr(AdoQry_Body.fieldbyname('StArtQty').AsFloat)+''','
+''''+FloatToStr(AdoQry_Body.fieldbyname('endQty').AsFloat)+''','
+''''+FloatToStr(AdoQry_Body.fieldbyname('NoTaxPrice').AsFloat)+''','
+''''+FloatToStr(AdoQry_Body.fieldbyname('TaxPrice').AsFloat)+''','
+''''+FloatToStr(AdoQry_Body.fieldbyname('ReferencedPrice').AsFloat)+''','
+AdoQry_Body.fieldbyname('LineStatus').AsString+','
+''''+AdoQry_Body.fieldbyname('SlcLineRemArk').AsString+''','
+''''+AdoQry_Body.fieldbyname('Lastoperationtime').AsString+''','
+'0)';
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:=SqlText;
AdoQry_Tmp.ExecSQL;
saveSalContractLineHistory(Dbconnect,SlcNo,AdoQry_Body.fieldbyname('SlcLineNo').AsInteger,userCode,0);
AdoQry_Body.Next;
end;
end
else
begin
begin
for I:=0 to strinGlist.Count-1 do
begin
AdoQry_Tmp.Connection := Dbconnect;
sqltext:=' Select * from sa_SaleContractLine where slcno+convert(varchAr,slclineno)='''+strinGlist.Strings[i]+'''';
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:=SqlText;
AdoQry_Tmp.open;
if not AdoQry_Tmp.Eof then
saveSalContractLineHistory(DbConnect,AdoQry_tmp.fieldbyname('slcno').asstring,AdoQry_tmp.fieldbyname('SlcLineNo').AsInteger,userCode,2);
sqltext:=' Delete sa_SaleContractLine where slcno+convert(varchAr,slclineno)='''+strinGlist.Strings[i]+'''';
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:=SqlText;
AdoQry_Tmp.ExecSQL;
end;
strinGlist.clear;
SqlText:='Update Sa_SaleContract '
+' Set CurrencyCode='''+Trim(Edt_CurrencyCode.Text)+''','
+' SlcDate= '''+Trim(MEdt_SlcDate.Text)+''','
+' RemArk= '''+Trim(Edt_RemArk.Text)+''','
+' EditDate= '''+Formatdatetime('yyyy.mm.dd',Date())+''','
+' EdItEmployeeCode= '''+UserCode+''','
+' TaxRate_Percent= '''+Trim(Edt_TaxRate_Percent.Text)+''''
+' Where SlcNo='''+SlcNo+'''';
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:=SqlText;
AdoQry_Tmp.ExecSQL;
saveSalContractHistory(DbConnect,SlcNo,userCode,1);
AdoQry_Body.First;
While Not AdoQry_Body.Eof Do
begin
If AdoQry_Body.fieldbyname('CheckFlag').AsInteger=1 then
SqlText:='Insert Sa_SaleContractLine '
+' (SlcNo,SlcLineNo,ItemCode,StArtDate,endDate,StArtQty,endQty,'
+' NoTaxPrice,TaxPrice,ReferencedPrice,Linestatus,'
+' SlcLineRemArk,Lastoperationtime,CheckFlag)'
+'Values('
+''''+SlcNo+''','
+''''+IntToStr(AdoQry_Body.fieldbyname('SlcLineNo').AsInteger)+''','
+''''+AdoQry_Body.fieldbyname('ItemCode').AsString+''','
+''''+DatetimeToStr(AdoQry_Body.fieldbyname('StArtDate').AsDateTime)+''','
+''''+DatetimeToStr(AdoQry_Body.fieldbyname('endDate').AsDateTime)+''','
+''''+FloatToStr(AdoQry_Body.fieldbyname('StArtQty').AsFloat)+''','
+''''+FloatToStr(AdoQry_Body.fieldbyname('endQty').AsFloat)+''','
+''''+FloatToStr(AdoQry_Body.fieldbyname('NoTaxPrice').AsFloat)+''','
+''''+FloatToStr(AdoQry_Body.fieldbyname('TaxPrice').AsFloat)+''','
+''''+FloatToStr(AdoQry_Body.fieldbyname('ReferencedPrice').AsFloat)+''','
+AdoQry_Body.fieldbyname('LineStatus').AsString+','
+''''+AdoQry_Body.fieldbyname('SlcLineRemArk').AsString+''','
+''''+AdoQry_Body.fieldbyname('Lastoperationtime').AsString+''','
+'0)'
else
SqlText:=' UpDate Sa_SaleContractLine '
+' Set ItemCode='+''''+AdoQry_Body.fieldbyname('ItemCode').AsString+''''+','
+' StArtDate='+''''+DateTimeToStr(AdoQry_Body.fieldbyname('StArtDate').AsDateTime)+''''+','
+' endDate='''+DateTimeToStr(AdoQry_Body.fieldbyname('endDate').AsDateTime)+''''+','
+' StArtQty='+''''+FloatToStr(AdoQry_Body.fieldbyname('StArtQty').AsFloat)+''''+','
+' endQty='+''''+FloatToStr(AdoQry_Body.fieldbyname('endQty').AsFloat)+''''+','
+' NoTaxPrice='+''''+FloatToStr(AdoQry_Body.fieldbyname('NoTaxPrice').AsFloat)+''''+','
+' TaxPrice='+''''+FloatToStr(AdoQry_Body.fieldbyname('TaxPrice').AsFloat)+''''+','
+' ReferencedPrice='+''''+FloatToStr(AdoQry_Body.fieldbyname('ReferencedPrice').AsFloat)+''''+','
+' CheckFlag='+''''+AdoQry_Body.fieldbyname('Linestatus').AssTring+''''+','
+' SlcLineRemArk='''+AdoQry_Body.fieldbyname('SlcLineRemArk').AsString+''''
+' Where SlcNo='+''''+AdoQry_Body.fieldbyname('SlcNo').AsString+''''
+' And SlcLineNo='+''''+AdoQry_Body.fieldbyname('SlcLineNo').AsString+'''';
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:=SqlText;
AdoQry_Tmp.ExecSQL;
If AdoQry_Body.fieldbyname('CheckFlag').aSInteger=1 then
saveSalContractLineHistory(Dbconnect,SlcNo,AdoQry_Body.fieldbyname('SlcLineNo').AsInteger,userCode,0)
else
saveSalContractLineHistory(DbConnect,SlcNo,AdoQry_Body.fieldbyname('SlcLineNo').AsInteger,userCode,1);
AdoQry_Body.Next;
end; //end while
end; //end if
end;
DbConnect.CommitTrans;
Act_Save.Enabled:=False;
DispInfo('数据保存成功!',3);
Except
on e:Exception do
begin
If DbConnect.InTransaction Then
DbConnect.RollBackTrans;
RecOrderror(Self,AdoQry_tmp,E.message);
DispInfo('保存数据失败,请重试!',1);
Abort;
end ;
end;
with AdoQry_Head do
begin
fieldbyname('SlcNo').asstring:=SlcNo;
fieldbyname('SlcDate').asstring:=MEdt_SlcDate.Text ;
fieldbyname('TaxRate_Percent').asstring:=Edt_TaxRate_Percent.Text;
fieldbyname('CustomerCode').asstring:=Edt_CustomerCode.Text ;
fieldbyname('CustomerName').asstring:=Edt_CustomerName.Text ;
fieldbyname('CurrencyCode').asstring:=Edt_CurrencyCode.Text ;
fieldbyname('CurrencyName').asstring:=Edt_CurrencyName.Text;
if status='Add' then
begin
fieldbyname('CreateDate').asstring:=Formatdatetime('yyyy.mm.dd',Date());
fieldbyname('CreateEmployeeCode').asstring:=UserCode ;
fieldbyname('EditDate').asstring:=Formatdatetime('yyyy.mm.dd',Date()) ;
fieldbyname('EdItEmployeeCode').asstring:=UserCode ;
end
else
begin
fieldbyname('EditDate').asstring:=Formatdatetime('yyyy.mm.dd',Date()) ;
fieldbyname('EdItEmployeeCode').asstring:=UserCode ;
end;
fieldbyname('RemArk').asstring:=Edt_RemArk.Text ;
end;
end;
procedure TFrm_Sal_Enter_SaleContract.Act_DeleteLineExecute(Sender: TObject);
var
BookmArk,sqltext:String;
i:integer;
begin
if (AdoQry_Body.fieldbyname('linestatus').asinteger= 0) and (status<>'Add') then
begin
sqltext:=' select * from sa_SaleContractline where slcno='''+AdoQry_Body.fieldbyname('slcno').asstring+''' and '
+' slclineno='''+AdoQry_Body.fieldbyname('slclineno').asstring+''' and linestatus=0' ;
AdoQry_tmp.Close;
AdoQry_tmp.sql.clear;
AdoQry_tmp.sql.text := sqltext;
AdoQry_tmp.open;
if AdoQry_tmp.eof then
begin
DispInfo(' 该记录已被其他用户修改或删除,请刷新! ',1);
abort;
end;
end
else
begin
if (AdoQry_Body.fieldbyname('linestatus').asinteger<> 0) and (status<>'Add') then
begin
DispInfo(' 该记录不是未批准状态不能被删除! ',1);
abort;
end;
end;
if (not AdoQry_Body.IsEmpty) and
(DispInfo(' 真的删除当前记录吗? ',2)='y') then
begin
StrinGlist.Add(AdoQry_Body.fieldbyname('slcno').asstring+AdoQry_Body.fieldbyname('slclineno').asstring);
AdoQry_Body.Delete;
Act_Save.Enabled:=True;
end;
if status='Add' then
begin
If AdoQry_Body.RecordCount>0 Then
begin
BookmArk:=AdoQry_Body.BookmArk;
AdoQry_Body.First;
While Not AdoQry_Body.Eof Do
begin
AdoQry_Body.Edit;
AdoQry_Body.fieldbyname('slcLineNo').AsInteger:=AdoQry_Body.RecNo;
AdoQry_Body.Post;
AdoQry_Body.Next;
end;
AdoQry_Body.BookmArk:=BookMArk;
end;
end;
if AdoQry_Body.RecordCount>0 then
edt_taxrate_Percent.Enabled:=False
else edt_taxrate_Percent.Enabled:=True;
end;
procedure TFrm_Sal_Enter_SaleContract.IntegerCheck(Sender: TObject);
begin
inherited;
if StrToInt(TEdit(Sender).Text)>100 then
begin
DispInfo('税率不能大于100',3);
TWinControl(Sender).SetFocus;
Abort;
end;
end;
procedure TFrm_Sal_Enter_SaleContract.Act_PreviewExecute(Sender: TObject);
begin
if Act_Save.Enabled = True then
begin
DispInfo('没有保存数据,不能预览!',1);
Abort;
end;
inherited;
end;
procedure TFrm_Sal_Enter_SaleContract.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_SaleContract.Edt_SaleTypeCodeExit(
Sender: TObject);
begin
inherited;
If Trim(TExtEdit(Sender).Text)='' Then
begin
{ DispInfo('销售类型代码不能为空!',1);
TWinControl(Sender).SetFocus;
Abort;}
Edt_SaleTypeName.Text :='';
end
else
begin
With AdoQry_Tmp Do
begin
Close;
SQL.clear;
SQL.Add('Select SaleTypeCode,SaleTypeName From SaleType '
+' Where SaleTypeCode='''+TEdit(Sender).Text+'''');
Open;
If Eof Then
begin
DispInfo('销售类型代码错误,请重新输入',1);
TWinControl(Sender).SetFocus;
Abort;
end
else
Edt_SaleTypeName.Text :=AdoQry_Tmp.fieldbyname('SaleTypeName').AsString;
end;
end;
end;
procedure TFrm_Sal_Enter_SaleContract.Edt_PayTermCodeKeyDown(
Sender: TObject; var Key: Word; Shift: TShiftState);
begin
inherited;
If key=120 Then
CommOnHint(Sender,AdoQry_Tmp,'PayTermName','付款条款名称','PayTermCode',
'付款条款代号',' PayTerm ');
end;
procedure TFrm_Sal_Enter_SaleContract.Edt_PayTermCodeExit(Sender: TObject);
begin
inherited;
If Trim(Edt_PayTermCode.text)='' then
begin
DispInfo('付款条款不能为空!',3);
Edt_PayTermCode.SetFocus;
Abort;
end
else
begin
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.clear;
AdoQry_Tmp.SQL.Text:=' Select * from PayTerm where PayTermCode='''+Trim(Edt_PayTermCode.text)+''' ';
AdoQry_Tmp.Open;
if AdoQry_Tmp.Eof then
begin
DispInfo('付款条款输入错误!',3);
Edt_PayTermCode.SetFocus;
Abort;
end
else
Edt_PayTermName.Text :=AdoQry_Tmp.fieldbyname('PayTermName').Asstring;
end;
end;
procedure TFrm_Sal_Enter_SaleContract.Edt_SlcLineAddresSCodeKeyDown(
Sender: TObject; var Key: Word; Shift: TShiftState);
begin
inherited;
If key=120 Then
CommOnHint(Sender,AdoQry_Tmp,'ShipAddressName','发货地址名称','ShipAddresSCode',
'发货地址代号',' CustomerShipAddress ',' CustomerCode= '''+Edt_CustomerCode.Text+'''');
end;
procedure TFrm_Sal_Enter_SaleContract.Edt_CustomerCodeExit(
Sender: TObject);
var sqltext:string;
tmpYear,tmPMonth:integer;
begin
inherited;
if Trim(edt_CustomerCode.text)='' then exit;
CustomerCodeCheck(sender);
If Status='Add' then
begin
SqlText := 'select * from Sa_SaleContract '
+' where CustomerCode='+QuotedStr(Edt_CustomerCode.Text);
ExecuteSQl(AdoQry_Tmp,SqlText,0);
if AdoQry_Tmp.RecordCount>0 then
begin
DispInfo('已存在该客户的销售价格表!',3);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -