unit U_PBAllTop; 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 TfrmPBAllTop = 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; 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 frmPBAllTop: TfrmPBAllTop; implementation uses U_DataLink, U_RTFun,U_PBCarCPTopMX,U_PBCPCarTopMX,U_PBCPCarBatchNoTopMX; {$R *.dfm} procedure TfrmPBAllTop.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_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_PBAll :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_PBAll_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_PBAll :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_PBAll_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_PBAll :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_PBAll_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_PBAll :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 TfrmPBAllTop.FormDestroy(Sender: TObject); begin frmPBAllTop := nil; end; procedure TfrmPBAllTop.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmPBAllTop.TBCloseClick(Sender: TObject); begin //WriteCxGrid('收货', Tv1, '前十大产品排行榜'); Close; end; procedure TfrmPBAllTop.FormShow(Sender: TObject); begin //ReadCxGrid('收货', Tv1, '前十大产品排行榜'); end; procedure TfrmPBAllTop.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmPBAllTop.ToolButton2Click(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryMain, ClientDataSet1); SInitCDSData20(ADOQueryMain, ClientDataSet1); end; end; procedure TfrmPBAllTop.C_CodeNameChange(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmPBAllTop.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 TfrmPBAllTop.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 TfrmPBAllTop.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 TfrmPBAllTop.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.