unit U_CPAllTop; 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 TfrmCPAllTop = 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; Panel4: TPanel; Panel5: TPanel; DBChart1: TDBChart; Series1: TBarSeries; Panel6: TPanel; cxGrid2: TcxGrid; Tv2: TcxGridDBTableView; cxGridDBColumn1: TcxGridDBColumn; cxGridDBColumn2: TcxGridDBColumn; cxGridDBColumn3: TcxGridDBColumn; cxGridDBColumn4: TcxGridDBColumn; cxGridLevel2: TcxGridLevel; KK2: TPanel; KK1: TPanel; Panel7: TPanel; DBChart2: TDBChart; DataSource2: TDataSource; ClientDataSet2: TClientDataSet; Series2: TBarSeries; Panel8: TPanel; cxGrid3: TcxGrid; Tv3: TcxGridDBTableView; cxGridDBColumn5: TcxGridDBColumn; cxGridDBColumn6: TcxGridDBColumn; cxGridDBColumn7: TcxGridDBColumn; cxGridDBColumn8: TcxGridDBColumn; cxGridLevel3: TcxGridLevel; DJ2: TPanel; DJ1: TPanel; DataSource3: TDataSource; ClientDataSet3: TClientDataSet; Panel11: TPanel; DBChart3: TDBChart; BarSeries1: TBarSeries; Panel9: TPanel; cxGrid4: TcxGrid; Tv4: TcxGridDBTableView; cxGridDBColumn9: TcxGridDBColumn; cxGridDBColumn10: TcxGridDBColumn; cxGridDBColumn11: TcxGridDBColumn; cxGridDBColumn12: TcxGridDBColumn; cxGridLevel4: TcxGridLevel; CH2: TPanel; CH1: TPanel; Panel13: TPanel; DBChart4: TDBChart; BarSeries2: TBarSeries; DataSource4: TDataSource; 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; 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 Tv1DblClick(Sender: TObject); procedure Tv4DblClick(Sender: TObject); private { Private declarations } procedure InitGrid(); public end; var frmCPAllTop: TfrmCPAllTop; implementation uses U_DataLink, U_RTFun,U_PBTopMX,U_CPCHTopMX; {$R *.dfm} procedure TfrmCPAllTop.InitGrid(); begin Panel10.Visible:=True; Panel10.Refresh; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; SQL.Clear; sql.Add('exec P_BI_CPAll_20M :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:='收货Top20排行榜('+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_CPAll :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, ClientDataSet11); SInitCDSData20(ADOQueryMain, ClientDataSet11); DBChart1.Series[0].DataSource:=nil; DBChart1.Series[0].DataSource:=ClientDataSet11; DBChart1.Series[0].XLabelsSource:='XH'; DBChart1.Series[0].YValues.ValueSource:='BL'; with ADOQueryMain do begin Filtered := False; Close; SQL.Clear; sql.Add('exec P_BI_CPAll_20M :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:='开卡Top20排行榜('+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_CPAll :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, ClientDataSet21); SInitCDSData20(ADOQueryMain, ClientDataSet21); DBChart2.Series[0].DataSource:=nil; DBChart2.Series[0].DataSource:=ClientDataSet21; DBChart2.Series[0].XLabelsSource:='XH'; DBChart2.Series[0].YValues.ValueSource:='PS'; with ADOQueryMain do begin Filtered := False; Close; SQL.Clear; sql.Add('exec P_BI_CPAll_20M :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:='打卷Top20排行榜('+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_CPAll :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, ClientDataSet31); SInitCDSData20(ADOQueryMain, ClientDataSet31); DBChart3.Series[0].DataSource:=nil; DBChart3.Series[0].DataSource:=ClientDataSet31; DBChart3.Series[0].XLabelsSource:='XH'; DBChart3.Series[0].YValues.ValueSource:='PS'; with ADOQueryMain do begin Filtered := False; Close; SQL.Clear; sql.Add('exec P_BI_CPAll_20M :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:='出货Top20排行榜('+Trim(ClientDataSet4.fieldbyname('QSPS').AsString) +','+Trim(ClientDataSet4.fieldbyname('QSBL').AsString)+'%)'; CH2.Caption:='出货总数量'+'('+Trim(ClientDataSet4.fieldbyname('HZPS').AsString)+')'; with ADOQueryMain do begin Filtered := False; Close; SQL.Clear; sql.Add('exec P_BI_CPAll :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, ClientDataSet41); SInitCDSData20(ADOQueryMain, ClientDataSet41); DBChart4.Series[0].DataSource:=nil; DBChart4.Series[0].DataSource:=ClientDataSet41; DBChart4.Series[0].XLabelsSource:='XH'; DBChart4.Series[0].YValues.ValueSource:='PS'; finally ADOQueryMain.EnableControls; end; Panel10.Visible:=False; end; procedure TfrmCPAllTop.FormDestroy(Sender: TObject); begin frmCPAllTop := nil; end; procedure TfrmCPAllTop.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmCPAllTop.TBCloseClick(Sender: TObject); begin //WriteCxGrid('收货', Tv1, '前十大产品排行榜'); Close; end; procedure TfrmCPAllTop.FormShow(Sender: TObject); begin //ReadCxGrid('收货', Tv1, '前十大产品排行榜'); end; procedure TfrmCPAllTop.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmCPAllTop.ToolButton2Click(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryMain, ClientDataSet1); SInitCDSData20(ADOQueryMain, ClientDataSet1); end; end; procedure TfrmCPAllTop.C_CodeNameChange(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmCPAllTop.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 TfrmCPAllTop.Tv1DblClick(Sender: TObject); begin if ClientDataSet1.IsEmpty then Exit; if Trim(ClientDataSet1.fieldbyname('SPName').AsString)='其它' then Exit; try frmPBTopMX:=TfrmPBTopMX.Create(Application); with frmPBTopMX 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 frmPBTopMX.Free; end; end; procedure TfrmCPAllTop.Tv4DblClick(Sender: TObject); begin if ClientDataSet4.IsEmpty then Exit; if Trim(ClientDataSet4.fieldbyname('SPName').AsString)='其它' then Exit; try frmCPCHTopMX:=TfrmCPCHTopMX.Create(Application); with frmCPCHTopMX do begin FBegdate:=Self.BegDate.Date; FEnddate:=Self.EndDate.Date; FSPName:=Trim(Self.ClientDataSet4.fieldbyname('SPName').AsString); if ShowModal=1 then begin end; end; finally frmCPCHTopMX.Free; end; end; end.