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

📄 pm_qry_newnormalsspoinfo.pas

📁 一个MRPII系统源代码版本
💻 PAS
📖 第 1 页 / 共 3 页
字号:
unit Pm_Qry_NewNormalSsPoInfo;
 
Interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Base_Outer, Menus, ExtPrintReport, Db, ActnList, AdODB, Grids, DBGridEh,
  StdCtrls, ExtCtrls, ComCtrls, ToolWin, DBCtrls, jpeg;

Type
  TFrm_Pm_Qry_NewNormalSsPoInfo = Class(TFrm_Base_Outer)
    AdoQry_MainSSId: TAutoIncField;
    AdoQry_MainItemCode: TStringField;
    AdoQry_MainSSSysInfoFlag: TIntegerField;
    AdoQry_MaInOrderNo: TStringField;
    AdoQry_MaInOrderLineNo: TIntegerField;
    AdoQry_MainSSDate: TDateTimeField;
    AdoQry_MainSSQty: TFloatField;
    AdoQry_MainPmType: TIntegerField;
    AdoQry_MainSScheck: TIntegerField;
    AdoQry_MainGrossRequireQty: TFloatField;
    AdoQry_MainItemName: TStringField;
    AdoQry_MainUomCode: TStringField;
    AdoQry_MainUomName: TStringField;
    AdoQry_MaInOrderLineStatus: TIntegerField;
    AdoQry_MainItemflag: TStringField;
    AdoQry_MainSsName: TStringField;
    Label1: TLabel;
    DBText1: TDBText;
    DBText2: TDBText;
    Label2: TLabel;
    Label3: TLabel;
    DBText3: TDBText;
    AdoQry_MainDeptVendorCode: TStringField;
    AdoQry_Loop: TAdoQuery;
    AdoQry_MainPcNo: TStringField;
    AdoQry_MainPmCode: TIntegerField;
    Label4: TLabel;
    DBText4: TDBText;
    AdoQry_MainEmployeeCode: TStringField;
    AdoQry_MainEmployeeName: TStringField;
    AdoQry_MainEmployeeFlag: TStringField;
    AdoQry_Mainduedate: TDateTimeField;
    AdoQry_MainReMainQty: TFloatField;
    Label6: TLabel;
    Lab_RunMrpDate: TLabel;
    AdoQry_MainReMainQty2: TFloatField;
    AdoQry_MainQclt: TIntegerField;
    btn_Order: TButton;
    btn_ite_Item: TButton;
    btn_Vendor: TButton;
    btn_Item: TButton;
    btn_uPMrp: TButton;
    btn_OblongMrp: TButton;
    AdoQry_Mainpoinqty: TFloatField;
    Button1: TButton;
    AdoQry_MainDeptVendorCode2: TStringField;
    Label5: TLabel;
    DBText5: TDBText;
    Label7: TLabel;
    Button3: TButton;
    AdoQry_MainCanUseOnHand: TFloatField;
    AdoQry_MainCanUseOnHand2: TFloatField;
    AdoQry_MainSSDate2: TDateTimeField;
    procedure FormDestroy(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Act_CheckExecute(Sender: TObject);
    procedure AdoQry_MainBeforeInsert(DataSet: TDataSet);
    procedure AdoQry_MainBeforeEdit(DataSet: TDataSet);
    procedure AdoQry_MainAfterPost(DataSet: TDataSet);
    procedure Act_LookExecute(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure btn_ItemClick(Sender: TObject);
    procedure btn_VendorClick(Sender: TObject);
    procedure btn_ite_ItemClick(Sender: TObject);
    procedure btn_OrderClick(Sender: TObject);
    procedure btn_uPMrpClick(Sender: TObject);
    procedure btn_OblongMrpClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure DataSourceDataChange(Sender: TObject; Field: TField);
    procedure Button3Click(Sender: TObject);
    procedure DBGridEhGetCellParams(Sender: TObject; Column: TColumnEh;
      AFont: TFont; var Background: TColor; State: TGridDrawState);
  private
 //  Flag:Integer;
    Checked:Boolean;
    PcNo:String;
    PmCode:Integer;
    Selected:Integer;//选定个数
    function ismorethanzero(fieldName:string;tableName:string;conditionfield:string):boolean;

    { Private declarations }
  public
    untionfalg:integer;
    frentform,falg:integer;
    procedure InitForm(AdOConnection:TAdOConnection;ReadOnly:Boolean);Override;
    procedure Initselect;
    procedure GetData;Override;
    function getQclt(ItemCode:string):string;{ Public declarations }
    { Public declarations }
  end;

var
  Frm_Pm_Qry_NewNormalSsPoInfo: TFrm_Pm_Qry_NewNormalSsPoInfo;
  ItemCode:string;

implementation
uses Sys_Global, Public_Show, Pm_Enter_PoSsParent, Mrp_Qry_UpRightMrp_D_Item,
  Mrp_Qry_InformalTotalMrp_vd, Mrp_Qry_InformalTotalMrp_Item,
  Mrp_Qry_InformalUpRightMrp_D_ParentMo, Mrp_Qry_InformalTotalMrp_Mo,
  Mrp_Qry_InformalTotalMrp_Po, Mrp_Qry_UpRightMrp_D, Mrp_Qry_OblongMrp_D,
  Mrp_Enter_MoSsParent, Bas_Qry_MultiBomSViewMaster, Pm_Qry_NormalSsPoInfo,
  Mrp_Qry_NewUpRightMrp_D, Mrp_Qry_NewOblongMrp_D, Mrp_Enter_NewMoSsParent;
{$R *.DFM}
procedure TFrm_Pm_Qry_NewNormalSsPoInfo.InitForm(AdOConnection:TAdOConnection;ReadOnly:Boolean);
var
  SqlText:string;
  AdOCmd_Mrp:TAdOCommand;
begin
  Application.ProcessMessages;
  inherited;
  CreatePanel(1,DBGridEh);
  AdOCmd_Mrp:=TAdOCommand.Create(Nil);
  AdOCmd_Mrp.CommandTimeout:=0;
  AdOCmd_Mrp.Connection:=DBConnect;
  SqlText:=' select MrpResult.*, '
          +' DeptVendorCode1=(select  VendorCode from pc with(index(Pk_Pc))  where pcno= Case When ((Select Count(distinct PcLine.PcNo) As ICount From PcLine '
          +' Where MrpResult.ItemCode=PcLine.ItemCode '
          +' And MrpResult.ReleaseDate>=PcStArtDate And MrpResult.ReleaseDate<=PcendDate '
          +' And ((MrpResult.OnHand>=PcStArtQty And MrpResult.OnHand<PcendQty) Or '
          +' (PcStArtQty=0 And PcendQty=0))'
          +' And PcLine.PcLineStatus=1)>=1) And (MrpResult.Ordinal=3) And (MrpResult.DeptVendorCode is Not Null) Then '
          +' (Select Top 1 PcLine.PcNo From PcLine with(index(Pk_PcLine)),Pc with(index(Pk_Pc)) '
          +' Where PcLine.PcNo=Pc.PcNo '
          +' And MrpResult.ItemCode=PcLine.ItemCode '
          +' And MrpResult.ReleaseDate>=PcStArtDate And MrpResult.ReleaseDate<=PcendDate '
          +' And ((MrpResult.OnHand>=PcStArtQty And MrpResult.OnHand<PcendQty) '
          +' Or (PcStArtQty=0 And PcendQty=0))'
          +' And (PcLine.PcLineStatus=1) And Pc.VendorCode=MrpResult.DeptVendorCode) '

          +' When ((Select Count(distinct PcLine.PcNo) As ICount From PcLine '
          +' Where MrpResult.ItemCode=PcLine.ItemCode '
          +' And MrpResult.ReleaseDate>=PcStArtDate And MrpResult.ReleaseDate<=PcendDate '
          +' And ((MrpResult.OnHand>=PcStArtQty And MrpResult.OnHand<PcendQty) Or '
          +' (PcStArtQty=0 And PcendQty=0))'
          +' And PcLine.PcLineStatus=1)=1) And (MrpResult.Ordinal=3) And (MrpResult.DeptVendorCode is Null) Then '
          +' (Select PcLine.PcNo From PcLine '
          +' Where MrpResult.ItemCode=PcLine.ItemCode '
          +' And MrpResult.ReleaseDate>=PcStArtDate And MrpResult.ReleaseDate<=PcendDate '
          +' And ((MrpResult.OnHand>=PcStArtQty And MrpResult.OnHand<PcendQty) '
          +' Or (PcStArtQty=0 And PcendQty=0))'
          +' And (PcLine.PcLineStatus=1)) '

          +' When  ((Select Count(PcLine.PcNo) As ICount From PcLine '
          +' Where MrpResult.ItemCode=PcLine.ItemCode '
          +' And MrpResult.ReleaseDate >=PcStArtDate And MrpResult.ReleaseDate< PcendDate '
          +' And ((MrpResult.OnHand>=PcStArtQty And MrpResult.OnHand< PcendQty ) Or '
          +' (PcStArtQty=0 And PcendQty=0))'
          +' And PcLine.PcLineStatus=1)>1) '
          +' And (MrpResult.DeptVendorCode is Null) '
          +' And (MrpResult.ordinal=3) '
          +' Then '
          +''''+'待分配'+''''
          +' Else '
          +' Null '
          +' end '
          +'),     '

          +'  ssid=MrpResultid,ssdate=releasedate,ssSysInfoflag=1,Poline.poqty,ssqty=MrpResult.onhand,Sysqty=MrpResult.onhand,ssreMainqty=reMainqty '
          +'  into #ss1 from MrpResult                '
          +' left outer join poline on MrpResult.Orderno=Poline.Pono '
          +'    and MrpResult.Orderlineno=Poline.Polineno  '
          +' where (ordinal=3 )   '
          +' and ((PmCode=1) or (PmCode=2) or (PmCode=3)) '

          +' union '

          +' select MrpResult.*, '
          +' DeptVendorCode1=(select  VendorCode from pc with(index(Pk_Pc))  where pcno= Case When ((Select Count(distinct PcLine.PcNo) As ICount From PcLine '
          +' Where MrpResult.ItemCode=PcLine.ItemCode '
          +' And MrpResult.ReleaseDate>=PcStArtDate And MrpResult.ReleaseDate<=PcendDate '
          +' And ((MrpResult.OnHand>=PcStArtQty And MrpResult.OnHand<PcendQty) Or '
          +' (PcStArtQty=0 And PcendQty=0))'
          +' And PcLine.PcLineStatus=1)>=1) And (MrpResult.Ordinal=3) And (MrpResult.DeptVendorCode is Not Null) Then '
          +' (Select Top 1 PcLine.PcNo From PcLine with(index(Pk_PcLine)),Pc with(index(Pk_Pc)) '
          +' Where PcLine.PcNo=Pc.PcNo '
          +' And MrpResult.ItemCode=PcLine.ItemCode '
          +' And MrpResult.ReleaseDate>=PcStArtDate And MrpResult.ReleaseDate<=PcendDate '
          +' And ((MrpResult.OnHand>=PcStArtQty And MrpResult.OnHand<PcendQty) '
          +' Or (PcStArtQty=0 And PcendQty=0))'
          +' And (PcLine.PcLineStatus=1) And Pc.VendorCode=MrpResult.DeptVendorCode) '

          +' When ((Select Count(distinct PcLine.PcNo) As ICount From PcLine '
          +' Where MrpResult.ItemCode=PcLine.ItemCode '
          +' And MrpResult.ReleaseDate>=PcStArtDate And MrpResult.ReleaseDate<=PcendDate '
          +' And ((MrpResult.OnHand>=PcStArtQty And MrpResult.OnHand<PcendQty) Or '
          +' (PcStArtQty=0 And PcendQty=0))'
          +' And PcLine.PcLineStatus=1)=1) And (MrpResult.Ordinal=3) And (MrpResult.DeptVendorCode is Null) Then '
          +' (Select PcLine.PcNo From PcLine '
          +' Where MrpResult.ItemCode=PcLine.ItemCode '
          +' And MrpResult.ReleaseDate>=PcStArtDate And MrpResult.ReleaseDate<=PcendDate '
          +' And ((MrpResult.OnHand>=PcStArtQty And MrpResult.OnHand<PcendQty) '
          +' Or (PcStArtQty=0 And PcendQty=0))'
          +' And (PcLine.PcLineStatus=1)) '

          +' When  ((Select Count(PcLine.PcNo) As ICount From PcLine '
          +' Where MrpResult.ItemCode=PcLine.ItemCode '
          +' And MrpResult.ReleaseDate >=PcStArtDate And MrpResult.ReleaseDate< PcendDate '
          +' And ((MrpResult.OnHand>=PcStArtQty And MrpResult.OnHand< PcendQty ) Or '
          +' (PcStArtQty=0 And PcendQty=0))'
          +' And PcLine.PcLineStatus=1)>1) '
          +' And (MrpResult.DeptVendorCode is Null) '
          +' And (MrpResult.ordinal=3) '
          +' Then '
          +''''+'替代件待分配'+''''
          +' Else '
          +' Null '
          +' end '
          +'),     '

          +'  ssid=MrpResultid,ssdate=releasedate,ssSysInfoflag=1,Poline.poqty,ssqty=MrpResult.onhand,Sysqty=MrpResult.onhand,ssreMainqty=reMainqty '
          +'  from MrpResult                '
          +' left outer join poline on MrpResult.Orderno=Poline.Pono '
          +'    and MrpResult.Orderlineno=Poline.Polineno  '
          +' where (ordinal=3 )   '
          +' and (PmCode=9) '
          +' And ReMainQty>0'

          +' union '


          +' select MrpResult.*,DeptVendorCode1=DeptVendorCode,ssid=MrpResultid,ssdate=releasedate,ssSysInfoflag=3,poline.poqty,ssqty=MrpResult.Orderqty,Sysqty=MrpResult.Orderqty,ssreMainqty=0 from MrpResult  '
          +'  join poline on MrpResult.Orderno=poline.pono '
          +'    and MrpResult.Orderlineno=poline.polineno  '
          +' where ordinal=2   '
          +'   And OrderLineStatus=6 And  RealOrderQty<=0 '
          +'   and exists(select pono from poline where Orderno=poline.pono and Orderlineno=poline.polineno and poline.polinestatus<>7) '

          +' union '
           +' select MrpResult.*,DeptVendorCode1=DeptVendorCode,ssid=MrpResultid,ssdate=releasedate,ssSysInfoflag=4,poline.poqty,ssqty=MrpResult.Orderqty,Sysqty=MrpResult.Orderqty,ssreMainqty=0 from MrpResult                         '
           +'  join poline on MrpResult.Orderno=poline.pono '
           +'    and MrpResult.Orderlineno=poline.polineno  '
           +' where ordinal=2                    '
           +'   and Orderlinestatus=5 '
           +'   and onhand>0  '
           +'   and (releasedate<dateName(yy,getdate())+''.''+dateName(mm,getdate())+''.''+dateName(dd,getdate()) or duedate<dateName(yy,getdate())+''.''+dateName(mm,getdate())+''.''+dateName(dd,getdate()))  '
           +'   and exists(select pono from poline where Orderno=poline.pono and Orderlineno=poline.polineno and poline.polinestatus<>7) '
           +' union '
           +' select MrpResult.*,DeptVendorCode1=DeptVendorCode,ssid=MrpResultid,ssdate=releasedate,ssSysInfoflag=4,poline.poqty,ssqty=MrpResult.Orderqty,Sysqty=MrpResult.Orderqty,ssreMainqty=0 from MrpResult   '
           +'  join poline on MrpResult.Orderno=poline.pono '
           +'    and MrpResult.Orderlineno=poline.polineno  '
           +' where ordinal=2                    '
           +' And OrderLineStatus<>7 '
           +' And CanUseOnHand=1 '


           +' union '
           +' select MrpResult.*, DeptVendorCode1=DeptVendorCode,   '
           +'        ssid=MrpResultid,'
           +'        ssdate=releasedate, '
           +'        ssSysInfoflag=2, '
           +'        poline.poqty,   '
           +'         ssqty=Orderqty-onhand, '
           +'        Sysqty=Orderqty-onhand,  '
           +'        ssreMainqty=0       '
           +'   from MrpResult  With(Index(Ordinal)),poline           '
           +'  where (ordinal=2 )    '
           +'  and Orderlinestatus<>7   '
           +'  and Orderqty>onhand      '
           +'  And MrpResult.ItemCode Not In (Select ItemCode From MrpResult With(Index(Ordinal)) Where Ordinal=4) '
           +'  and exists(select pono from poline where Orderno=poline.pono) '
           +'  and MrpResult.Orderno=poline.pono          '
           +'  and MrpResult.Orderlineno=poline.polineno  '

           +' union '
           +' select MrpResult.*, DeptVendorCode1=DeptVendorCode,   '
           +'        ssid=MrpResultid,'
           +'        ssdate=releasedate, '
           +'        ssSysInfoflag=5, '
           +'        poline.poqty,   '
           +'         ssqty=Orderqty-onhand, '
           +'        Sysqty=Orderqty-onhand,  '
           +'        ssreMainqty=0       '
           +'   from MrpResult  With(Index(Ordinal)),poline           '
           +'  where (ordinal=2 )    '
           +'  and Orderlinestatus<>7   '
           +'  and  OrderQty>OnHand    '
           +'  And MrpResult.ItemCode  In (Select ItemCode From MrpResult With(Index(Ordinal)) Where Ordinal=4) '
           +'  and exists(select pono from poline where Orderno=poline.pono) '
           +'  and MrpResult.Orderno=poline.pono          '
           +'  and MrpResult.Orderlineno=poline.polineno  ';

  ExecuteCmd(AdOCmd_Mrp,SQlText);

⌨️ 快捷键说明

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