⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pm_pc_entry_b1.pas

📁 一个MRPII系统源代码版本
💻 PAS
📖 第 1 页 / 共 2 页
字号:
      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 + -