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

📄 mrp_qry_analyzermps_c.pas

📁 一个MRPII系统源代码版本
💻 PAS
字号:
unit Mrp_Qry_AnalyzerMps_C;

Interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Base_Condition, Mask, StdCtrls, Db, AdODB, Grids, DBGridEh;

Type
  TFrm_Mrp_Qry_AnalyzerMps_C = Class(TFrm_Base_Condition)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Edt_StArt_Planner: TEdit;
    Edt_End_Planner: TEdit;
    Edt_StArt_Item: TEdit;
    Edt_End_Item: TEdit;
    MEdt_StArt_Date: TMaskEdit;
    MEdt_End_Date: TMaskEdit;
    Edt_StArt_Status: TEdit;
    Edt_End_Status: TEdit;
    Edt_StArt_Per: TEdit;
    Edt_End_Per: TEdit;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    AdoQry_Main: TAdoQuery;
    procedure FormCreate(Sender: TObject);
    procedure Edt_StArt_PlannerExit(Sender: TObject);
    procedure Edt_StArt_ItemExit(Sender: TObject);
    procedure Edt_StArt_PerExit(Sender: TObject);
    procedure Edt_StArt_StatusExit(Sender: TObject);
    procedure Edt_End_StatusExit(Sender: TObject);
    procedure Edt_End_PerExit(Sender: TObject);
    procedure btn_okClick(Sender: TObject);
    procedure Edt_End_PlannerExit(Sender: TObject);
    procedure Edt_End_ItemExit(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure DateCheck(Sender: TObject);
  private
    { Private declarations }
  public
    procedure SetDBConnect(AdOConnection:TAdOConnection);Override;
    { Public declarations }
  end;

var
  Frm_Mrp_Qry_AnalyzerMps_C: TFrm_Mrp_Qry_AnalyzerMps_C;

implementation

uses Sys_Global, Mrp_Qry_AnalyzerMps, Public_Show;

{$R *.DFM}
procedure TFrm_Mrp_Qry_AnalyzerMps_C.SetDBConnect(AdOConnection:TAdOConnection);
begin
  Inherited;
  AdoQry_Main.Connection:=AdoConnection;
end;

procedure TFrm_Mrp_Qry_AnalyzerMps_C.FormCreate(Sender: TObject);
begin
  inherited;
  MEdt_StArt_Date.Text:=FormatDateTime('yyyy.mm.dd',Date-60);
  MEdt_End_Date.Text:=FormatDateTime('yyyy.mm.dd',Date+30);
end;

procedure TFrm_Mrp_Qry_AnalyzerMps_C.Edt_StArt_PlannerExit(
  Sender: TObject);
begin
  inherited;
  If ActiveControl.Name='btn_Cancel' Then
    Exit;

end;

procedure TFrm_Mrp_Qry_AnalyzerMps_C.Edt_StArt_ItemExit(Sender: TObject);
begin
  inherited;
  If ActiveControl.Name='btn_Cancel' Then
   Exit;
end;

procedure TFrm_Mrp_Qry_AnalyzerMps_C.Edt_StArt_PerExit(Sender: TObject);
begin
  inherited;
  If ActiveControl.Name='btn_Cancel' Then
    Exit;
  If Length(Trim(TEdit(Sender).Text))=0 Then
     TEdit(Sender).Text:='0';

end;

procedure TFrm_Mrp_Qry_AnalyzerMps_C.Edt_StArt_StatusExit(Sender: TObject);
begin
  If ActiveControl.Name='btn_Cancel' Then
    Exit;
  If Length(Trim(TEdit(Sender).Text))=0 Then
     TEdit(Sender).Text:='3';
end;

procedure TFrm_Mrp_Qry_AnalyzerMps_C.Edt_End_StatusExit(Sender: TObject);
begin
  inherited;
  If ActiveControl.Name='btn_Cancel' Then
    Exit;
  If Length(Trim(TEdit(Sender).Text))=0 Then
     TEdit(Sender).Text:='3';
end;

procedure TFrm_Mrp_Qry_AnalyzerMps_C.Edt_End_PerExit(Sender: TObject);
begin
  inherited;
  If ActiveControl.Name='btn_Cancel' Then
    Exit;
  If Length(Trim(TEdit(Sender).Text))=0 Then
     TEdit(Sender).Text:='100';
end;

procedure TFrm_Mrp_Qry_AnalyzerMps_C.btn_okClick(Sender: TObject);
var
  SqlText,S:String;
begin
  Application.ProcessMessages;
  SqlText:=' Select Mps.*,'
          +' Case When (select Sum(MoQty) From MoLine Where MoLine.ItemCode=Mps.ItemCode And MoLine.MoLineStatus=5)>0'
          +' Then (select Sum(MoQty) From MoLine Where MoLine.ItemCode=Mps.ItemCode And MoLine.MoLineStatus=5)'
          +' Else 0 end As MoPrepareQty, ' //Mo准备量
          +' Case When (Select Sum(MoQty) From MoLine Where MoLine.ItemCode=Mps.ItemCode And MoLine.MoLineStatus=6)>0 '
          +' Then (Select Sum(MoQty) From MoLine Where MoLine.ItemCode=Mps.ItemCode And MoLine.MoLineStatus=6) '
          +' Else 0 end  As MoXDQty, ' //Mo下达量
          +' Case When (Select Sum(MoNoFinishQty) From MoLine Where MoLine.ItemCode=Mps.ItemCode And MoLine.MoLineStatus=6)>0 '
          +' Then (Select Sum(MoNoFinishQty) From MoLine Where MoLine.ItemCode=Mps.ItemCode And MoLine.MoLineStatus=6) '
          +' Else 0 end As MoCYQty, ' //Mo差异量
          +' Case When (Select Sum(MoQty-MoNoFinishQty) From MoLine Where MoLine.ItemCode=Mps.ItemCode And MoLineStatus=6)>0 '
          +' Then (Select Sum(MoQty-MoNoFinishQty) From MoLine Where MoLine.ItemCode=Mps.ItemCode And MoLineStatus=6) '
          +' Else 0 '
          +' end  As MoFinishQty, ' //MO完成量
          +' Case '
          +' When (Select Sum(MoQty-MoNoFinishQty) From MoLine Where MoLine.ItemCode=Mps.ItemCode And MoLineStatus=6) Is Null  or (Select Sum(isnull(MoQty,0)) From MoLine Where MoLine.ItemCode=Mps.ItemCode And MoLineStatus=6)*100=0 Then 0 '
          +'  Else ((Select Sum(MoQty) From MoLine Where MoLine.ItemCode=Mps.ItemCode And MoLineStatus=6)- '
          +' (Select Sum(MoNoFinishQty) From MoLine Where MoLine.ItemCode=Mps.ItemCode And MoLineStatus=6)) '
          +' /(Select Sum(isnull(MoQty,0)) From MoLine Where MoLine.ItemCode=Mps.ItemCode And MoLineStatus=6)*100 '
          +' end MoFinishRate, ' //MO完成率
          +' Case  When MpsStatus=2 Then MpsQty '
          +' When (MpsStatus=3) Or (MpsStatus=4) Then 0 '
          +' end As MpsPrepareQty, ' //生产准备量
          +' Case When (MpsStatus=2) Or (MpsStatus=4) Then 0 '
          +' When MpsStatus=3 Then MpsQty '
          +' end As MpsPerFormQty, ' //生产下达量
          +' (MpsQty-MpsFinishQty) As MpScXQty, ' //生产差异量
          +' Case When MpsQty=0 Then 0'
          +' Else MpsFinishQty/MpsQty *100 '
          +' end As MpsFinishRate , ' //生产完成率
          +' Item.Pla_EmployeeCode,Employee.EmployeeName,Item.ItemCode,Item.ItemName,'
          +' Item.Pla_EmployeeCode+'''+' '+'''+Employee.EmployeeName As EmployeeFlag,'
          +' Item.ItemCode+'''+' '+'''+Item.ItemName As ItemFlag,Uom.UomName'
          +' From Mps '
          +' Left Join Item On Mps.ItemCode=Item.ItemCode '
          +' Left Join Uom On Item.UomCode=Uom.UomCode '
          +' Left Join Employee On Item.Pla_EmployeeCode=Employee.EmployeeCode'
          +' Where MpsStatus>='''+Edt_StArt_Status.Text+''''
          +' And MpsStatus<='''+Edt_End_Status.Text+''''
          +' And MpsDate>='''+MEdt_StArt_Date.Text+''''
          +' And MpsDate<='''+MEdt_End_Date.Text+''''
          +' And Mps.ItemCode>='''+Edt_StArt_Item.Text+''''
          +' And Mps.ItemCode<='''+Edt_End_Item.Text+''''
          +' And Item.Pla_EmployeeCode>='''+Edt_StArt_Planner.Text+''''
          +' And Item.Pla_EmployeeCode<='''+Edt_End_Planner.Text+''''
          +' And Mps.MpsFinishQty*100/Mps.MpsQty>='''+Trim(Edt_StArt_Per.Text)+''''
          +' And Mps.MpsFinishQty*100/Mps.MpsQty<='''+ Trim(Edt_End_Per.Text)+''''
          +' Order By Item.Pla_EmployeeCode,Item.ItemCode,Mps.MpsQty ';
  AdoQry_Tmp.Close;
  AdoQry_Tmp.SQL.Text:=SqlText;
  AdoQry_Tmp.Open;
  Frm_Mrp_Qry_AnalyzerMps.AdoQry_Main.Close;
  Frm_Mrp_Qry_AnalyzerMps.AdoQry_Main.Clone(AdoQry_Tmp);
  S:='计划员从'+Trim(Edt_StArt_Planner.Text)+' 到 '+Trim(Edt_End_Planner.Text)
    +' / 物料代码从'+Trim(Edt_StArt_Item.Text)+' 到 '+Trim(Edt_End_Item.Text)
    +' / 需用日期从'+MEdt_StArt_Date.Text+' 到 '+ MEdt_End_Date.Text
    +' / '+#13+#10+' 行状态从'+Trim(Edt_StArt_Status.Text)+' 到 '+Trim(Edt_End_Status.Text)
    +' /  完成率从'+Trim(Edt_StArt_Per.Text)+' 到 '+ Trim(Edt_End_Per.Text);
  Frm_Mrp_Qry_AnalyzerMps.Lbl_Condition.Caption:=S;
  Frm_Mrp_Qry_AnalyzerMps.Lbl_Order.Caption:='计划员标识/物料标识/需用数量';
  ModalResult:=Mrok;
end;

procedure TFrm_Mrp_Qry_AnalyzerMps_C.Edt_End_PlannerExit(Sender: TObject);
begin
  inherited;
  If ActiveControl.Name='btn_Cancel' Then
    Exit;
  If Length(Trim(TEdit(Sender).Text))=0 Then
     TEdit(Sender).Text:='ZZZZZ';
end;

procedure TFrm_Mrp_Qry_AnalyzerMps_C.Edt_End_ItemExit(Sender: TObject);
begin
  inherited;
  If ActiveControl.Name='btn_Cancel' Then
    Exit;
  If Length(Trim(TEdit(Sender).Text))=0 Then
     TEdit(Sender).Text:='ZZZZZ';
end;

procedure TFrm_Mrp_Qry_AnalyzerMps_C.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
  AdoQry_Main.Close;
  AdoQry_Tmp.Close;
  AdoQry_Tmp.Free;
  AdoQry_Main.Free;

end;

procedure TFrm_Mrp_Qry_AnalyzerMps_C.DateCheck(Sender: TObject);
begin
  If ActiveControl.Name='btn_Cancel' Then
    Exit;
  inherited;

end;

end.

⌨️ 快捷键说明

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