unit U_JYFTop;

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;

type
  TfrmJYFTop = 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;
    SH1: TPanel;
    ClientDataSet1: TClientDataSet;
    DataSource1: TDataSource;
    v1Column1: TcxGridDBColumn;
    DataSource2: TDataSource;
    ClientDataSet2: TClientDataSet;
    Panel8: TPanel;
    DJ1: TPanel;
    DataSource3: TDataSource;
    ClientDataSet3: TClientDataSet;
    Panel9: TPanel;
    CH1: TPanel;
    ClientDataSet4: TClientDataSet;
    Panel10: TPanel;
    Panel1: TPanel;
    Label1: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    C_Code: TEdit;
    BegDate: TDateTimePicker;
    EndDate: TDateTimePicker;
    ClientDataSet11: TClientDataSet;
    ClientDataSet21: TClientDataSet;
    ClientDataSet31: TClientDataSet;
    v1Column2: TcxGridDBColumn;
    cxGrid2: TcxGrid;
    Tv2: TcxGridDBTableView;
    cxGridDBColumn1: TcxGridDBColumn;
    cxGridDBColumn2: TcxGridDBColumn;
    cxGridDBColumn3: TcxGridDBColumn;
    cxGridDBColumn4: TcxGridDBColumn;
    cxGridDBColumn9: TcxGridDBColumn;
    cxGridLevel2: TcxGridLevel;
    cxGrid3: TcxGrid;
    Tv3: TcxGridDBTableView;
    cxGridDBColumn5: TcxGridDBColumn;
    cxGridDBColumn6: TcxGridDBColumn;
    cxGridDBColumn7: TcxGridDBColumn;
    cxGridDBColumn8: TcxGridDBColumn;
    cxGridDBColumn10: TcxGridDBColumn;
    cxGridLevel3: TcxGridLevel;
    HZ: TPanel;
    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 Tv1DblClick(Sender: TObject);
  private

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

var
  frmJYFTop: TfrmJYFTop;

implementation

uses
  U_DataLink, U_RTFun,U_JYFTopMX;

{$R *.dfm}


procedure TfrmJYFTop.InitGrid();
begin
  Panel10.Visible:=True;
  Panel10.Refresh;
  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Filtered := False;
      Close;
      SQL.Clear;
      sql.Add('exec P_BI_JYFAll :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);

    with ADOQueryMain do
    begin
      Filtered := False;
      Close;
      SQL.Clear;
      sql.Add('exec P_BI_JYFAll :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);

    with ADOQueryMain do
    begin
      Filtered := False;
      Close;
      SQL.Clear;
      sql.Add('exec P_BI_JYFAll :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);
    HZ.Caption:='打分总匹数：'+Trim(ClientDataSet3.fieldbyname('JYFenShuPSAll').AsString)+
                '  打分总分数：'+Trim(ClientDataSet3.fieldbyname('JYFenShuHZAll').AsString)+
                '  平均分数：'+Trim(ClientDataSet3.fieldbyname('JYFenShuAvgAll').AsString);
  finally
    ADOQueryMain.EnableControls;
  end;
  Panel10.Visible:=False;
end;

procedure TfrmJYFTop.FormDestroy(Sender: TObject);
begin
  frmJYFTop := nil;
end;

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

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

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

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

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

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

procedure TfrmJYFTop.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 TfrmJYFTop.Tv1DblClick(Sender: TObject);
begin
  if ClientDataSet1.IsEmpty then Exit;
  try
    frmJYFTopMX:=TfrmJYFTopMX.Create(Application);
    with frmJYFTopMX do
    begin
      FBegdate:=Self.BegDate.Date;
      FEnddate:=Self.EndDate.Date;
      FMXName:=Trim(Self.ClientDataSet1.fieldbyname('SPName').AsString);
      if ShowModal=1 then
      begin

      end;
    end;
  finally
    frmJYFTopMX.Free;
  end;
end;

end.

