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

📄 mrp_qry_newuprightmrp_d.pas

📁 一个MRPII系统源代码版本
💻 PAS
📖 第 1 页 / 共 4 页
字号:
      open;
      except
      end;

      First;
      while not eof do
       begin
         tmpordinal:=fieldbyname('ordinal').asinteger;
         case tmpordinal of
            0:   with AdoQry_tmp do
                  begin
                    sqltext3:='insert into #tmpResult '
                             +#13+' Values('+quotedstr(tmpQry.fieldbyname('ItemCode').asstring)+','+quotedstr(inttostr(tmpQry.fieldbyname('PmCode').asinteger))+','
                             +#13+'null'+','+'null,'
                             +#13+quotedstr(tmpQry.fieldbyname('Ordernoandlineno').asstring)+','
                             +#13+'null,'
                             +#13+'null,null,'
                             +#13+CurrentInv+','
                             +#13+'null,'+inttostr(tmpQry.fieldbyname('ordinal').asinteger)+','
                             +#13+quotedstr(tmpQry.fieldbyname('trace').asstring)+','
                             +quotedstr(tmpQry.fieldbyname('peggingno').asstring)+','
                             +floattostr(tmponhand)+',0)';

                    Close;
                    sql.clear;
                    sql.Add(sqltext3);
                    try
                    execsql;
                    except
                    end;
                    //tmponhand:=tmponhand+AdoQry_Main.fieldbyname('onhand').asfloat;
                  end;
            1:   with AdoQry_tmp do
                  begin
                    sqltext3:='insert into #tmpResult '
                             +#13+' Values('+quotedstr(tmpQry.fieldbyname('ItemCode').asstring)+','+quotedstr(inttostr(tmpQry.fieldbyname('PmCode').asinteger))+','
                             +#13+'null'+','+'null,'
                             +#13+quotedstr(tmpQry.fieldbyname('Ordernoandlineno').asstring)+','
                             +#13+'null,'
                             +#13+'null,'+oncheckqty+','
                             +#13+'null,'
                             +#13+'null,'+inttostr(tmpQry.fieldbyname('ordinal').asinteger)+','
                             +#13+quotedstr(tmpQry.fieldbyname('trace').asstring)+','
                             +quotedstr(tmpQry.fieldbyname('peggingno').asstring)+','
                             +floattostr(strtofloat(oncheckqty)+tmponhand)+',0)';

                    Close;
                    sql.clear;
                    sql.Add(sqltext3);
                    try
                    execsql;
                    except
                    end;
                    tmponhand:=tmponhand+strtofloat(oncheckqty);
                  end;
            2:  if ((tmpQry.fieldbyname('onhand').asfloat>=0) and (tmpQry.fieldbyname('Orderlinestatus').asinteger<7)) then
               with AdoQry_tmp do
                  begin
                    tMpstring:=' ';
                    if (Trim(tmpQry.fieldbyname('trace').asstring)='待定订单') and (tmpQry.fieldbyname('duedate').asdatetime<=strtodatetime(getserverdate))  and (isAdjust(tmpQry.fieldbyname('ItemCode').asstring)=True) then
                      tMpstring:='订单应下达'
                    else if (Trim(tmpQry.fieldbyname('trace').asstring)='下达订单') and (tmpQry.fieldbyname('realOrderqty').asfloat<=0) then
                      tMpstring:='订单应关闭';
                    if (tmpQry.fieldbyname('Orderlinestatus').asinteger=5)
                    and (tmpQry.fieldbyname('onhand').asfloat>0)
                    and ( (tmpQry.fieldbyname('releasedate').asdatetime<strtodatetime(formatdatetime('yyyy.mm.dd',strtodatetime(GetServerDateTime(dbconnect)))))
                       or (tmpQry.fieldbyname('duedate').asdatetime<strtodatetime(formatdatetime('yyyy.mm.dd',strtodatetime(GetServerDateTime(dbconnect)))) ))then
                    tMpstring:=iifstring(tMpstring=' ','应重排',tMpstring+'/应重排');
                    if tmpQry.fieldbyname('canuseonhand').asinteger=1 then
                    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)+','
                             +#13+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)+','
                             +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  AdoQry_Main.fieldbyname('PmCode').asinteger<>ItemPmCode then
                     //  begin
                     //  AdoQry_Main.next;
                     //   while ((not AdoQry_Main.eof) and (AdoQry_Main.fieldbyname('ordinal').asinteger<>1)) do
                      //     AdoQry_Main.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)+','
                           +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)+','
                             +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_uPMrpResult '+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_NewUpRightMrp_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_NewUpRightMrp_D.FormDestroy(Sender: TObject);
begin
  inherited;
  Frm_Mrp_Qry_NewUpRightMrp_D:=nil;
end;

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

procedure TFrm_Mrp_Qry_NewUpRightMrp_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;

⌨️ 快捷键说明

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