unit U_PBAllTopQ30;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB,
  cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, StdCtrls,
  cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient,
  cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls,
  cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid,
  cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common,
  RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient, IdFTP, ShellAPI, IniFiles, cxCheckBox, cxCalendar, cxButtonEdit,
  cxTextEdit, cxDBLookupComboBox, cxContainer, cxDropDownEdit, cxPC, Menus,
  TeEngine, Series, TeeProcs, Chart, DbChart, GanttCh, cxLookAndFeels,
  cxLookAndFeelPainters, cxNavigator;

type
  TfrmPBAllTopQ30 = class(TForm)
    ToolBar1: TToolBar;
    TBRafresh: TToolButton;
    TBClose: TToolButton;
    ADOQueryTemp: TADOQuery;
    ADOQueryCmd: TADOQuery;
    ToolButton2: TToolButton;
    ADOQueryMain: TADOQuery;
    cxGridPopupMenu2: TcxGridPopupMenu;
    Panel2: TPanel;
    Panel3: TPanel;
    cxGrid1: TcxGrid;
    Tv1: TcxGridDBTableView;
    v2Column12: TcxGridDBColumn;
    v2Column15: TcxGridDBColumn;
    v2Column7: TcxGridDBColumn;
    cxGridLevel1: TcxGridLevel;
    SH2: TPanel;
    SH1: TPanel;
    ClientDataSet1: TClientDataSet;
    DataSource1: TDataSource;
    v1Column1: TcxGridDBColumn;
    Panel6: TPanel;
    cxGrid2: TcxGrid;
    Tv2: TcxGridDBTableView;
    cxGridDBColumn1: TcxGridDBColumn;
    cxGridDBColumn2: TcxGridDBColumn;
    cxGridDBColumn3: TcxGridDBColumn;
    cxGridDBColumn4: TcxGridDBColumn;
    cxGridLevel2: TcxGridLevel;
    KK2: TPanel;
    KK1: TPanel;
    DataSource2: TDataSource;
    ClientDataSet2: TClientDataSet;
    Panel8: TPanel;
    cxGrid3: TcxGrid;
    Tv3: TcxGridDBTableView;
    cxGridDBColumn5: TcxGridDBColumn;
    cxGridDBColumn6: TcxGridDBColumn;
    cxGridDBColumn7: TcxGridDBColumn;
    cxGridDBColumn8: TcxGridDBColumn;
    cxGridLevel3: TcxGridLevel;
    DJ2: TPanel;
    DJ1: TPanel;
    DataSource3: TDataSource;
    ClientDataSet3: TClientDataSet;
    Panel9: TPanel;
    cxGrid4: TcxGrid;
    Tv4: TcxGridDBTableView;
    cxGridDBColumn9: TcxGridDBColumn;
    cxGridDBColumn10: TcxGridDBColumn;
    cxGridDBColumn11: TcxGridDBColumn;
    cxGridDBColumn12: TcxGridDBColumn;
    cxGridLevel4: TcxGridLevel;
    CH2: TPanel;
    CH1: TPanel;
    DataSource4: TDataSource;
    ClientDataSet4: TClientDataSet;
    Panel10: TPanel;
    Panel1: TPanel;
    Label1: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    C_Code: TEdit;
    BegDate: TDateTimePicker;
    EndDate: TDateTimePicker;
    v3Column1: TcxGridDBColumn;
    ClientDataSet11: TClientDataSet;
    ClientDataSet21: TClientDataSet;
    ClientDataSet31: TClientDataSet;
    ClientDataSet41: TClientDataSet;
    procedure FormDestroy(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure TBCloseClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure TBRafreshClick(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure C_CodeNameChange(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Tv2DblClick(Sender: TObject);
    procedure Tv1DblClick(Sender: TObject);
    procedure Tv3DblClick(Sender: TObject);
  private

    { Private declarations }
    procedure InitGrid();
  public
   
  end;

var
  frmPBAllTopQ30: TfrmPBAllTopQ30;

implementation

uses
  U_DataLink, U_RTFun,U_PBCarCPTopMX,U_PBCPCarTopMX,U_PBCPCarBatchNoTopMX;

{$R *.dfm}


procedure TfrmPBAllTopQ30.InitGrid();
begin
  Panel10.Visible:=True;
  Panel10.Refresh;
  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Filtered := False;
      Close;
      SQL.Clear;
      sql.Add('exec P_BI_PBAll_60M :begdate,:enddate,:Type');
      Parameters.ParamByName('begdate').Value:=Trim(FormatDateTime('yyyy-MM-dd',BegDate.Date));
      Parameters.ParamByName('enddate').Value:=Trim(FormatDateTime('yyyy-MM-dd',enddate.Date+1));
      Parameters.ParamByName('Type').Value:='验布';
      Open;
    end;
    SCreateCDS20(ADOQueryMain, ClientDataSet1);
    SInitCDSData20(ADOQueryMain, ClientDataSet1);
    {SH1.Caption:='验布百大排行榜('+Trim(ClientDataSet1.fieldbyname('QSPS').AsString)
                  +','+Trim(ClientDataSet1.fieldbyname('QSBL').AsString)+'%)'; }
    SH2.Caption:='验布总数量'+'('+Trim(ClientDataSet1.fieldbyname('HZPS').AsString)+')';


    with ADOQueryMain do
    begin
      Filtered := False;
      Close;
      SQL.Clear;
      sql.Add('exec P_BI_PBAll_60M :begdate,:enddate,:Type');
      Parameters.ParamByName('begdate').Value:=Trim(FormatDateTime('yyyy-MM-dd',BegDate.Date));
      Parameters.ParamByName('enddate').Value:=Trim(FormatDateTime('yyyy-MM-dd',enddate.Date+1));
      Parameters.ParamByName('Type').Value:='机台';
      Open;
    end;
    SCreateCDS20(ADOQueryMain, ClientDataSet2);
    SInitCDSData20(ADOQueryMain, ClientDataSet2);
    {KK1.Caption:='机台百大排行榜('+Trim(ClientDataSet2.fieldbyname('QSPS').AsString)
                  +','+Trim(ClientDataSet2.fieldbyname('QSBL').AsString)+'%)'; }
    KK2.Caption:='机台总数量'+'('+Trim(ClientDataSet2.fieldbyname('HZPS').AsString)+')';


    with ADOQueryMain do
    begin
      Filtered := False;
      Close;
      SQL.Clear;
      sql.Add('exec P_BI_PBAll_60M :begdate,:enddate,:Type');
      Parameters.ParamByName('begdate').Value:=Trim(FormatDateTime('yyyy-MM-dd',BegDate.Date));
      Parameters.ParamByName('enddate').Value:=Trim(FormatDateTime('yyyy-MM-dd',enddate.Date+1));
      Parameters.ParamByName('Type').Value:='批号';
      Open;
    end;
    SCreateCDS20(ADOQueryMain, ClientDataSet3);
    SInitCDSData20(ADOQueryMain, ClientDataSet3);
    {DJ1.Caption:='批号百大排行榜('+Trim(ClientDataSet3.fieldbyname('QSPS').AsString)
                  +','+Trim(ClientDataSet3.fieldbyname('QSBL').AsString)+'%)';}
    DJ2.Caption:='批号总数量'+'('+Trim(ClientDataSet3.fieldbyname('HZPS').AsString)+')';


    with ADOQueryMain do
    begin
      Filtered := False;
      Close;
      SQL.Clear;
      sql.Add('exec P_BI_PBAll_60M :begdate,:enddate,:Type');
      Parameters.ParamByName('begdate').Value:=Trim(FormatDateTime('yyyy-MM-dd',BegDate.Date));
      Parameters.ParamByName('enddate').Value:=Trim(FormatDateTime('yyyy-MM-dd',enddate.Date+1));
      Parameters.ParamByName('Type').Value:='发货';
      Open;
    end;
    SCreateCDS20(ADOQueryMain, ClientDataSet4);
    SInitCDSData20(ADOQueryMain, ClientDataSet4);
    {CH1.Caption:='发货百大排行榜('+Trim(ClientDataSet4.fieldbyname('QSPS').AsString)
                  +','+Trim(ClientDataSet4.fieldbyname('QSBL').AsString)+'%)';}
    CH2.Caption:='发货总数量'+'('+Trim(ClientDataSet4.fieldbyname('HZPS').AsString)+')';
    
  finally
    ADOQueryMain.EnableControls;
  end;
  Panel10.Visible:=False;
end;

procedure TfrmPBAllTopQ30.FormDestroy(Sender: TObject);
begin
  frmPBAllTopQ30 := nil;
end;

procedure TfrmPBAllTopQ30.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;

procedure TfrmPBAllTopQ30.TBCloseClick(Sender: TObject);
begin
  //WriteCxGrid('收货', Tv1, '前十大产品排行榜');
  Close;
end;

procedure TfrmPBAllTopQ30.FormShow(Sender: TObject);
begin
  //ReadCxGrid('收货', Tv1, '前十大产品排行榜');
end;

procedure TfrmPBAllTopQ30.TBRafreshClick(Sender: TObject);
begin
  InitGrid();
end;

procedure TfrmPBAllTopQ30.ToolButton2Click(Sender: TObject);
begin
  if ADOQueryMain.Active then
  begin
    SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
    SCreateCDS20(ADOQueryMain, ClientDataSet1);
    SInitCDSData20(ADOQueryMain, ClientDataSet1);
  end;
end;

procedure TfrmPBAllTopQ30.C_CodeNameChange(Sender: TObject);
begin
  ToolButton2.Click;
end;

procedure TfrmPBAllTopQ30.FormCreate(Sender: TObject);
var
  FYear:string;
  FMonth:string;
  FDate:TDate;
begin
  FDate:=SGetServerDate10(ADOQueryTemp);
  FYear:=FormatDateTime('yyyy',FDate);
  FMonth:=FormatDateTime('MM',FDate);
  if StrToInt(FMonth)<2 then
  begin
    BegDate.Date:=StrToDate(IntToStr(strtoint(FYear)-1)+'-02-01');
    EndDate.Date:=StrToDate(FYear+'-01-31');
  end else
  begin
    BegDate.Date:=StrToDate(FYear+'-02-01');
    EndDate.Date:=StrToDate(IntToStr(strtoint(FYear)+1)+'-01-31');
  end;
end;

procedure TfrmPBAllTopQ30.Tv2DblClick(Sender: TObject);
begin
  try
    frmPBCarCPTopMX:=TfrmPBCarCPTopMX.Create(Application);
    with frmPBCarCPTopMX do
    begin
      FBegdate:=Self.BegDate.Date;
      FEnddate:=Self.EndDate.Date;
      FCarNo:=Trim(Self.ClientDataSet2.fieldbyname('SPName').AsString);
      if ShowModal=1 then
      begin

      end;
    end;
  finally
    frmPBCarCPTopMX.Free;
  end;
end;

procedure TfrmPBAllTopQ30.Tv1DblClick(Sender: TObject);
begin
  try
    frmPBCPCarTopMX:=TfrmPBCPCarTopMX.Create(Application);
    with frmPBCPCarTopMX do
    begin
      FBegdate:=Self.BegDate.Date;
      FEnddate:=Self.EndDate.Date;
      FSPName:=Trim(Self.ClientDataSet1.fieldbyname('SPName').AsString);
      if ShowModal=1 then
      begin

      end;
    end;
  finally
    frmPBCPCarTopMX.Free;
  end;
end;

procedure TfrmPBAllTopQ30.Tv3DblClick(Sender: TObject);
begin
  try
    frmPBCPCarBatchNoTopMX:=TfrmPBCPCarBatchNoTopMX.Create(Application);
    with frmPBCPCarBatchNoTopMX do
    begin
      FBegdate:=Self.BegDate.Date;
      FEnddate:=Self.EndDate.Date;
      FSPName:=Trim(Self.ClientDataSet3.fieldbyname('SPName').AsString);
      FBatchNo:=Trim(Self.ClientDataSet3.fieldbyname('BatchNo').AsString);
      if ShowModal=1 then
      begin

      end;
    end;
  finally
    frmPBCPCarBatchNoTopMX.Free;
  end;
end;

end.

