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

📄 mrp_qry_newtotalmrp.pas

📁 一个MRPII系统源代码版本
💻 PAS
📖 第 1 页 / 共 3 页
字号:
              + '                    and  InvOutBill.polineno=#tmpOrder.Orderlineno '
               +'                  )                                          '
              + '      group by ItemCode,InvOutBill.pono,InvOutBill.polineno  ';
   sqltext33:='select ItemCode,  '
             +#13+'        mono as Orderno,      '
             +#13+'         MoLineno as Orderlineno,   '
             +#13+'         sum(isnull(moCtrlqty,0)) as Ctrlqty  '
             +#13+'   into #tmpItemList                '
             +#13+'   from   mnItemList                 '
             +#13+' where exists(select * from #tmpOrder   '
             +#13+'               where mnItemList.mono=#tmpOrder.Orderno  '
             +#13+'                 and mnItemList.MoLineno=#tmpOrder.Orderlineno) '
             +#13+' group by ItemCode,mono,MoLineno       '
             +#13+'    union                              '
             +#13+' select ItemCode,                      '
             +#13+'         pono as Orderno,              '
             +#13+'        polineno as Orderlineno,       '
             +#13+'        sum(isnull(poCtrlqty,0)) as Ctrlqty      '
             +#13+'   from   opItemList                   '
             +#13+'     where exists(select * from #tmpOrder '
             +#13+' where opItemList.pono=#tmpOrder.Orderno  '
             +#13+'   and opItemList.polineno=#tmpOrder.Orderlineno)  '
             +#13+'   group by ItemCode,pono,polineno   '
                 +'   select  #tmpItemList.*,                          '
                 + '          #tmpOrder.Orderqty,                       '
                 + '          #tmpOrder.OrdernoFinishqty,                           '
                 + '          #tmpInvBill.Billqty,                                  '
                 + '          case when #tmpItemList.Ctrlqty>=#tmpInvBill.Billqty   '
                 + '               then case when #tmpInvBill.Billqty-(#tmpOrder.Orderqty-#tmpOrder.OrdernoFinishqty)*#tmpItemList.Ctrlqty/#tmpOrder.Orderqty<0 then 0   '
                 + '                    else #tmpInvBill.Billqty-(#tmpOrder.Orderqty-#tmpOrder.OrdernoFinishqty)*#tmpItemList.Ctrlqty/#tmpOrder.Orderqty end   '
                 + '               when #tmpItemList.Ctrlqty<#tmpInvBill.Billqty                                                  '
                 + '               then (#tmpOrder.Orderqty-#tmpOrder.OrdernoFinishqty)*#tmpInvBill.Billqty/#tmpOrder.Orderqty    '
                 + '          end as Assignedqty                              '
                 + '          into #tmPAssignedqty                            '
                 + '  from #tmpItemList,#tmpOrder,#tmpInvBill                 '
                 + '  where #tmpItemList.Orderno=#tmpOrder.Orderno            '
                 + '    and #tmpItemList.Orderlineno=#tmpOrder.Orderlineno    '
                 + '    and #tmpItemList.Orderno=#tmpInvBill.Orderno          '
                 + '    and #tmpItemList.Orderlineno=#tmpInvBill.Orderlineno  '
                 + '    and #tmpItemList.ItemCode=#tmpInvBill.ItemCode       '
                 + '   Order by #tmpItemList.Orderno,#tmpItemList.Orderlineno '
                 + ' select ItemCode,sum(Assignedqty) as Assignedqty into #Assignedqty from #tmPAssignedqty '
                  + '  group by ItemCode  ';
   sqltext8:='Select #tmPMrpResultMrp1.ItemCode,       '
             +#13+'        #tmPMrpResultMrp1.ItemName,      '
             +#13+'        #tmPMrpResultMrp1.Qclt,'
             +#13+'        #tmPMrpResultMrp1.UomName,       '
             +#13+'        #tmPMrpResultMrp1.PmCode,        '
             +#13+'        #tmPMrpResultMrp1.PmBatch,       '
             +#13+'        #tmPMrpResultMrp1.Batchstrat,    '
             +#13+'        #tmPMrpResultMrp1.CurrentOnCheckInv, '
             +#13+'        #tmPMrpResultMrp1.GrossQty,          '
             +#13+'        #tmPMrpResultMrp1.MinQty,            '
             +#13+'        isnull(#Assignedqty.Assignedqty,0) as Assignedqty,            '
             +#13+'        isnull(#tmPMrpResultMrp1.CurrentOnHandInv,0) As CurrentOnHandInv,'
             +#13+'        isnull(#tmPMrpResultMoLine1.Qty1,0)+isnull(#tmPMrpResultPoLine1.Qty1,0)  As Orderpreqty,'
             +#13+'        isnull(#tmPMrpResultMoLine2.Qty2,0)+isnull(#tmPMrpResultPoLine2.Qty2,0)  As Orderxdqty,'
             +#13+'        isnull(#tmPMrpResultMoLine2.Qty3,0)+isnull(#tmPMrpResultPoLine2.Qty3,0)  As OrderFinishqty,'
             +#13+'        isnull(#tmPMrpResultMoLine2.Qty4,0)+isnull(#tmPMrpResultPoLine2.Qty4,0)  As OrdernoFinishqty '
            +#13+' into #tmPMrpResultresul                                            '
           +#13+' From #tmPMrpResultMrp1                                               '
           +#13+' Left Join #tmPMrpResultMoLine1                                       '
           +#13+'      On #tmPMrpResultMrp1.ItemCode=#tmPMrpResultMoLine1.ItemCode              '
           +#13+' Left Join #tmPMrpResultMoLine2                                       '
           +#13+'      On #tmPMrpResultMrp1.ItemCode=#tmPMrpResultMoLine2.ItemCode              '
           +#13+' Left Join #tmPMrpResultPoLine1                                       '
           +#13+'      On #tmPMrpResultMrp1.ItemCode=#tmPMrpResultPOLine1.ItemCode              '
           +#13+' Left Join #tmPMrpResultPoLine2                                       '
           +#13+'      On #tmPMrpResultMrp1.ItemCode=#tmPMrpResultPOLine2.ItemCode              '
           +#13+' Left Join #tmPMrpResultInvOutBillLine1                               '
           +#13+'      On #tmPMrpResultMrp1.ItemCode=#tmPMrpResultInvOutBillLine1.ItemCode       '
           +#13+' Left Join #tmPMrpResultInvOutBillLine2                               '
           +#13+'      On #tmPMrpResultMrp1.ItemCode=#tmPMrpResultInvOutBillLine2.ItemCode'
           +#13+' left join #Assignedqty on #tmPMrpResultMrp1.ItemCode=#Assignedqty.ItemCode ';

   //得出最后结果
   sqltext9:='select *, '
             +'        MrpInv=CurrentonCheckInv+CurrentonhandInv,              '
             +'        lessqty=CurrentonhandInv+CurrentonCheckInv-grossqty,          '
             +'        Sysqty=case when Batchstrat=0   '
             +'                     then -(CurrentonhandInv-grossqty-minqty+Orderpreqty+OrdernoFinishqty)           '
             +'                    when Batchstrat=1 and PmBatch=0   '
             +'                     then -(CurrentonhandInv-grossqty-minqty+Orderpreqty+OrdernoFinishqty) '
             +'                    when Batchstrat=1 and PmBatch>0 and (CurrentonhandInv-grossqty-minqty+Orderpreqty+OrdernoFinishqty)-floor((CurrentonhandInv-grossqty-minqty+Orderpreqty+OrdernoFinishqty)/PmBatch)*PmBatch=0   '
             +'                     then -(CurrentonhandInv-grossqty-minqty+Orderpreqty+OrdernoFinishqty)  '
             +'                    when Batchstrat=1 and PmBatch>0 '
             +'                      and (CurrentonhandInv-grossqty-minqty+Orderpreqty+OrdernoFinishqty)-floor((CurrentonhandInv-grossqty-minqty+Orderpreqty+OrdernoFinishqty)/PmBatch)*PmBatch<>0   '
             +'                     then (floor((grossqty-CurrentonhandInv+minqty-Orderpreqty-OrdernoFinishqty)/PmBatch)+1)*PmBatch  '
             +'                end    '
             +' into #tmPMrpTotalResult   '
             +' from #tmPMrpResultresul'
             +' Order by #tmPMrpResultresul.PmCode,#tmPMrpResultresul.ItemCode'
             +' drop table #tmpOrder,#tmpItemList,#tmpInvBill,#tmPAssignedqty,#Assignedqty ';
selectfromsql:='select *,Itemflag=ItemCode+'' ''+ItemName from #tmPMrpTotalResult ';
Orderbyfields:='PmCode,ItemCode,';
condition:='PmCode<>0';
Application.ProcessMessages;
 Executesql(AdoQry_Main,sqltext0,1);
 Executesql(AdoQry_Main,sqltext1,1);
 Executesql(AdoQry_Main,sqltext2,1);
 Executesql(AdoQry_Main,sqltext3,1);
 Executesql(AdoQry_Main,sqltext4,1);
 Executesql(AdoQry_Main,sqltext5,1);
 Executesql(AdoQry_Main,sqltext6,1);
 Executesql(AdoQry_Main,sqltext7,1);
 Executesql(AdoQry_Main,sqltext22,1);
 Executesql(AdoQry_Main,sqltext33,1);
 Executesql(AdoQry_Main,sqltext8,1);
 Executesql(AdoQry_Main,sqltext9,1);
 Executesql(AdoQry_Main,'select *,Itemflag=ItemCode+'' ''+ItemName from #tmPMrpTotalResult where PmCode<>0 Order by PmCode,ItemCode',0);
end;

procedure TFrm_Mrp_Qry_NewTotalMrp.FormDestroy(Sender: TObject);
begin
  inherited;
  Frm_Mrp_Qry_NewTotalMrp:=nil;
end;

procedure TFrm_Mrp_Qry_NewTotalMrp.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
with AdoQry_tmp do
  begin
   Close;
   sql.clear;
   sql.Add('drop table #tmPMrpResultMrp,#tmPMrpResultMrp1,#tmPMrpResultMoLine1,#tmPMrpResultMoLine2,#tmPMrpResultpoline1,#tmPMrpResultpoline2,#tmPMrpResultInvOutBillline1,#tmPMrpResultInvOutBillline2,#tmPMrpResultresul,#tmPMrpTotalResult');
   Prepared;
   try
     execsql;
   except
   end;
  end;
end;

procedure TFrm_Mrp_Qry_NewTotalMrp.Act_LookExecute(Sender: TObject);
begin
  //inherited;
 try
   Frm_Mrp_Qry_InformalTotalMrp_D:=TFrm_Mrp_Qry_InformalTotalMrp_D.Create(self);
    with   Frm_Mrp_Qry_InformalTotalMrp_D do
      begin
        Extedt_ItemCode.Text:=AdoQry_Main.fieldbyname('ItemCode').asstring;
        lbl_ItemName.Caption:=AdoQry_Main.fieldbyname('ItemName').asstring;
        lbl_UomName.Caption:=AdoQry_Main.fieldbyname('UomName').asstring;
        lbl_PmCode.Caption:=AdoQry_Main.fieldbyname('PmCode').asstring;
        lbl_minqty.Caption:=floattostr(AdoQry_Main.fieldbyname('minqty').asfloat);
        edt_CurrentonCheckInv.Text:=floattostr(AdoQry_Main.fieldbyname('CurrentonCheckInv').asfloat);
        edt_CurrentonhandInv.Text:=floattostr(AdoQry_Main.fieldbyname('CurrentonhandInv').asfloat);
        edt_MrpInv.Text:=floattostr(AdoQry_Main.fieldbyname('MrpInv').asfloat);
        edt_grossqty.Text:=floattostr(AdoQry_Main.fieldbyname('grossqty').asfloat);
        edt_lessqty.Text:=floattostr(AdoQry_Main.fieldbyname('lessqty').asfloat);
        edt_Sysqty.Text:=floattostr(AdoQry_Main.fieldbyname('Sysqty').asfloat);
        edt_Orderpreqty.Text:=floattostr(AdoQry_Main.fieldbyname('Orderpreqty').asfloat);
        edt_Orderxdqty.Text:=floattostr(AdoQry_Main.fieldbyname('Orderxdqty').asfloat);
        edt_OrderFinishqty.Text:=floattostr(AdoQry_Main.fieldbyname('OrderFinishqty').asfloat);
        edt_OrdernoFinishqty.Text:=floattostr(AdoQry_Main.fieldbyname('OrdernoFinishqty').asfloat);
       showmodal;
    end;
 finally
    Frm_Mrp_Qry_InformalTotalMrp_D.Free;
 end;

end;

procedure TFrm_Mrp_Qry_NewTotalMrp.btn_ItemClick(Sender: TObject);
begin
  inherited;

  Qry_Item(dbconnect,AdoQry_Main.fieldbyname('ItemCode').asstring);
{ try
   Frm_Mrp_Qry_UpRightMrp_D_Item:=TFrm_Mrp_Qry_UpRightMrp_D_Item.Create(Application);
   with   Frm_Mrp_Qry_UpRightMrp_D_Item do
     begin
      with AdoQry_tmp do
        begin
         Connection:=dbconnect;
         Close;
         sql.clear;
         sql.Add('select Item.*,t1.EmployeeName as buyerName,'
                 +' t2.EmployeeName as PlannerName,'
                 +' t3.EmployeeName as whkeeperName,'
                 +' t4.UomName   '
                 +' from Item,Employee t1,Employee t2,Employee t3,Uom t4'
                 +' where Item.EmployeeCode*=t1.EmployeeCode '
                 +'   and Item.Pla_EmployeeCode*=t2.EmployeeCode'
                 +'   and Item.wh_EmployeeCode*=t3.EmployeeCode'
                 +'   and Item.UomCode*=t4.UomCode'
                 +'   and ItemCode='+quotedstr(AdoQry_Main.fieldbyname('ItemCode').asstring));
         open;
        edit1.text:=fieldbyname('ItemCode').asstring;
        edit2.text:=fieldbyname('ItemName').asstring;
        edit3.text:=fieldbyname('UomCode').asstring;
        label4.Caption:=fieldbyname('UomName').asstring;
        edit4.text:=fieldbyname('designno').asstring;
        edit3.text:=fieldbyname('UomCode').asstring;
        combobox1.ItemIndex:=fieldbyname('ItemUsable').asinteger;
        combobox2.ItemIndex:=fieldbyname('ItemType').asinteger;
        edit5.text:=fieldbyname('EmployeeCode').asstring;
        label9.Caption:=fieldbyname('buyerName').asstring;
        edit6.text:=fieldbyname('Pla_EmployeeCode').asstring;
        label11.Caption:=fieldbyname('PlannerName').asstring;
        edit7.text:=fieldbyname('whCode').asstring;
        edit8.text:=fieldbyname('wh_EmployeeCode').asstring;
        label14.Caption:=fieldbyname('whkeeperName').asstring;
        combobox3.ItemIndex:=fieldbyname('onlydefaultwh').asinteger;
        edit9.text:=floattostr(fieldbyname('maxqty').asfloat);
        edit10.text:=floattostr(fieldbyname('minqty').asfloat);
        combobox4.ItemIndex:=fieldbyname('limitout').asinteger;
        combobox5.ItemIndex:=fieldbyname('longpurchlt').asinteger;
        edit11.text:=floattostr(fieldbyname('purchldtime').asfloat);
        edit12.text:=floattostr(fieldbyname('mnldtime').asfloat);
        combobox6.ItemIndex:=fieldbyname('PmCode').asinteger;
        combobox7.ItemIndex:=fieldbyname('Batchstrat').asinteger;
        edit13.text:=floattostr(fieldbyname('PmBatch').asfloat);
        edit14.text:=fieldbyname('DeptCode').asstring;
        edit15.text:=fieldbyname('BarCode').asstring;
        combobox8.ItemIndex:=fieldbyname('BatchCtrl').asinteger;
        edit16.text:=floattostr(fieldbyname('Capacityhours').asfloat);
        combobox9.ItemIndex:=fieldbyname('canSale').asinteger;
        edit17.text:=fieldbyname('ItemCode2').asstring;
        edit18.text:=fieldbyname('ItemshortName').asstring;
        edit19.text:=floattostr(fieldbyname('CurrentonhandInv').asfloat);
        edit20.text:=floattostr(fieldbyname('CurrentonCheckInv').asfloat);
        end;
      showmodal;
     end;
 finally
   Frm_Mrp_Qry_UpRightMrp_D_Item.Free;
 end; }
   activecontrol:=dbgrideh;
end;

procedure TFrm_Mrp_Qry_NewTotalMrp.DBGridEhGetCellParams(
  Sender: TObject; Column: TColumnEh; AFont: TFont; var Background: TColor;
  State: TGridDrawState);
begin
  inherited;
if  AdoQry_Main.fieldbyname('PmCode').asinteger=1 then
  begin
   Background:=$eeddcc;
   afont.Color:=clblack;
   end;

⌨️ 快捷键说明

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