D7gmYongjin/BI(BIView.dll)/U_CPAllTop.pas

384 lines
12 KiB
ObjectPascal
Raw Normal View History

2026-03-04 09:51:44 +08:00
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:='<27>ջ<EFBFBD>';
Open;
end;
SCreateCDS20(ADOQueryMain, ClientDataSet1);
SInitCDSData20(ADOQueryMain, ClientDataSet1);
SH1.Caption:='<27>ջ<EFBFBD>Top20<32><30><EFBFBD>а<EFBFBD>('+Trim(ClientDataSet1.fieldbyname('QSPS').AsString)
+','+Trim(ClientDataSet1.fieldbyname('QSBL').AsString)+'%)';
SH2.Caption:='<27>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'+'('+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:='<27>ջ<EFBFBD>';
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:='<27><><EFBFBD><EFBFBD>';
Open;
end;
SCreateCDS20(ADOQueryMain, ClientDataSet2);
SInitCDSData20(ADOQueryMain, ClientDataSet2);
KK1.Caption:='<27><><EFBFBD><EFBFBD>Top20<32><30><EFBFBD>а<EFBFBD>('+Trim(ClientDataSet2.fieldbyname('QSPS').AsString)
+','+Trim(ClientDataSet2.fieldbyname('QSBL').AsString)+'%)';
KK2.Caption:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'+'('+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:='<27><><EFBFBD><EFBFBD>';
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:='<27><><EFBFBD><EFBFBD>';
Open;
end;
SCreateCDS20(ADOQueryMain, ClientDataSet3);
SInitCDSData20(ADOQueryMain, ClientDataSet3);
DJ1.Caption:='<27><><EFBFBD><EFBFBD>Top20<32><30><EFBFBD>а<EFBFBD>('+Trim(ClientDataSet3.fieldbyname('QSPS').AsString)
+','+Trim(ClientDataSet3.fieldbyname('QSBL').AsString)+'%)';
DJ2.Caption:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'+'('+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:='<27><><EFBFBD><EFBFBD>';
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:='<27><><EFBFBD><EFBFBD>';
Open;
end;
SCreateCDS20(ADOQueryMain, ClientDataSet4);
SInitCDSData20(ADOQueryMain, ClientDataSet4);
CH1.Caption:='<27><><EFBFBD><EFBFBD>Top20<32><30><EFBFBD>а<EFBFBD>('+Trim(ClientDataSet4.fieldbyname('QSPS').AsString)
+','+Trim(ClientDataSet4.fieldbyname('QSBL').AsString)+'%)';
CH2.Caption:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'+'('+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:='<27><><EFBFBD><EFBFBD>';
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('<27>ջ<EFBFBD>', Tv1, 'ǰʮ<C7B0><CAAE><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD>а<EFBFBD>');
Close;
end;
procedure TfrmCPAllTop.FormShow(Sender: TObject);
begin
//ReadCxGrid('<27>ջ<EFBFBD>', Tv1, 'ǰʮ<C7B0><CAAE><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD>а<EFBFBD>');
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)='<27><><EFBFBD><EFBFBD>' 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)='<27><><EFBFBD><EFBFBD>' 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.