D7XHshengfang/盛纺贸易管理/U_KHTopList.pas
DESKTOP-E401PHE\Administrator 0cb161cfb3 ~
2025-04-30 23:58:03 +08:00

256 lines
7.5 KiB
ObjectPascal
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

unit U_KHTopList;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView,
cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView,
cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView,
cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu,
cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, MovePanel, Menus,
cxCheckBox, RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport,
RM_e_Xls, cxPC, Series, TeEngine, TeeProcs, Chart, DbChart, cxSplitter;
type
TfrmKHTopList = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBFind: TToolButton;
TBClose: TToolButton;
Panel1: TPanel;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
DataSource1: TDataSource;
cxGridPopupMenu1: TcxGridPopupMenu;
CDS_Main: TClientDataSet;
Label1: TLabel;
KHName: TEdit;
Label2: TLabel;
BegDate: TDateTimePicker;
cxPageControl1: TcxPageControl;
cxTabSheet1: TcxTabSheet;
cxTabSheet2: TcxTabSheet;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1Column1: TcxGridDBColumn;
v1Column7: TcxGridDBColumn;
v2Column1: TcxGridDBColumn;
v1Column8: TcxGridDBColumn;
v2Column3: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
v1Column4: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
v1Column6: TcxGridDBColumn;
v2Column5: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
v1Column9: TcxGridDBColumn;
v1Column10: TcxGridDBColumn;
cxGrid2: TcxGrid;
Tv2: TcxGridDBTableView;
cxGridDBColumn1: TcxGridDBColumn;
cxGridDBColumn2: TcxGridDBColumn;
cxGridDBColumn3: TcxGridDBColumn;
cxGridDBColumn4: TcxGridDBColumn;
cxGridDBColumn5: TcxGridDBColumn;
cxGrid2Level1: TcxGridLevel;
v1Column11: TcxGridDBColumn;
v2Column2: TcxGridDBColumn;
MovePanel2: TMovePanel;
cxGridPopupMenu2: TcxGridPopupMenu;
Label3: TLabel;
RadioGroup1: TRadioGroup;
DBChart1: TDBChart;
Series1: TBarSeries;
Series2: TFastLineSeries;
cxSplitter1: TcxSplitter;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBRafreshClick(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBFindClick(Sender: TObject);
procedure KHNameChange(Sender: TObject);
procedure cxPageControl1Change(Sender: TObject);
procedure RadioGroup1Click(Sender: TObject);
procedure Tv1CellClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
procedure Tv2CellClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
private
FLeft,FTop:Integer;
procedure InitGrid();
procedure Intsub();
{ Private declarations }
public
{ Public declarations }
FMainid,FSubId,FConNo,FColor,FCodeName:String;
end;
var
frmKHTopList: TfrmKHTopList;
implementation
uses
U_DataLink,U_Fun;
{$R *.dfm}
procedure TfrmKHTopList.FormDestroy(Sender: TObject);
begin
frmKHTopList:=nil;
end;
procedure TfrmKHTopList.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmKHTopList.InitGrid();
begin
MovePanel2.Visible:=True;
MovePanel2.Refresh;
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered:=False;
Close;
sql.Clear;
SQL.Add('exec P_View_KHTop :FYear,:CXState');
Parameters.ParamByName('FYear').Value:=Trim(FormatDateTime('yyyy',BegDate.Date));
if cxPageControl1.ActivePageIndex=0 then
begin
Parameters.ParamByName('CXState').Value:='<27><>';
end else
begin
Parameters.ParamByName('CXState').Value:='<27><><EFBFBD><EFBFBD>';
end;
Open;
end;
SCreateCDS20(ADOQueryMain,CDS_Main);
SInitCDSData20(ADOQueryMain,CDS_Main);
finally
ADOQueryMain.EnableControls;
end;
MovePanel2.Visible:=False;
end;
procedure TfrmKHTopList.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmKHTopList.TBCloseClick(Sender: TObject);
begin
WriteCxGrid('Tv1',Tv1,'<27>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>');
WriteCxGrid('Tv2',Tv2,'<27>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>');
Close;
end;
procedure TfrmKHTopList.FormShow(Sender: TObject);
begin
BegDate.Date:=SGetServerDate(ADOQueryTemp);
ReadCxGrid('Tv1',Tv1,'<27>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>');
ReadCxGrid('Tv2',Tv2,'<27>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>');
end;
procedure TfrmKHTopList.TBFindClick(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
SCreateCDS20(ADOQueryMain,CDS_Main);
SInitCDSData20(ADOQueryMain,CDS_Main);
end;
end;
procedure TfrmKHTopList.KHNameChange(Sender: TObject);
begin
TBFind.Click;
end;
procedure TfrmKHTopList.cxPageControl1Change(Sender: TObject);
begin
InitGrid();
Intsub();
end;
procedure TfrmKHTopList.Intsub();
var
i:integer;
begin
if cxPageControl1.ActivePageIndex=0 then
begin
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('select Convert(varchar(7),CRTime,120) YF,SUM(Money) SumMoney ');
sql.Add(' from YF_Money_CR A');
sql.Add(' where ISNULL(CRType,'''')='<>տ<EFBFBD><D5BF>Ǽ<EFBFBD>'' and isnull(A.YFType,'''')=''<27>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>''');
sql.Add(' and A.FactoryName='''+trim(CDS_Main.fieldbyname('KHName').AsString)+''' ');
sql.Add(' and Convert(varchar(4),CRTime,120)='''+Trim(FormatDateTime('yyyy',BegDate.Date))+'''');
SQL.Add(' group by Convert(varchar(7),CRTime,120)');
Open;
end;
end
else
begin
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('select Sum(Money) SumMoney,YF ');
sql.Add(' from (select YF=(case when Month(CRTime)>=1 and Month(CRTime)<4 then ''<27><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>''');
sql.Add(' when Month(CRTime)>=4 and Month(CRTime)<7 then ''<27>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD>''');
sql.Add(' when Month(CRTime)>=7 and Month(CRTime)<10 then ''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>''');
sql.Add(' when Month(CRTime)>=10 and Month(CRTime)<=12 then ''<27><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>'' end)');
sql.Add(',Money');
sql.Add(' from YF_Money_CR A');
sql.Add(' where ISNULL(CRType,'''')='<>տ<EFBFBD><D5BF>Ǽ<EFBFBD>'' and isnull(A.YFType,'''')=''<27>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>''');
sql.Add(' and A.FactoryName='''+trim(CDS_Main.fieldbyname('KHName').AsString)+''' ');
sql.Add(' and Convert(varchar(4),CRTime,120)='''+Trim(FormatDateTime('yyyy',BegDate.Date))+''') AA');
sql.Add(' group by YF');
Open;
end;
end;
for i:=0 to DBChart1.SeriesCount-1 do
begin
DBChart1.Series[i].Active:=False;
end;
DBChart1.Series[RadioGroup1.ItemIndex].Active:=True;
DBChart1.Series[RadioGroup1.ItemIndex].DataSource:=nil;
DBChart1.Series[RadioGroup1.ItemIndex].DataSource:=ADOQueryCmd;
DBChart1.Series[RadioGroup1.ItemIndex].XLabelsSource:='YF';
DBChart1.Series[RadioGroup1.ItemIndex].YValues.ValueSource:='SumMoney';
end;
procedure TfrmKHTopList.RadioGroup1Click(Sender: TObject);
begin
Intsub();
end;
procedure TfrmKHTopList.Tv1CellClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
begin
Intsub();
end;
procedure TfrmKHTopList.Tv2CellClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
begin
Intsub();
end;
end.