unit bpck_plan_find;

interface

uses
	Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
	Dialogs, StdCtrls, Grids, DBGrids, ComCtrls, Buttons, ExtCtrls, DB, ADODB,
	ToolWin, ImgList, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
  cxDataStorage, cxEdit, cxDBData, cxGridLevel, cxClasses, cxControls,
  cxGridCustomView, cxGridCustomTableView, cxGridTableView,
  cxGridDBTableView, cxGrid;

type
	Tbpck_frmplan_find = class(TForm)
		pubquery: TADOQuery;
		ADOQuery1: TADOQuery;
		DataSource1: TDataSource;
		ImageList1: TImageList;
		ToolBar1: TToolBar;
		ToolButton9: TToolButton;
		ToolButton5: TToolButton;
		ToolButton6: TToolButton;
		ToolButton8: TToolButton;
		ToolButton4: TToolButton;
		GroupBox1: TGroupBox;
		Label1: TLabel;
		DtpRq1: TDateTimePicker;
		Label2: TLabel;
		DtpRq2: TDateTimePicker;
		Label3: TLabel;
		EdtJhdh: TEdit;
		Label7: TLabel;
		EdtKh: TEdit;
		Label8: TLabel;
		EdtPm: TEdit;
		DBGrid1: TDBGrid;
		Label4: TLabel;
		EdtSh: TEdit;
		Label5: TLabel;
		EdtHh: TEdit;
    Tv1: TcxGridDBTableView;
    cxGrid1Level1: TcxGridLevel;
    cxGrid1: TcxGrid;
		procedure FormShow(Sender: TObject);
		procedure ToolButton4Click(Sender: TObject);
		procedure ToolButton9Click(Sender: TObject);
		procedure DBGrid1DblClick(Sender: TObject);
		procedure ToolButton6Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
	private
		{ Private declarations }
	public
		{ Public declarations }
	end;

var
	bpck_frmplan_find: Tbpck_frmplan_find;

implementation

uses U_adodbmd;

{$R *.dfm}

procedure Tbpck_frmplan_find.FormShow(Sender: TObject);
var
	aDate: TDateTime;
begin
	pubquery.Close;
	pubquery.SQL.Clear;
	pubquery.SQL.Add('SELECT GETDATE()');
	pubquery.Open;

	aDate := pubquery.Fields[0].AsDateTime;

	DtpRq1.Date := aDate - 7;
	DtpRq2.Date := aDate;

	ToolButton9Click(Sender);
end;

procedure Tbpck_frmplan_find.ToolButton4Click(Sender: TObject);
begin
	ModalResult := mrCancel;
end;
(******************************************************************************)
(* ��ѯ                                                                       *)
(******************************************************************************)
procedure Tbpck_frmplan_find.ToolButton9Click(Sender: TObject);
var
	strSQL: String;
begin
{
	strSQL := 'SELECT A.PlanNo, A.P_Code, A.P_ChnName, A.P_SeqNo, A.P_Colstd, A.P_Color, '
//	         + 'Mf = RTRIM(STR(ROUND(P_Breadth/BE.UnitFact))) + ''/'' + LTRIM(STR(ROUND(P_UpBreadth/BE.UnitFact))) AS mf, '
					 + 'A.P_YHNo, B.CustomNo, C.ShortName, '
           + 'ChnName = ISNULL(D.ChnName, A.P_Color), '
					 + 'P_Num=ROUND(A.P_Num/UE.UnitFact, 2), B.Unit, UnitName=UE.UnitName, '
					 + 'P_Breadth=ROUND(A.P_Breadth/BE.UnitFact, 0), P_UpBreadth=ROUND(A.P_UpBreadth/BE.UnitFact, 0), '
					 + 'A.B_Unit, B_UnitName=BE.UnitName, '
					 + 'P_Gram=ROUND(A.P_Gram/GE.UnitFact, 0), A.G_Unit, G_UnitName=GE.UnitName, '
					 + 'F.P_Fhs, G.P_Kcs '
					 + 'FROM MV_ProductInfo_All A JOIN MV_PlanInfo_All B ON (B.PlanNo=A.PlanNo AND B.Type=A.Type)'
					 + 'LEFT JOIN BC_Customer C ON C.CustomNo=B.CustomNo '
					 + 'LEFT JOIN MC_Color D ON (D.ColorId=A.P_Color AND D.Valid=''Y'') '
					 + 'LEFT JOIN XC_Unit BE ON BE.UnitCode=A.B_Unit '
					 + 'LEFT JOIN XC_Unit GE ON GE.UnitCode=A.G_Unit '
					 + 'LEFT JOIN XC_Unit UE ON UE.UnitCode=B.Unit '
					 + 'LEFT JOIN (SELECT SUM(ISNULL(UQty, 0)) AS P_Fhs, PlanNo, P_Code, P_SeqNo FROM WD_InOut_MX '
					 + 'JOIN WD_InOut ON (WD_InOut.DepotNo=WD_InOut_MX.DepotNo AND WD_InOut.DepotType=0) '
					 + 'GROUP BY PlanNo, P_Code, P_SeqNo) F ON (F.PlanNo=A.PlanNo AND F.P_Code=A.P_Code AND F.P_SeqNo=A.P_SeqNo) '
					 + 'LEFT JOIN (SELECT SUM(ISNULL(UQty, 0)) AS P_Kcs, PlanNo, P_code, P_SeqNo '
					 + 'FROM WD_Clothing_MX GROUP BY PlanNo, P_Code, P_SeqNo) G ON (G.PlanNo=A.PlanNo AND G.P_Code=A.P_Code AND G.P_SeqNo=A.P_SeqNo) '
					 + 'WHERE A.P_Valid=''Y'' ';
}
	strSQL := 'SELECT A.PlanNo, A.P_SeqNo, A.P_Code, A.P_ChnName, A.P_Spec, A.P_Colstd, A.P_Color, A.ColorName,'#13
   			  + '  A.P_YHNo, B.CustomNo, B.CustomName, B.Businees, B.BusineesName,'#13
					+ '  A.P_Num, B.Unit,'#13
					+ '  A.P_Breadth, A.P_UpBreadth, A.B_Unit,'#13
					+ '  A.P_Gram, A.G_Unit,'#13
          + '  UnitName = ISNULL((SELECT TOP 1 UnitName FROM XC_Unit WHERE UnitCode = B.Unit), B.Unit),'#13
          + '  B_UnitName = (SELECT TOP 1 UnitName FROM XC_Unit WHERE UnitCode = A.B_Unit),'#13
          + '  G_UnitName = (SELECT TOP 1 UnitName FROM XC_Unit WHERE UnitCode = A.G_Unit)'#13
//					+ '  F.P_Fhs, G.P_Kcs'#13
					+ 'FROM MV_ProductInfo_All A'#13
          + '  JOIN MV_PlanInfo_All B ON (B.PlanNo=A.PlanNo)'#13
{
					+ '  LEFT JOIN (SELECT SUM(ISNULL(UQty, 0)) AS P_Fhs, PlanNo, P_Code, P_SeqNo FROM WD_InOut_MX '
					+ 'JOIN WD_InOut ON (WD_InOut.DepotNo=WD_InOut_MX.DepotNo AND WD_InOut.DepotType=0) '
					+ 'GROUP BY PlanNo, P_Code, P_SeqNo) F ON (F.PlanNo=A.PlanNo AND F.P_Code=A.P_Code AND F.P_SeqNo=A.P_SeqNo) '
					+ 'LEFT JOIN (SELECT SUM(ISNULL(UQty, 0)) AS P_Kcs, PlanNo, P_code, P_SeqNo '
					+ 'FROM WD_Clothing_MX GROUP BY PlanNo, P_Code, P_SeqNo) G ON (G.PlanNo=A.PlanNo AND G.P_Code=A.P_Code AND G.P_SeqNo=A.P_SeqNo) '
}
					+ 'WHERE A.P_Valid=''Y'' '#13;

	if DtpRq1.Checked then
	begin
		strSQL := strSQL + ' AND B.FillTime>=' + QuotedStr(FormatDateTime('yyyy-MM-dd', DtpRq1.Date)) + #13;
	end;

	if DtpRq2.Checked then
	begin
		strSQL := strSQL + ' AND B.FillTime<' + QuotedStr(FormatDateTime('yyyy-MM-dd', DtpRq2.Date + 1)) + #13;
	end;

	if Trim(EdtJhdh.Text) <> '' then
	begin
		strSQL := strSQL + ' AND A.PlanNo LIKE ' + QuotedStr('%' + Trim(EdtJhdh.Text) + '%') + #13;
	end;

	if Trim(EdtSh.Text) <> '' then
	begin
		strSQL := strSQL + ' AND A.P_Colstd LIKE ' + QuotedStr(Trim(EdtSh.Text) + '%') + #13;
	end;

	if Trim(EdtKh.Text) <> '' then
	begin
		strSQL := strSQL + ' AND B.CustomName LIKE ' + QuotedStr('%' + Trim(EdtKh.Text) + '%') + #13;
	end;

	if Trim(EdtPm.Text) <> '' then
	begin
		strSQL := strSQL + ' AND A.P_ChnName LIKE ' + QuotedStr(Trim(EdtPm.Text) + '%') + #13;
	end;

	if Trim(EdtHh.text) <> '' then
	begin
		strSQL := strSQL + ' AND A.P_YHNo LIKE ' + QuotedStr('%' + Trim(EdtHh.Text) + '%') + #13;
	end;

	with ADOQuery1 do
	begin
		Close;
		SQL.Clear;
		SQL.Add(strSQL);
		Open;
	end;
end;

procedure Tbpck_frmplan_find.DBGrid1DblClick(Sender: TObject);
begin
	ToolButton6Click(Sender);
end;

procedure Tbpck_frmplan_find.ToolButton6Click(Sender: TObject);
begin
	if ADOQuery1.IsEmpty then Exit;

	ModalResult := mrOk;
end;

procedure Tbpck_frmplan_find.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
	Action := caHide;
end;

end.