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

📄 mrp_qry_newinformaluprightmrp_d.pas

📁 一个MRPII系统源代码版本
💻 PAS
📖 第 1 页 / 共 3 页
字号:
                    tMpstring:=iifstring(tMpstring=' ','应提前',tMpstring+'/应提前');
                    if not (tmpQry.fieldbyname('Orderqty').asfloat-tmpQry.fieldbyname('onhand').asfloat<0.01) then
                              if  isAdjust(tmpQry.fieldbyname('ItemCode').asstring) then
                                 tMpstring:=tMpstring+iifstring(tMpstring=' ','','/')+'建议减少'+floattostr(tmpQry.fieldbyname('Orderqty').asfloat-tmpQry.fieldbyname('onhand').asfloat)
                       else
                                tMpstring:=tMpstring+iifstring(tMpstring=' ','','/')+'建议取消'+floattostr(tmpQry.fieldbyname('Orderqty').asfloat-tmpQry.fieldbyname('onhand').asfloat);
                         
                    sqltext3:='insert into #tmpResult '
                             +#13+' Values('+quotedstr(tmpQry.fieldbyname('ItemCode').asstring)+','+quotedstr(inttostr(tmpQry.fieldbyname('PmCode').asinteger))+','
                             +#13+quotedstr(tmpQry.fieldbyname('releasedate').asstring)+','
                             +#13+quotedstr(tmpQry.fieldbyname('realreleasedate').asstring)+','
                             +#13+quotedstr(tmpQry.fieldbyname('Ordernoandlineno').asstring)+','
                              +quotedstr(tMpstring)+','
                           //  +#13+iifstring(tmpQry.fieldbyname('Orderqty').asfloat-tmpQry.fieldbyname('onhand').asfloat<0.01,quotedstr(' '), quotedstr('建议取消'+floattostr(tmpQry.fieldbyname('Orderqty').asfloat-tmpQry.fieldbyname('onhand').asfloat)))+','
                             +#13+'null,'+floattostr(tmpQry.fieldbyname('Orderqty').asfloat)+','
                             +#13+floattostr(tmpQry.fieldbyname('onhand').asfloat)+','
                             +#13+'null,'+inttostr(tmpQry.fieldbyname('ordinal').asinteger)+','
                             +#13+quotedstr(tmpQry.fieldbyname('trace').asstring)+','
                             +#13+quotedstr(tmpQry.fieldbyname('peggingno').asstring)+','
                             +floattostr(tmpQry.fieldbyname('Orderqty').asfloat+tmponhand)+',0)';
 
                    Close;
                    sql.clear;
                    sql.Add(sqltext3);
                    try
                    execsql;
                    except
                    end;
                    tmponhand:=tmponhand+tmpQry.fieldbyname('Orderqty').asfloat;
                  end;
            4:     with AdoQry_tmp do
                  begin
                   //if  tmpQry.fieldbyname('PmCode').asinteger<>ItemPmCode then
                   //  begin
                   //  tmpQry.next;
                   //   while ((not tmpQry.eof) and (tmpQry.fieldbyname('ordinal').asinteger<>1)) do
                    //     tmpQry.next;
                    //  continue;
                   //  end;

                  tmpgrossqty:=tmpQry.fieldbyname('grossqty').asfloat;
                  tmpreleasedate:=datetostr(tmpQry.fieldbyname('releasedate').asdatetime);
                  trace:=tmpQry.fieldbyname('trace').asstring;
                       if tmponhand-tmpgrossqty=0 then
                       tMpstr:='null'
                      else tMpstr:=floattostr(tmponhand-tmpgrossqty);
                      sqltext4:='insert into #tmpResult '
                             +#13+' Values('+quotedstr(tmpQry.fieldbyname('ItemCode').asstring)+','+quotedstr(inttostr(tmpQry.fieldbyname('PmCode').asinteger))+','
                             +#13+quotedstr(tmpreleasedate)+','
                             +#13+quotedstr(tmpQry.fieldbyname('realreleasedate').asstring)+','
                             +#13+'null,null,'+floattostr(tmpgrossqty)+','
                             +#13+'null,'
                             +#13+floattostr(tmpQry.fieldbyname('onhand').asfloat)+','
                             +#13+'null,'
                             +#13+inttostr(tmpQry.fieldbyname('ordinal').asinteger)+','
                             +#13+quotedstr(trace)+','
                             +#13+quotedstr(tmpQry.fieldbyname('peggingno').asstring)+','
                             +tMpstr+',0)';

                    AdoQry_tmp.Close;
                    AdoQry_tmp.sql.clear;
                    AdoQry_tmp.sql.Add(sqltext4);
                    try
                    AdoQry_tmp.execsql;
                    tmponhand:=tmponhand-tmpQry.fieldbyname('grossqty').asfloat;

                    except
                    end;
                   end;
            3:  begin
                 if tmpQry.fieldbyname('onhand').asinteger>0 then
                     with AdoQry_tmp do
                  begin
                   sqltext5:='insert into #tmpResult '
                             +#13+' Values('+quotedstr(tmpQry.fieldbyname('ItemCode').asstring)+','+quotedstr(inttostr(tmpQry.fieldbyname('PmCode').asinteger))+','
                             +#13+quotedstr(tmpQry.fieldbyname('releasedate').asstring)+','
                             +#13+quotedstr(tmpQry.fieldbyname('realreleasedate').asstring)+','
                             +#13+'null,'
                             +quotedstr('系统建议余量为'+floattostr(tmpQry.fieldbyname('reMainqty').asfloat))+','
                             +#13+'null,null,'+floattostr(tmpQry.fieldbyname('onhand').asfloat)+','
                             +#13+floattostr(tmpQry.fieldbyname('onhand').asfloat)+','
                             +#13+inttostr(tmpQry.fieldbyname('ordinal').asinteger)+','
                             +#13+quotedstr(tmpQry.fieldbyname('trace').asstring)+','
                             +#13+quotedstr(tmpQry.fieldbyname('peggingno').asstring)+','
                             +floattostr(tmponhand+tmpQry.fieldbyname('onhand').asfloat)+',0)';

                    Close;
                    sql.clear;
                    sql.Add(sqltext5);
                    try
                    execsql;
                    except
                    end;
                    tmponhand:=tmponhand+tmpQry.fieldbyname('onhand').asfloat;
                    end;

                // tmpQry.Next;
                // tmponhand:=tmpQry.fieldbyname('onhand').asfloat;
                end;
         end;
         tmpQry.next;
     end;
}      AdoQry_Main.Close;
      AdoQry_Main.sql.clear;
      AdoQry_Main.sql.Add('exec sp_InformaluPMrpResult '+quotedstr(ItemCode));
      AdoQry_Main.Prepared;
      AdoQry_Main.open;

      if AdoQry_Main.recordCount=0 then
         begin
          DispInfo('无当前物料模拟竖式报表相关数据!',3);
          self.Close;
         end;
    try
    tmpQry.Free;
    except
    end;




end;


procedure TFrm_Mrp_Qry_NewInformalUpRightMrp_D.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
 with AdoQry_tmp do
   begin
     Close;
     sql.clear;
     sql.Add('drop table #tmpResult,#tmpInformalMrpResult');
     Prepared;
     try
      execsql;
      except
     end;
   end;

  inherited;

end;

procedure TFrm_Mrp_Qry_NewInformalUpRightMrp_D.FormDestroy(Sender: TObject);
begin
  inherited;
Frm_Mrp_Qry_NewInformalUpRightMrp_D:=nil;
end;

procedure TFrm_Mrp_Qry_NewInformalUpRightMrp_D.FormCreate(Sender: TObject);
begin
  inherited;
  tlbtn_Sum.Action:=Act_Showgrid;
end;

procedure TFrm_Mrp_Qry_NewInformalUpRightMrp_D.Act_LookExecute(
  Sender: TObject);
var Mpsandmo:integer;
begin
  inherited;
ItemCode:=AdoQry_Main.fieldbyname('ItemCode').asstring;
traceType:=255;
    if Trim(AdoQry_Main.fieldbyname('trace').asstring)='主计划需求' then
       traceType:=1;
    if Trim(AdoQry_Main.fieldbyname('trace').asstring)='客户订单需求' then
       traceType:=4;
    if Trim(AdoQry_Main.fieldbyname('trace').asstring)='父项订单已分配量' then
       traceType:=2;
    if Trim(AdoQry_Main.fieldbyname('trace').asstring)='父项计划需求' then
       traceType:=3;
requiredate:=AdoQry_Main.fieldbyname('releasedate').asstring;
if uppercase(copy(AdoQry_Main.fieldbyname('Ordernoandlineno').asstring,1,1))='P' then
   begin
     Orderno:=AdoQry_Main.fieldbyname('Ordernoandlineno').asstring;
     Orderlineno:=copy(Orderno,pos('-',Orderno)+1,length(Orderno)-pos('-',Orderno));
     Orderno:=copy(Orderno,1,pos('-',Orderno)-1);
        if Frm_Mrp_Qry_InformalUpRightMrp_D_Po=nil then
          begin
           Frm_Mrp_Qry_InformalUpRightMrp_D_Po:=TFrm_Mrp_Qry_InformalUpRightMrp_D_Po.Create(Self);
           Frm_Mrp_Qry_InformalUpRightMrp_D_Po.SetSysParam(userCode,ModuleCode,menuid,formatdatetime('yyyy.mm.dd',now));
           Frm_Mrp_Qry_InformalUpRightMrp_D_Po.Orderno:=Orderno;
           Frm_Mrp_Qry_InformalUpRightMrp_D_Po.Orderlineno:=Orderlineno;

           Frm_Mrp_Qry_InformalUpRightMrp_D_Po.InitForm(AdoQry_Main.Connection,True);
          end
        else Frm_Mrp_Qry_InformalUpRightMrp_D_Po.Show;
   end
else
if uppercase(copy(AdoQry_Main.fieldbyname('Ordernoandlineno').asstring,1,1))='M' then
   begin
     Orderno:=AdoQry_Main.fieldbyname('Ordernoandlineno').asstring;
     Orderlineno:=copy(Orderno,pos('-',Orderno)+1,length(Orderno)-pos('-',Orderno));
     Orderno:=copy(Orderno,1,pos('-',Orderno)-1);
        if Frm_Mrp_Qry_InformalUpRightMrp_D_Mo=nil then
          begin
           Frm_Mrp_Qry_InformalUpRightMrp_D_Mo:=TFrm_Mrp_Qry_InformalUpRightMrp_D_Mo.Create(Self);
           Frm_Mrp_Qry_InformalUpRightMrp_D_Mo.SetSysParam(userCode,ModuleCode,menuid,formatdatetime('yyyy.mm.dd',now));
           Frm_Mrp_Qry_InformalUpRightMrp_D_Mo.Orderno:=Orderno;
           Frm_Mrp_Qry_InformalUpRightMrp_D_Mo.Orderlineno:=Orderlineno;
           Frm_Mrp_Qry_InformalUpRightMrp_D_Mo.InitForm(AdoQry_Main.Connection,True);
          end
        else Frm_Mrp_Qry_InformalUpRightMrp_D_Mo.Show;
   end
else
   begin
    if ((traceType=1) ) then
    if Frm_Mrp_Qry_InformalUpRightMrp_D_NewMps=nil then
          begin
           Frm_Mrp_Qry_InformalUpRightMrp_D_NewMps:=TFrm_Mrp_Qry_InformalUpRightMrp_D_NewMps.Create(Self);
           Frm_Mrp_Qry_InformalUpRightMrp_D_NewMps.SetSysParam(userCode,ModuleCode,menuid,formatdatetime('yyyy.mm.dd',now));
          Frm_Mrp_Qry_InformalUpRightMrp_D_NewMps.lowItemPmCode:=ItemPmCode;
          Frm_Mrp_Qry_InformalUpRightMrp_D_NewMps.ItemCode:=ItemCode;
          Frm_Mrp_Qry_InformalUpRightMrp_D_NewMps.requiredate:=requiredate;
          Frm_Mrp_Qry_InformalUpRightMrp_D_NewMps.Qclt:=Qclt;
          Frm_Mrp_Qry_InformalUpRightMrp_D_NewMps.Mpsid:=strtoint(AdoQry_Main.fieldbyname('peggingno').asstring);
           Frm_Mrp_Qry_InformalUpRightMrp_D_NewMps.traceType:=traceType;
           Frm_Mrp_Qry_InformalUpRightMrp_D_NewMps.InitForm(AdoQry_Main.Connection,True);
          end
        else Frm_Mrp_Qry_InformalUpRightMrp_D_NewMps.Show;
    if ((traceType=2) )  then
       if  Frm_Mrp_Qry_UpRightMrp_D_NewMossParent=nil then
             begin
                Frm_Mrp_Qry_UpRightMrp_D_NewMossParent:=TFrm_Mrp_Qry_UpRightMrp_D_NewMossParent.Create(Self);
                Frm_Mrp_Qry_UpRightMrp_D_NewMossParent.SetSysParam(userCode,ModuleCode,menuid,formatdatetime('yyyy.mm.dd',now));
                Frm_Mrp_Qry_UpRightMrp_D_NewMossParent.Qclt:=Qclt;
              //  tmplowPmCode:=AdoQry_Main.fieldbyname('PmCode').asinteger;
                Frm_Mrp_Qry_UpRightMrp_D_NewMossParent.ItemCode:=AdoQry_Main.fieldbyname('ItemCode').asstring;
         //       Frm_Mrp_Qry_UpRightMrp_D_NewMossParent.duedate:=datetimetostr(AdoQry_Main.fieldbyname('releasedate').asdatetime);
                Frm_Mrp_Qry_UpRightMrp_D_NewMossParent.peggingno:=AdoQry_Main.fieldbyname('peggingno').asstring;
           //     Frm_Mrp_Qry_UpRightMrp_D_NewMossParent.strpath:=AdoQry_Main.fieldbyname('ItemCode').asstring+',';
                Frm_Mrp_Qry_UpRightMrp_D_NewMossParent.InitForm(dbconnect,True);
             end
              else  Frm_Mrp_Qry_UpRightMrp_D_NewMossParent.Show;

    if traceType=3 then
 if  Frm_Mrp_Qry_InformalUpRightMrp_D_NewParentMo=nil then
 begin
  Frm_Mrp_Qry_InformalUpRightMrp_D_NewParentMo:=TFrm_Mrp_Qry_InformalUpRightMrp_D_NewParentMo.Create(Self);
  Frm_Mrp_Qry_InformalUpRightMrp_D_NewParentMo.SetSysParam(userCode,ModuleCode,menuid,formatdatetime('yyyy.mm.dd',now));
  Frm_Mrp_Qry_InformalUpRightMrp_D_NewParentMo.Qclt:=Qclt;
  tmplowPmCode1:=AdoQry_Main.fieldbyname('PmCode').asinteger;
  Frm_Mrp_Qry_InformalUpRightMrp_D_NewParentMo.initType:=2;
  Frm_Mrp_Qry_InformalUpRightMrp_D_NewParentMo.peggingType:=1;
  Frm_Mrp_Qry_InformalUpRightMrp_D_NewParentMo.ItemCode:=AdoQry_Main.fieldbyname('ItemCode').asstring;
  Frm_Mrp_Qry_InformalUpRightMrp_D_NewParentMo.duedate:=datetimetostr(AdoQry_Main.fieldbyname('releasedate').asdatetime);
  Frm_Mrp_Qry_InformalUpRightMrp_D_NewParentMo.strpath:=AdoQry_Main.fieldbyname('ItemCode').asstring+',';
  Frm_Mrp_Qry_InformalUpRightMrp_D_NewParentMo.InitForm(dbconnect,True);
 end
 else  Frm_Mrp_Qry_InformalUpRightMrp_D_NewParentMo.Show;
 if traceType=4 then
 if  Frm_Mrp_Qry_SaleOrder=nil then
 begin
  Frm_Mrp_Qry_SaleOrder:=TFrm_Mrp_Qry_SaleOrder.Create(Self);
  Frm_Mrp_Qry_SaleOrder.SetSysParam(userCode,ModuleCode,menuid,formatdatetime('yyyy.mm.dd',now));
  Frm_Mrp_Qry_SaleOrder.slonoandlineno:=AdoQry_Main.fieldbyname('peggingno').asstring;
  Frm_Mrp_Qry_SaleOrder.InitForm(dbconnect,True);
 end
 else  Frm_Mrp_Qry_SaleOrder.Show;


   end


end;

procedure TFrm_Mrp_Qry_NewInformalUpRightMrp_D.Act_ShowGridExecute(
  Sender: TObject);
  var sqltext,tmpvar:string;
  begin
  inherited;
if uppercase(copy(AdoQry_Main.fieldbyname('Ordernoandlineno').asstring,1,1))<>'P' then
    exit;
 sqltext:='select po.VendorCode  from po where po.pono='''+copy(AdoQry_Main.fieldbyname('Ordernoandlineno').asstring,1,pos('-',AdoQry_Main.fieldbyname('Ordernoandlineno').asstring)-1)+'''';

 with AdoQry_tmp do
  begin
     Close;
     sql.clear;
     sql.Add(sqltext);
     open;
     tmpvar:=fieldbyname('VendorCode').asstring;
     Close;
     sql.clear;
     sql.Add('select * from Vendor where VendorCode='+quotedstr(tmpvar));
     open;
    try
     with TFrm_Mrp_Qry_InformalUpRightMrp_D_vd.Create(self) do
       begin
       edit1.Text:=fieldbyname('VendorName').asstring;
       edit5.Text:=fieldbyname('VendorAddress').asstring;
       edit3.Text:=fieldbyname('VendorshortName').asstring;
       edit4.Text:=fieldbyname('Vendoremail').asstring;
       edit2.Text:=fieldbyname('Vendorfax').asstring;
       edit21.Text:=fieldbyname('Vendortel').asstring;
       maskedit1.Text:=fieldbyname('Vendorcreatetime').asstring;
       maskedit2.Text:=fieldbyname('Vendormodifytime').asstring;
       edit6.Text:=fieldbyname('Vendorbank').asstring;
       edit7.Text:=fieldbyname('Vendorbankaccno').asstring;

⌨️ 快捷键说明

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