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

📄 pm_enter_editpasspo1.pas

📁 一个MRPII系统源代码版本
💻 PAS
📖 第 1 页 / 共 3 页
字号:
         SqlText:=' Select * From PoLine '
              +' Where PoNo='''+AdoQry_Head.fieldbyname('PoNo').AsString+''''
              +' And PoLineNo='''+IntToStr(AdoQry_Head.fieldbyname('PoLineNo').AsInteger)+'''';
//              +' And PoLineStatus=6  and (PoQty=PoNoFinishQty )';
         AdoQry_Tmp.Close;
         AdoQry_Tmp.SQL.Text:=SqlText;
         AdoQry_Tmp.Open;
         If AdoQry_Tmp.Eof Then
         begin
            If DbConnect.InTransaction Then
              DbConnect.RollBackTrans;
             DispInfo('选定的第'+IntToStr(I)+'条采购订单记录已被删除,请刷新!',3);
             exit;
         end
         else
         begin
           if AdoQry_Tmp.fieldbyname('PoLineStatus').asfloat<> 6 then
             begin
               If DbConnect.InTransaction Then
                 DbConnect.RollBackTrans;
                 DispInfo('选定的第'+IntToStr(I)+'条采购订单记录行状态已被其它用户修改,请刷新!',3);
                 exit;
             end
           else
             if AdoQry_Tmp.fieldbyname('PoQty').AsString<>AdoQry_Tmp.fieldbyname('PoNoFinishQty').AsString then
               begin
               If DbConnect.InTransaction Then
                 DbConnect.RollBackTrans;
                 DispInfo('选定的第'+IntToStr(I)+'条采购订单记录约定交货量不等于未结量,'+chr(13)+'不能取消批准!',3);
                 exit;
               end
           else if beendilivered(AdoQry_Head.fieldbyname('pono').asstring,AdoQry_Head.fieldbyname('polineno').asinteger) then
                       begin
                        If DbConnect.InTransaction Then
                          DbConnect.RollBackTrans;
                          DispInfo('选定的第'+IntToStr(I)+'条采购订单行已生产领料,不可取消批准!',3);
                          exit;
                       end;

         end;
          sqlText:=' Select Count(ItemCode) as aa from opItemList '
                   +' where PoRealQty>0 and pono='''+AdoQry_Head.fieldbyname('Pono').asstring+''' '
                   +' and polineno='''+AdoQry_Head.fieldbyname('Polineno').asstring+'''';
          AdoQry_tmp.Close;
          AdoQry_tmp.SQL.clear;
          AdoQry_tmp.SQL.Text := sqltext;
          AdoQry_tmp.Open ;
          if AdoQry_tmp.fieldbyname('aa').asinteger>0 then
          begin
            If DbConnect.InTransaction Then
                 DbConnect.RollBackTrans;
                 DispInfo('选定的第'+IntToStr(I)+'条采购订单记录的子项已领料,'+chr(13)+'不能取消批准!',3);
                 Abort;
          end;
         //
         SavePoLineHistory('Edit');
         SqlText:=' Update PoLine '
                 +' set PoLineStatus=5'
                 +' Where PoLine.PoNo='''+AdoQry_Head.fieldbyname('PoNo').AsString+''''
                 +' And PoLine.PoLineNo='''+AdoQry_Head.fieldbyname('PoLineNo').AsString+''''
                 +' And PoLine.PoLineStatus=6';
         AdoQry_Tmp.Close;
         AdoQry_Tmp.SQL.Text:=SqlText;
         AdoQry_Tmp.ExecSQL;
         AdoQry_Head.Edit;
         AdoQry_Head.fieldbyname('PoLineStatus').AsInteger:=5;
         AdoQry_Head.fieldbyname('PoLineCheck').AsInteger:=0;
         AdoQry_Head.Post;
         OperationMOPO(AdoQry_Tmp,Trim(AdoQry_Head.fieldbyname('ItemCode').AsString),'po',2,
             Trim(AdoQry_Head.fieldbyname('pono').AsString),AdoQry_Head.fieldbyname('PoLineNo').AsInteger,AdoQry_Head.fieldbyname('POLINESTATUS').AsInteger,
             0,AdoQry_Head.fieldbyname('PoQty').Asfloat,
             AdoQry_Head.fieldbyname('PONoFinishQty').Asfloat,AdoQry_Head.fieldbyname('POStArtWorkDate').AsString,
             AdoQry_Head.fieldbyname('POLineDATE').AsString,AdoQry_Head.fieldbyname('PoType').AsInteger,AdoQry_Head.fieldbyname('VendorCode').AsString );
         I:=I+1;
         AdoQry_Head.Next;
       end
       Else
       begin
         I:=I+1;
         AdoQry_Head.Next;
       end;
     end;
    DbConnect.CommitTrans;
  Except
    If DbConnect.InTransaction Then
      DbConnect.RollBackTrans;
      DispInfo('更改数据时发生错误,数据未更改,请重试!',1);
      AdoQry_Head.BookMArk:=BookmArk;
      Abort;
    end;
  AdoQry_Head.BookMArk:=BookmArk;
  Flag:=Not Flag;
end;

procedure TFrm_Pm_Enter_EditPassPo1.DBGridEhDblClick(Sender: TObject);
begin
  inherited;
 {IF AdoQry_Head.fieldbyname('PoLineStatus').AsInteger=6 Then
 begin
   Frm_Pm_Enter_EditPassPo.Act_CancelCheckExecute(Act_CancelCheck);
   Abort;
 end;
 IF AdoQry_Head.fieldbyname('PoLineStatus').AsInteger=5 Then
 begin
   Frm_Pm_Enter_EditPassPo.Act_CheckExecute(Act_Check);
   Abort;
 end;  }
end;

procedure TFrm_Pm_Enter_EditPassPo1.FormDestroy(Sender: TObject);
begin
  inherited;
  Frm_Pm_Enter_EditPassPo1:=Nil;
end;

procedure TFrm_Pm_Enter_EditPassPo1.DBGridEhTitleClick(Column: TColumnEh);
var
  BookMArk:String;
begin
  inherited;
  If Trim(Column.Title.Caption)<>'标记' Then
    Abort;
  If AdoQry_Head.RecordCount=0 Then
    Abort;
  BookMArk:=AdoQry_Head.BookmArk;
  If Not Flag Then
  begin
    AdoQry_Head.First;
    While Not AdoQry_Head.Eof Do
    begin
      AdoQry_Head.Edit;
      AdoQry_Head.fieldbyname('PoLineCheck').AsInteger:=1;
      AdoQry_Head.Post;
      AdoQry_Head.Next;
    end;
  end
  Else
  begin
    AdoQry_Head.First;
    While Not AdoQry_Head.Eof Do
    begin
      AdoQry_Head.Edit;
      AdoQry_Head.fieldbyname('PoLineCheck').AsInteger:=0;
      AdoQry_Head.Post;
      AdoQry_Head.Next;
    end;
  end;
  AdoQry_Head.BookmArk:=BookMArk;
  Flag:=Not Flag;
end;

procedure TFrm_Pm_Enter_EditPassPo1.AdoQry_HeadBeforeInsert(DataSet: TDataSet);
begin
  inherited;
  Abort;
end;

procedure TFrm_Pm_Enter_EditPassPo1.Act_LookExecute(Sender: TObject);
begin
  inherited;

{   try
    If (AdoQry_Head.RecordCount>0)  Then
    if  Frm_Mrp_Enter_MoSsParent=nil then
      begin
        Frm_Mrp_Enter_MoSsParent:=TFrm_Mrp_Enter_MoSsParent.Create(Self);
        Frm_Mrp_Enter_MoSsParent.SetSysParam(UserCode,ModuleCode,MenuId,LoginDate);
        Frm_Mrp_Enter_MoSsParent.ItemCode:=AdoQry_Head.fieldbyname('ItemCode').asstring;
        tmplowPmCode:=AdoQry_Head.fieldbyname('PmCode').asinteger;
        Frm_Mrp_Enter_MoSsParent.Qclt:=getQclt(AdoQry_Head.fieldbyname('ItemCode').asstring);
        Frm_Mrp_Enter_MoSsParent.duedate:=datetimetostr(AdoQry_Head.fieldbyname('polinedate').asdatetime);
        Frm_Mrp_Enter_MoSsParent.strpath:=AdoQry_Head.fieldbyname('ItemCode').asstring+',';
        Frm_Mrp_Enter_MoSsParent.InitForm(dbconnect,True);
      end
      else  Frm_Mrp_Enter_MoSsParent.Show;
  finally
    activecontrol:=dbgrideh;
  end;}
   try
    If (AdoQry_Head.RecordCount>0)  Then
      if  Frm_Mrp_Enter_NewMoSsParent=nil then
        begin
          Frm_Mrp_Enter_NewMoSsParent:=TFrm_Mrp_Enter_NewMoSsParent.Create(Self);
          Frm_Mrp_Enter_NewMoSsParent.SetSysParam(userCode,ModuleCode,menuid,formatdatetime('yyyy.mm.dd',now));
          Frm_Mrp_Enter_NewMoSsParent.ItemCode:=AdoQry_Head.fieldbyname('ItemCode').asstring;
          tmplowPmCode:=AdoQry_Head.fieldbyname('PmCode').asinteger;
          Frm_Mrp_Enter_NewMoSsParent.Qclt:=getQclt(AdoQry_Head.fieldbyname('ItemCode').asstring);
          Frm_Mrp_Enter_NewMoSsParent.duedate:=datetimetostr(AdoQry_Head.fieldbyname('polinedate').asdatetime);
          Frm_Mrp_Enter_NewMoSsParent.strpath:=AdoQry_Head.fieldbyname('ItemCode').asstring+',';
          Frm_Mrp_Enter_NewMoSsParent.InitForm(dbconnect,True);
        end
        else  Frm_Mrp_Enter_NewMoSsParent.Show;
  finally
    activecontrol:=dbgrideh;
  end;
end;

procedure TFrm_Pm_Enter_EditPassPo1.FormCreate(Sender: TObject);
begin
  inherited;
  ToolButton7.Action := Act_Delete;
  ToolButton7.Visible := True;
  ToolButton7.Enabled := True;
  act_Modify.Enabled:=True;
  act_Modify.Visible:=True;
  tlbtn_Modify.Action:=act_Modify;
  tlbtn_Modify.Enabled:=True;
  tlbtn_Modify.Visible:=True;
end;

procedure TFrm_Pm_Enter_EditPassPo1.DeleteRecord;
var
  SqlText,SqlText1,SqlText2,sqlTxt3,BookMArk: String;
  falg:integer;
begin
  faLg:=0;
  if AdoQry_Head.RecordCount>AdoQry_Head.RecNo   then
  begin
    BookMArk:=AdoQry_Head.BookmArk;
    falg:=1;
  end;
    if (AdoQry_Head.fieldbyname('PoLineStatus').AsInteger<>5)  then
     begin
     {  sqlTxt3:=' Select * from poline where pono='''+AdoQry_Head.fieldbyname('PONO').AsString+''''
             +' and polineno ='''+AdoQry_Head.fieldbyname('POlineno').AsString+'''' ;
       AdoQry_Tmp.Close;
       AdoQry_Tmp.SQL.Text :=sqlTxt3 ;
       AdoQry_Tmp.Open;
       if  AdoQry_Tmp.fieldbyname('PoLineStatus').asinteger<> 5 then
       begin
         DispInfo('采购订单号为:'+AdoQry_Head.fieldbyname('PONO').AsString+' 的采购订单已被其他用户修改!',3);
         abort;
       end; }
       DispInfo('不能删除采购订单号为:'+AdoQry_Head.fieldbyname('PONO').AsString+' 已下达的采购订单!',3);
       abort;
     end;

      sqlTxt3:=' Select * from poline where pono='''+AdoQry_Head.fieldbyname('PONO').AsString+''''
             +' and polineno ='''+AdoQry_Head.fieldbyname('POlineno').AsString+''''
             +' and PoLineStatus=5 ' ;
      AdoQry_Tmp.Close;
      AdoQry_Tmp.SQL.Text :=sqlTxt3 ;
      AdoQry_Tmp.Open;
      if  AdoQry_Tmp.fieldbyname('PoLineStatus').asinteger= 5 then
      begin
        try
          DbConnect.beginTrans ;
          SqlText2:=' Delete OpItemList Where PoNo='''+AdoQry_Head.fieldbyname('PoNo').AsSTring+''''
                   +' And PoLineNo='''+AdoQry_Head.fieldbyname('PoLineNo').AsSTring+'''';
          AdoQry_Tmp.Close;
          AdoQry_Tmp.SQL.Text := SqlText2;
          AdoQry_Tmp.ExecSQL;

          SavePoLineHistory('Delete');
          OperationMOPO(AdoQry_Tmp,Trim(AdoQry_Head.fieldbyname('ItemCode').AsString),'po',3,
                        Trim(AdoQry_Head.fieldbyname('pono').AsString),AdoQry_Head.fieldbyname('PoLineNo').AsInteger,AdoQry_Head.fieldbyname('POLINESTATUS').AsInteger,
                        0,AdoQry_Head.fieldbyname('PoQty').Asfloat,
                        AdoQry_Head.fieldbyname('PONoFinishQty').Asfloat,AdoQry_Head.fieldbyname('POStArtWorkDate').AsString,
                        AdoQry_Head.fieldbyname('POLineDATE').AsString,AdoQry_Head.fieldbyname('PoType').AsInteger,AdoQry_Head.fieldbyname('VendorCode').AsString );

          SqlText:=' Delete PoLine Where PoNo='''+AdoQry_Head.fieldbyname('PoNo').AsSTring+''''
                  +' And PoLineNo='''+AdoQry_Head.fieldbyname('PoLineNo').AsSTring+''''
                  +' And PoLineStatus = 5';
          AdoQry_Tmp.Close;
          AdoQry_Tmp.SQL.Text := SqlText;
          AdoQry_Tmp.ExecSQL;
          SqlText1:=' Delete Po Where PoNo='''+AdoQry_Head.fieldbyname('PoNo').AsSTring+''''
                   +' and Not Exists(Select PoNo From PoLine where PoNo='''+AdoQry_Head.fieldbyname('PoNo').AsSTring+''')';
          AdoQry_Tmp.Close;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -