📄 mrp_qry_analyzermps_c.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 + -