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

📄 pm_enter_newsspoinfo.pas

📁 一个MRPII系统源代码版本
💻 PAS
📖 第 1 页 / 共 4 页
字号:
          Frm_Mrp_Enter_NewMoSsParent.SetSysParam(userCode,ModuleCode,menuid,formatdatetime('yyyy.mm.dd',now));
          Frm_Mrp_Enter_NewMoSsParent.ItemCode:=AdoQry_Main.fieldbyname('ItemCode').asstring;
          tmplowPmCode:=AdoQry_Main.fieldbyname('PmCode').asinteger;
          Frm_Mrp_Enter_NewMoSsParent.Qclt:=getQclt(AdoQry_Main.fieldbyname('ItemCode').asstring);
          Frm_Mrp_Enter_NewMoSsParent.duedate:=datetimetostr(AdoQry_Main.fieldbyname('realreleasedate').asdatetime);
          Frm_Mrp_Enter_NewMoSsParent.strpath:=AdoQry_Main.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_NewSsPoInfo.Button2Click(Sender: TObject);
var CloseOrCancel : integer; //0 : 关闭 1 :取消
    BookMArk : String;
begin
  inherited;
  try
    BookMArk := AdoQry_Main.BookmArk;
    if AdoQry_Main.RecordCount=0 then exit;
    CloseOrCancel := 0;
    if AdoQry_Main.fieldbyname('SsSysInfoFlag').AsInteger=2 then
    CloseOrCancel := 1;
    if CloseOrCancel = 0 then
    begin
      ExecuteSql(AdoQry_Tmp,'select * from #ss where SsSysInfoFlag=3',0);
      if AdoQry_Tmp.RecordCount=0 then exit;
    end
    else 
    begin
      ExecuteSql(AdoQry_Tmp,'select * from #ss where SsSysInfoFlag=2',0);
      if AdoQry_Tmp.RecordCount=0 then exit;
    end;

    If Frm_Pm_Enter_ClosePo1=Nil Then
    begin
      Frm_Pm_Enter_ClosePo1:=TFrm_Pm_Enter_ClosePo1.Create(Self);
      Frm_Pm_Enter_ClosePo1.SetSysParam(UserCode,ModuleCode,MenuId,LoginDate);
      Frm_Pm_Enter_ClosePo1.CloseOrCancel := CloseOrCancel;
      Frm_Pm_Enter_ClosePo1.InItForm(Dbconnect,False);
    end
    else
      Frm_Pm_Enter_ClosePo1.Show;
  finally
    ActiveControl:=DBGridEh;
    AdoQry_Main.BookmArk := BookMArk;
  end;
end;

procedure TFrm_Pm_Enter_NewSsPoInfo.Act_SumExecute(Sender: TObject);
var
  I:Boolean;
  BookMArk:String;
begin
  inherited;
  If AdoQry_Main.RecordCount=0  Then
  begin
    Abort;
  end;
  I:=False;
  BookMArk:=AdoQry_Main.BookmArk ;
  AdoQry_Main.First;
  While Not AdoQry_Main.Eof do
  begin
    If AdoQry_Main.fieldbyname('PcNo').AsString<>'' Then
    begin
     I:=True;
     BookMArk:=AdoQry_Main.BookmArk ;
     Break;
    end;
    AdoQry_Main.Next;
  end;
  If I=True Then
  begin
    Frm_Pm_Enter_NewSsPoInfo4:=TFrm_Pm_Enter_NewSsPoInfo4.Create(Application);

    Frm_Pm_Enter_NewSsPoInfo4_C:=TFrm_Pm_Enter_NewSsPoInfo4_C.Create(Application);
    Frm_Pm_Enter_NewSsPoInfo4_C.InitForm(DbConnect,'Add',AdoQry_Main);
    Frm_Pm_Enter_NewSsPoInfo4_C.SetFormParam(PcNo,IntToStr(PmCode),'','','','');
    Frm_Pm_Enter_NewSsPoInfo4_C.SetSysParam(UserCode,ModuleCode,MenuId,LoginDate);
    Frm_Pm_Enter_NewSsPoInfo4_C.ShowModal;
    Frm_Pm_Enter_NewSsPoInfo4_C.Free;


    Frm_Pm_Enter_NewSsPoInfo4.InitForm(Dbconnect,False);
    Frm_Pm_Enter_NewSsPoInfo4.SetFormParam(PcNo,IntToStr(PmCode),'','','','');
    Frm_Pm_Enter_NewSsPoInfo4.SetSysParam(UserCode,ModuleCode,MenuId,LoginDate);
    Frm_Pm_Enter_NewSsPoInfo4.Show;


  end
  Else
  begin
    AdoQry_Main.BookmArk:=BookMArk;
    DispInfo('没有含合同号记录,不能执行汇总操作!',3);
    Abort;
  end;

  AdoQry_Main.BookmArk:=BookMArk;


end;

procedure TFrm_Pm_Enter_NewSsPoInfo.DataSourceDataChange(Sender: TObject;
  Field: TField);
begin
  inherited;
  if AdoQry_Main.Active = True then
  begin
    case AdoQry_Main.fieldbyname('SsSysInfoFlag').Asinteger of
      1 :Label7.Caption :='' ;
      2 :Label7.Caption :='应取消的原因:父项需求发生改变,当前数量的订单没有父项需求' ;
      3 :Label7.Caption :='应关闭的原因:订单生产/(采购/委外加工)完毕' ;
      4 :if  AdoQry_Main.fieldbyname('CanUseOnHand').AsFloat=1 then
            Label7.Caption:= '应重排的原因:订单的约定交货日大于物料毛需求的需求日期'
         else
            Label7.Caption :='应重排的原因:订单的约定交货日小于Mrp展开运算的日期' ;
      5: label7.Caption:='应减少原因:物料的供应量大于需求量';
      6: label7.Caption:='应提前到'+AdoQry_Main.fieldbyname('realreleasedate').asstring;
    end;
  end;
end;

procedure TFrm_Pm_Enter_NewSsPoInfo.Button3Click(Sender: TObject);
begin
  inherited;
  Frm_Bas_Qry_MultiBomSViewMaster:=TFrm_Bas_Qry_MultiBomSViewMaster.Create(self);
  Frm_Bas_Qry_MultiBomSViewMaster.InitForm(AdoQry_Tmp.Connection);
  Frm_Bas_Qry_MultiBomSViewMaster.ExpandBom(AdoQry_Main.fieldbyname('ItemCode').asstring);
end;

procedure TFrm_Pm_Enter_NewSsPoInfo.DBGridEhGetCellParams(Sender: TObject;
  Column: TColumnEh; AFont: TFont; var Background: TColor;
  State: TGridDrawState);
begin
  inherited;                                                              
  if (AdoQry_Main.fieldbyname('SSSysInfoFlag').AsInteger=2) or(AdoQry_Main.fieldbyname('SSSysInfoFlag').AsInteger=4) then
    AFont.Color:= clred;
end;

procedure TFrm_Pm_Enter_NewSsPoInfo.Button4Click(Sender: TObject);
  function existsvir(ItemCode:string):boolean;
  var sqltext:string;
  begin
    Result:=False;
    sqltext:='select * from Bom where BomItemType=3 and ite_ItemCode='+quotedstr(ItemCode);
    Executesql(AdoQry_tmp,sqltext,0)    ;
    if AdoQry_tmp.RecordCount<>0 then Result:=True;
  end;
var
  BookMArk:String;
begin
  inherited;
  try
    if (AdoQry_Main.fieldbyname('PmType').asinteger=9) and (AdoQry_Main.fieldbyname('SSSysInfoFlag').asinteger=1) then
    begin
      if not existsvir(AdoQry_Main.fieldbyname('ItemCode').asstring) then
      begin
      Frm_Mrp_Enter_CommonAssignAlterNative:=TFrm_Mrp_Enter_CommonAssignAlterNative.Create(Application);
      Frm_Mrp_Enter_CommonAssignAlterNative.SetSysParam(UserCode,ModuleCode,MenuId,DateTimeToStr(Now));
      Frm_Mrp_Enter_CommonAssignAlterNative.GetalterItem(Dbconnect,AdoQry_Main.fieldbyname('ssid').Asinteger);
      Frm_Mrp_Enter_CommonAssignAlterNative.ShowModal;
      Frm_Mrp_Enter_CommonAssignAlterNative.Release;
      end 
      else begin
      Frm_Mrp_Enter_CommonAssignAlterNative1:=TFrm_Mrp_Enter_CommonAssignAlterNative1.Create(Application);
      Frm_Mrp_Enter_CommonAssignAlterNative1.SetSysParam(UserCode,ModuleCode,MenuId,DateTimeToStr(Now));
      Frm_Mrp_Enter_CommonAssignAlterNative1.lbl_Item.Caption:=AdoQry_Main.fieldbyname('Itemflag').asstring;
      Frm_Mrp_Enter_CommonAssignAlterNative1.Label2.Caption:=AdoQry_Main.fieldbyname('UomName').asstring;
      Frm_Mrp_Enter_CommonAssignAlterNative1.Label5.Caption:=AdoQry_Main.fieldbyname('ssSysInfoflag').asstring;
      Frm_Mrp_Enter_CommonAssignAlterNative1.Label8.Caption:=AdoQry_Main.fieldbyname('ssdate').asstring;
      Frm_Mrp_Enter_CommonAssignAlterNative1.Label12.Caption:=AdoQry_Main.fieldbyname('ssqty').asstring;
      Frm_Mrp_Enter_CommonAssignAlterNative1.Label14.Caption:=AdoQry_Main.fieldbyname('ssreMainqty').asstring;
      Frm_Mrp_Enter_CommonAssignAlterNative1.ite_Ssid:=AdoQry_Main.fieldbyname('ssid').asinteger;
      Frm_Mrp_Enter_CommonAssignAlterNative1.ite_reMainqty:=AdoQry_Main.fieldbyname('ssreMainqty').asfloat;
      Frm_Mrp_Enter_CommonAssignAlterNative1.GetalterItem(AdoQry_Main,AdoQry_Main.fieldbyname('ItemCode').Asstring);
      Frm_Mrp_Enter_CommonAssignAlterNative1.ShowModal;
      Frm_Mrp_Enter_CommonAssignAlterNative1.Release;
      
      end;
      try
        BookMArk:= AdoQry_Main.BookmArk;
        with  AdoQry_Main do
        begin
          edit ;
          fieldbyname('reMainQty').Asfloat:=fieldbyname('reMainQty').Asfloat- ite_ItemTotalAssignedqty;
          post;
        end;
        AdoQry_tmp.Close;
        AdoQry_Tmp.SQL.clear;
        AdoQry_Tmp.SQL.Text :=' update #ss Set reMainQty=reMainQty-'+floattostr(ite_ItemTotalAssignedqty)
                             +' ,ssreMainQty=ssreMainQty-'+floattostr(ite_ItemTotalAssignedqty)
                             +' where ssid='''+AdoQry_Main.fieldbyname('SsId').asstring+'''';
        AdoQry_Tmp.ExecSQL;
        getdata;
        AdoQry_Main.BookmArk:=BookMArk;
      except
      end;
    end;
  finally
    DBGridEh.SetFocus;
  end;
end;

procedure TFrm_Pm_Enter_NewSsPoInfo.Button5Click(Sender: TObject);
var //pono:string;
   // polineno:integer;
    tmpQry:TAdoQuery;
    tmpQry1:TAdoQuery;
    sqltext:string;
    tmppoqty:string;
begin
  inherited;
  try
  if  (AdoQry_Main.fieldbyname('ssSysInfoflag').asinteger<>4) 
    and (AdoQry_Main.fieldbyname('ssSysInfoflag').asinteger<>5) 
    and (AdoQry_Main.fieldbyname('ssSysInfoflag').asinteger<>6) 
    then
   begin
    activecontrol:=dbgrideh;
    exit;
   end;
  tmpQry:=TAdoQuery.Create(self);
  tmpQry.Connection:=dbconnect;
  tmpQry.EnableBCD:=False;
  tmpQry1:=TAdoQuery.Create(self);
  tmpQry1.Connection:=dbconnect;
  tmpQry1.EnableBCD:=False;
  pono:=AdoQry_Main.fieldbyname('Orderno').asstring ;
  polineno:=AdoQry_Main.fieldbyname('OrderLineno').asstring;
  sqltext:=' Select Distinct PoLine.*,Po.*,Vendor.VendorName,Item.ItemName,Item.PmCode,Item.QcLt,Employee.EmployeeName,Uom.UomName,'
                +' Employee.EmployeeCode+'''+' '+'''+Employee.EmployeeName As EmployeeFlag,'
                +' Item.ItemCode+'''+' '+'''+Item.ItemName As ItemFlag, '
                +' Vendor.VendorCode+'''+' '+'''+Vendor.VendorName As VendorFlag '
                +' From PoLine '
                +' Join Po On Po.PoNo=PoLine.PoNo '
                +' Join Item On PoLine.ItemCode=Item.ItemCode '
                //+' And (PoLine.POLineStatus=6 Or PoLine.PoLineStatus=7)  '
                +' Left Join Vendor On Po.VendorCode=Vendor.VendorCode '
                +' Left Join Buyer On Po.EmployeeCode=Buyer.EmployeeCode '
                +' Left Join Employee On Employee.EmployeeCode=Buyer.EmployeeCode'
                +' Join Uom On Uom.UomCode=Item.UomCode '
                +' Join #ss On (PoLine.PoNo=#ss.Orderno and PoLine.PoLineNo=#ss.OrderLineNo)'
            +' where poline.pono='+quotedstr(pono)
            +'   and polineno='+polineno               ;
  Executesql(tmpQry,sqltext,0);
  if tmpQry.RecordCount=0 then exit;
  sqltext:='select sum(isnull(porealqty,0)) as porealqty from opItemList'    
          +' where pono='+quotedstr(AdoQry_Main.fieldbyname('Orderno').asstring)
          +'  and  polineno='+inttostr(AdoQry_Main.fieldbyname('Orderlineno').asinteger);
  Executesql(tmpQry1,sqltext,0);

  Frm_Pm_Enter_PassPo_D := TFrm_Pm_Enter_PassPo_D.Create(self);
  try
    with Frm_Pm_Enter_PassPo_D do
      begin
        AdoQry_tmp.Connection:=dbconnect;
        Edt_Pono.Text:=tmpQry.fieldbyname('PoNo').asstring;
        Edt_LineNo.Text:=tmpQry.fieldbyname('Polineno').asstring;
        Edt_ItemCode.Text:=tmpQry.fieldbyname('ItemCode').asstring;
        Lbl_ItemName.Caption:=tmpQry.fieldbyname('ItemName').asstring;
        edt_ItemName.Text:=tmpQry.fieldbyname('ItemName').asstring;
        MEdt_PoStArtWorkDate.Text:=tmpQry.fieldbyname('PoStArtWorkDate').AsString;
        Medt_PoDate.Text:=tmpQry.fieldbyname('POLineDATE').AsString;
        Edt_PoQty.Text:=tmpQry.fieldbyname('PoQty').asstring;
        tmppoqty:=edt_Poqty.Text;
        Edt_PoNoFinishQty.Text:=tmpQry.fieldbyname('PONoFinishQty').asstring;
        btn_ok.Enabled:=False;
        if getstatus(tmpQry.fieldbyname('pono').asstring,tmpQry.fieldbyname('polineno').asinteger)=5 then
          edt_Poqty.Enabled:=True;
          if (getstatus(tmpQry.fieldbyname('pono').asstring,tmpQry.fieldbyname('polineno').asinteger)=6 )
           and (tmpQry1.fieldbyname('porealqty').asfloat<=0) 
           and (tmpQry.fieldbyname('porealinqty').asfloat<=0)
           and (tmpQry.fieldbyname('poinqty').asfloat<=0)then
          edt_Poqty.Enabled:=True;
        showmodal;
       // medt_Modate.SetFocus;
        if modalResult=mrok then
          begin
           SavePoLineHistory(dbconnect,pono,strtoint(polineno),userCode,1);
           updatepoline(pono,strtoint(polineno),Medt_PoDate.Text,MEdt_PoStArtWorkDate.Text,strtofloat(Edt_PoQty.Text),strtofloat(Edt_PoQty.Text),tmppoqty<>edt_Poqty.Text);
           IF Not AutoBuildopListOrder(DbConnect,Trim(tmpQry.fieldbyname('pono').AsString),Trim(tmpQry.fieldbyname('ItemCode').AsString),IntToStr(tmpQry.fieldbyname('PoLineNo').AsInteger),
                'Edit','Po',tmpQry.fieldbyname('PoQty').Asfloat) Then  //自动产生领料单
              Abort;

           OperationMOPO(AdoQry_Tmp,Trim(tmpQry.fieldbyname('ItemCode').AsString),'po',5,
                       Trim(tmpQry.fieldbyname('pono').AsString),tmpQry.fieldbyname('PoLineNo').AsInteger,tmpQry.fieldbyname('POLINESTATUS').AsInteger,
                       0,tmpQry.fieldbyname('PoQty').Asfloat,
                       tmpQry.fieldbyname('PONoFinishQty').Asfloat,medt_PostArtworkdate.Text,
                       medt_Podate.text,tmpQry.fieldbyname('PoType').AsInteger,tmpQry.fieldbyname('VendorCode').AsString );

          end;
      end;
  finally
    Frm_Pm_Enter_PassPo_D.Free;
    tmpQry.free;
    tmpQry1.Free;
  end;
  finally
    activecontrol:=dbgrideh;    
  end;
{  try
    If Frm_Pm_Enter_EditPassPo1=Nil Then
    begin
      Frm_Pm_Enter_EditPassPo1:=TFrm_Pm_Enter_EditPassPo1.Create(Self);
      Frm_Pm_Enter_EditPassPo1.SetSysParam(UserCode,ModuleCode,MenuId,LoginDate);
      Frm_Pm_Enter_EditPassPo1.InItForm(Dbconnect,False);
      //AdoQry_Main.fieldbyname('Orderno').asstring,AdoQry_Main.fieldbyname('OrderLineno').asstring,
    end
    else
      Frm_Pm_Enter_EditPassPo1.Show;
  finally
    ActiveControl:=DBGridEh;
  end; }
end;

procedure TFrm_Pm_Enter_NewSsPoInfo.FormKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  inherited;
  if key = vk_Space then 
  begin
    AdoQry_Main.Edit;
    AdoQry_Main.fieldbyname('sScheck').AsInteger:=iifinteger(AdoQry_Main.fieldbyname('sScheck').AsInteger=0,1,0);
    AdoQry_Main.Post;
  end;  

end;

end.

⌨️ 快捷键说明

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