📄 pm_pc_entry_b1.pas
字号:
AdoQry_Tmp.SQL.Text:='Insert PcLine'+
'(PcNo,ItemCode,PcTaxPrice,PcNoTaxPrice,PcStArtDate,PcendDate,'+
'PcStArtQty,PcendQty,PcPriceType,PcTaxPrice_Formal,PcNoTaxPrice_Formal, '
+' ReferencePricePass,FormalPricePass,PcLineStatus)'+
'Values('
+' '''+Bill_No+''''
+','''+AdoQry_Body.fieldbyname('ItemCode').AsString+''''
+','+AdoQry_Body.fieldbyname('PcTaxPrice').AsString+''
+','+AdoQry_Body.fieldbyname('PcNoTaxPrice').AsString+''
+','''+AdoQry_Body.fieldbyname('PcStArtDate').AsString+''''
+','''+AdoQry_Body.fieldbyname('PcendDate').AsString+''''
+','+AdoQry_Body.fieldbyname('PcStArtQty').AsString+''
+','+AdoQry_Body.fieldbyname('PcendQty').AsString+''
+','+AdoQry_Body.fieldbyname('PcPriceType').AsString+''
+','+FloatToStr(AdoQry_Body.fieldbyname('PcTaxPrice_Formal').AsFloat)
+','+FloatToStr(AdoQry_Body.fieldbyname('PcNoTaxPrice_Formal').AsFloat)
+','+IntToStr(AdoQry_Body.fieldbyname('ReferencePricePass').AsInteger)
+','+IntToStr(AdoQry_Body.fieldbyname('FormalPricePass').AsInteger)
// +','+AdoQry_Body.fieldbyname('PcReferencedPrice').AsString+''
+','+AdoQry_Body.fieldbyname('PcLineStatus').AsString+''
+')';
AdoQry_Tmp.ExecSQL;
AdoQry_Body.Next;
end;
if(Status<>'Add')then
StatusStr:='修改'
else
StatusStr:='新增';
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:='Insert PcHistory'
+'(PcNo,VendorCode,PCTaxRate_Percent,RemArk,CurrencyCode,PCDate'
+',ChgEmployeeCode,ChgTime,ChgType)'
+' Values('
+' '''+Bill_No+''''
+','''+AdoQry_Head.fieldbyname('VendorCode').AsString+''''
+','+AdoQry_Head.fieldbyname('PCTaxRate_Percent').AsString+''
+','''+AdoQry_Head.fieldbyname('RemArk').AsString+''''
+','''+AdoQry_Head.fieldbyname('CurrencyCode').AsString+''''
+','''+AdoQry_Head.fieldbyname('PcDate').AsString+''''
+','''+UserCode+''''
+',getdate()'
+','''+StatusStr+''''
+')';
AdoQry_Tmp.ExecSQL;
AdoQry_Body.First;
while not AdoQry_Body.Eof do
begin
if AdoQry_Body.UpdateStatus=usmodified then
StatusStr:='修改'
else if AdoQry_Body.UpdateStatus=usinserted then
StatusStr:='新增'
else
begin
AdoQry_Body.Next;
continue;
end;
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:='Insert PcLineHistory'
+'(PcNo,pclineid,ItemCode,PcTaxPrice,PcNoTaxPrice,PcStArtDate,PcendDate'
+',PcStArtQty,PcendQty,PcPriceType,PcTaxPrice_Formal,PcNoTaxPrice_Formal, '
+' ReferencePricePass,FormalPricePass,PcLineStatus'
+',ChgEmployeeCode,ChgTime,ChgType)'
+' Values('
+' '''+Bill_No+''''
+','''+AdoQry_Body.fieldbyname('pclineid').AsString+''''
+','''+AdoQry_Body.fieldbyname('ItemCode').AsString+''''
+','+AdoQry_Body.fieldbyname('PcTaxPrice').AsString+''
+','+AdoQry_Body.fieldbyname('PcNoTaxPrice').AsString+''
+','''+AdoQry_Body.fieldbyname('PcStArtDate').AsString+''''
+','''+AdoQry_Body.fieldbyname('PcendDate').AsString+''''
+','+AdoQry_Body.fieldbyname('PcStArtQty').AsString+''
+','+AdoQry_Body.fieldbyname('PcendQty').AsString+''
+','+AdoQry_Body.fieldbyname('PcPriceType').AsString+''
+','+AdoQry_Body.fieldbyname('PcTaxPrice_Formal').AsString
+','+AdoQry_Body.fieldbyname('PcNoTaxPrice_Formal').AsString
+','+AdoQry_Body.fieldbyname('ReferencePricePass').AsString
+','+AdoQry_Body.fieldbyname('FormalPricePass').AsString
// +','+AdoQry_Body.fieldbyname('PcReferencedPrice').AsString+''
+','+AdoQry_Body.fieldbyname('PcLineStatus').AsString+''
+','''+UserCode+''''
+',getdate()'
+','''+StatusStr+''''
+')';
AdoQry_Tmp.ExecSQL;
AdoQry_Body.Next;
end;
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:='Insert PcLineHistory'
+'(PcNo,ItemCode,PcTaxPrice,PcNoTaxPrice,PcStArtDate,PcendDate'
+',PcStArtQty,PcendQty,PcPriceType,PcTaxPrice_Formal,PcNoTaxPrice_Formal, '
+' ReferencePricePass,FormalPricePass,PcLineStatus'
+',ChgEmployeeCode,ChgTime,ChgType)'
+' Select PcNo,ItemCode,PcTaxPrice,PcNoTaxPrice,PcStArtDate,PcendDate'
+',PcStArtQty,PcendQty,PcPriceType,PcTaxPrice_Formal,PcNoTaxPrice_Formal, '
+' ReferencePricePass,FormalPricePass,0'
+','''+UserCode+''''
+',getdate()'
+','''+'删除'+''''
+' From #PcLine';
AdoQry_Tmp.ExecSQL;
DBConnect.CommitTrans;
except
on e:exception do
begin
recOrderror(self,AdoQry_tmp,e.message);
DBConnect.RollBackTrans;
DispInfo(DispStr,3);
Abort;
end;
end;
end;
procedure TFrm_Pm_Pc_Entry_B1.Act_DeleteLineExecute(Sender: TObject);
var
ItemCode:String;
CanDelete:Boolean;
i:Integer;
begin
if AdoQry_Body.RecordCount=0 then exit;
if AdoQry_Body.fieldbyname('PcLineStatus').AsInteger=1 then
begin
DispInfo(' 不能删除已批准的项目 ',3);
Abort;
end;
CanDelete:=False;
if(not AdoQry_Body.IsEmpty)then
begin
if(not AdoQry_Body.Eof)then
begin
ItemCode:=AdoQry_Body.fieldbyname('ItemCode').AsString;
AdoQry_Body.Next;
if(ItemCode<>AdoQry_Body.fieldbyname('ItemCode').AsString)then
begin
CanDelete:=True;
end;
if(not AdoQry_Body.Eof)then
AdoQry_Body.Prior
else
CanDelete:=True;
end
else
CanDelete:=True;
if(CanDelete=True)and(DispInfo(' 真的删除当前记录吗? ',2)='y')then
begin
{if Edt_PcNo.text<>'' then
begin
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.clear;
AdoQry_Tmp.SQL.Text := ' select * from po join poline on po.pono=poline.pono '
+' where PcNo= '''+Edt_PcNo.text+''''
+' and ItemCode='''+AdoQry_Body.fieldbyname('ItemCode').asstring+'''';
If not AdoQry_Tmp.Eof then
begin
DispInfo('不能删除采购价格单号为:'+Edt_PcNo.text+chAr(13)+'物料代码为:'+AdoQry_Body.fieldbyname('ItemCode').asstring+' 已下采购单的合同!',3);
abort;
end;
end;}
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:='Insert #PcLine(PcNo,ItemCode,PcTaxPrice,PcNoTaxPrice'
+',PcStArtDate,PcendDate,PcStArtQty,PcendQty,PcPriceType,PCReferencedPrice)'
+' Values('
+' '''+AdoQry_Body.fieldbyname('PcNo').AsString+''''
+','''+AdoQry_Body.fieldbyname('ItemCode').AsString+''''
+','+AdoQry_Body.fieldbyname('PcTaxPrice').AsString+''
+','+AdoQry_Body.fieldbyname('PcNoTaxPrice').AsString+''
+','''+AdoQry_Body.fieldbyname('PcStArtDate').AsString+''''
+','''+AdoQry_Body.fieldbyname('PcendDate').AsString+''''
+','+AdoQry_Body.fieldbyname('PcStArtQty').AsString+''
+','+AdoQry_Body.fieldbyname('PcendQty').AsString+''
+','+AdoQry_Body.fieldbyname('PcPriceType').AsString+''
+','+AdoQry_Body.fieldbyname('PCReferencedPrice').AsString+''
+')';
AdoQry_Tmp.ExecSQL;
AdoQry_Body.Delete;
Act_Save.Enabled:=True;
if AdoQry_Body.IsEmpty then
for i:=0 to Pnl_Head.ControlCount-1 do
begin
if(not(Pnl_Head.Controls[i] is TLabel))then
Pnl_Head.Controls[i].Enabled:=True;
end;
end
else if(CanDelete=False)then
DispInfo(' 不能从中间删除连续的项目 ',3);
end;
end;
procedure TFrm_Pm_Pc_Entry_B1.ExtEdt_VendorCodeChange(Sender: TObject);
begin
inherited;
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:='Select Vendor.VendorTAXRATE_PERCENT,Vendor.VendorName'
+',Vendor.CurrencyCode,Currency.CurrencyName'
+',Vendor.CurrencyCode+'' ''+Currency.CurrencyName As CurrencyCodeName'
+' From Vendor Left Join Currency on Vendor.CurrencyCode=Currency.CurrencyCode'
+' Where Vendor.VendorCode='''+TExtEdit(Sender).Text+'''';
AdoQry_Tmp.Open;
Edt_VendorName.Text :=AdoQry_Tmp.fieldbyname('VendorName').AsString;
Lbl_VendorName.Caption :=AdoQry_Tmp.fieldbyname('VendorName').AsString;
Lbl_TaxRate.Caption:=AdoQry_Tmp.fieldbyname('VendorTAXRATE_PERCENT').AsString;
Lbl_Currency.Caption:=AdoQry_Tmp.fieldbyname('CurrencyCodeName').AsString;
Edt_TaxRate.Text:=AdoQry_Tmp.fieldbyname('VendorTAXRATE_PERCENT').AsString;
Edt_CurrencyCode.Text:=AdoQry_Tmp.fieldbyname('CurrencyCode').AsString;
Edt_CurrencyName.Text:=AdoQry_Tmp.fieldbyname('CurrencyName').AsString;
AllChange(Sender);
end;
procedure TFrm_Pm_Pc_Entry_B1.IntegerCheck(Sender: TObject);
begin
inherited;
if StrToInt(TEdit(Sender).Text)>100 then
begin
DispInfo('税率不能大于100',3);
TWinControl(Sender).SetFocus;
Abort;
end;
end;
procedure TFrm_Pm_Pc_Entry_B1.InitReport;
var
s1,s2,s3:String;
i:Integer;
begin
for i:=Length(ExtEdt_VendorCode.Text+' '+Lbl_VendorName.Caption) to 60 do
s1:=s1+' ';
for i:=Length(Lbl_Currency.Caption) to 30 do
s2:=s2+' ';
for i:=Length(Lbl_TaxRate.Caption) to 27 do
s3:=s3+' ';
inherited;
ExtPrintReport.Subtitle2:=Label2.Caption+' '+ExtEdt_VendorCode.Text+' '+Lbl_VendorName.Caption;
// +s1+Label1.Caption+' '+Edt_PcNo.Text;
ExtPrintReport.Subtitle3:=' '+Label8.Caption+' '+Lbl_Currency.Caption
+s2+Label3.Caption+' '+Lbl_TaxRate.Caption+'%'
+s3+Label9.Caption+' '+MEdt_BillDate.Text;
ExtPrintReport.Subtitle4:=' '+Label5.Caption+' '+Edt_RemArk.Text;
end;
procedure TFrm_Pm_Pc_Entry_B1.AdoQueryAfterOpen(DataSet: TDataSet);
begin
inherited;
TFloatField(AdoQry_Body.fieldbyname('PcTaxPrice')).DisplayFormat:='0.######';
TFloatField(AdoQry_Body.fieldbyname('PcNoTaxPrice')).DisplayFormat:='0.######';
end;
procedure TFrm_Pm_Pc_Entry_B1.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
try
if deleteflag then
begin
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:='Drop Table #PcLine';
AdoQry_Tmp.ExecSQL;
end;
except
end;
end;
procedure TFrm_Pm_Pc_Entry_B1.Act_PreviewExecute(Sender: TObject);
begin
if Act_Save.Enabled = True then
begin
DispInfo('没有保存数据,不能预览!',1);
Abort;
end;
inherited;
end;
procedure TFrm_Pm_Pc_Entry_B1.DBGridEhGetCellParams(Sender: TObject;
Column: TColumnEh; AFont: TFont; var Background: TColor;
State: TGridDrawState);
begin
inherited;
{// if AdoQry_Body.fieldbyname('PCReferencedPrice').asinteger =1 then
begin
// Background:=$00F9D1C6;
afont.Color:=clblue;
end;
}
end;
procedure TFrm_Pm_Pc_Entry_B1.Act_SaveExecute(Sender: TObject);
begin
status:='Add';
inherited;
end;
procedure TFrm_Pm_Pc_Entry_B1.Act_ModifyExecute(Sender: TObject);
begin
if AdoQry_Body.RecordCount=0 then exit;
Frm_Pm_Pc_Entry_D.VendorCode:=Trim(Extedt_VendorCode.text);
inherited;
end;
procedure TFrm_Pm_Pc_Entry_B1.Act_InsertLineExecute(Sender: TObject);
begin
if Trim(Extedt_VendorCode.text)='' then
begin
DispInfo('供应商代码不能为空!',1);
Extedt_VendorCode.SetFocus;
Abort;
end;
Frm_Pm_Pc_Entry_D.VendorCode:=Trim(Extedt_VendorCode.text);
inherited;
end;
procedure TFrm_Pm_Pc_Entry_B1.FormActivate(Sender: TObject);
begin
inherited;
// edt_Pcno.Enabled:=False;
end;
procedure TFrm_Pm_Pc_Entry_B1.Act_FilterExecute(Sender: TObject);
var i:integer;
begin
for i:=0 to dbgrideh.Columns.Count-1 do
if Assigned(dbgrideh.Columns[i].Field) then
Dbgrideh.Columns[i].Field.Origin := '#tmptable';
inherited;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -