371 lines
12 KiB
ObjectPascal
371 lines
12 KiB
ObjectPascal
|
unit U_RankingList;
|
|||
|
|
|||
|
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, cxPC, cxDropDownEdit, cxLookAndFeels, cxLookAndFeelPainters,
|
|||
|
cxNavigator, dxBarBuiltInMenu, dxSkinsCore, dxSkinsDefaultPainters,
|
|||
|
dxDateRanges, U_BaseList, Vcl.Menus, Vcl.Clipbrd, dxSkinBasic, dxSkinBlack,
|
|||
|
dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, dxSkinDarkroom,
|
|||
|
dxSkinDarkSide, dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, dxSkinFoggy,
|
|||
|
dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian,
|
|||
|
dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis,
|
|||
|
dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black,
|
|||
|
dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink,
|
|||
|
dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue,
|
|||
|
dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, dxSkinOffice2013LightGray,
|
|||
|
dxSkinOffice2013White, dxSkinOffice2016Colorful, dxSkinOffice2016Dark,
|
|||
|
dxSkinOffice2019Black, dxSkinOffice2019Colorful, dxSkinOffice2019DarkGray,
|
|||
|
dxSkinOffice2019White, dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic,
|
|||
|
dxSkinSharp, dxSkinSharpPlus, dxSkinSilver, dxSkinSpringtime, dxSkinStardust,
|
|||
|
dxSkinSummer2008, dxSkinTheAsphaltWorld, dxSkinTheBezier, dxSkinValentine,
|
|||
|
dxSkinVisualStudio2013Blue, dxSkinVisualStudio2013Dark,
|
|||
|
dxSkinVisualStudio2013Light, dxSkinVS2010, dxSkinWhiteprint, dxSkinWXI,
|
|||
|
dxSkinXmas2008Blue, dxScrollbarAnnotations, cxContainer, dxCore, cxDateUtils;
|
|||
|
|
|||
|
type
|
|||
|
TfrmRankingList = class(TfrmBaseList)
|
|||
|
ToolBar1: TToolBar;
|
|||
|
TBRafresh: TToolButton;
|
|||
|
TBClose: TToolButton;
|
|||
|
ADOQueryTemp: TADOQuery;
|
|||
|
ADOQueryCmd: TADOQuery;
|
|||
|
ADOQueryMain: TADOQuery;
|
|||
|
RM1: TRMGridReport;
|
|||
|
RMDB_Main: TRMDBDataSet;
|
|||
|
GPM_1: TcxGridPopupMenu;
|
|||
|
DS_1: TDataSource;
|
|||
|
CDS_1: TClientDataSet;
|
|||
|
PM_1: TPopupMenu;
|
|||
|
N1: TMenuItem;
|
|||
|
ToolButton5: TToolButton;
|
|||
|
N2: TMenuItem;
|
|||
|
N3: TMenuItem;
|
|||
|
cxPageControl1: TcxPageControl;
|
|||
|
cxTabSheet1: TcxTabSheet;
|
|||
|
Pnl_F2: TPanel;
|
|||
|
DateTimePicker3: TDateTimePicker;
|
|||
|
DateTimePicker4: TDateTimePicker;
|
|||
|
cxGrid2: TcxGrid;
|
|||
|
TV2: TcxGridDBTableView;
|
|||
|
cxGridDBColumn5: TcxGridDBColumn;
|
|||
|
cxGridLevel2: TcxGridLevel;
|
|||
|
cxTabSheet2: TcxTabSheet;
|
|||
|
Pnl_F1: TPanel;
|
|||
|
begtime: TDateTimePicker;
|
|||
|
endTime: TDateTimePicker;
|
|||
|
GPM_2: TcxGridPopupMenu;
|
|||
|
CDS_2: TClientDataSet;
|
|||
|
DS_2: TDataSource;
|
|||
|
cxGrid1: TcxGrid;
|
|||
|
Tv1: TcxGridDBTableView;
|
|||
|
Tv1Column28: TcxGridDBColumn;
|
|||
|
Tv1Column29: TcxGridDBColumn;
|
|||
|
cxGridLevel1: TcxGridLevel;
|
|||
|
TV2Column1: TcxGridDBColumn;
|
|||
|
cxGrid3: TcxGrid;
|
|||
|
TV3: TcxGridDBTableView;
|
|||
|
cxGridDBColumn1: TcxGridDBColumn;
|
|||
|
cxGridDBColumn2: TcxGridDBColumn;
|
|||
|
cxGridLevel3: TcxGridLevel;
|
|||
|
TV3Column1: TcxGridDBColumn;
|
|||
|
TV3Column2: TcxGridDBColumn;
|
|||
|
cxGrid4: TcxGrid;
|
|||
|
TV4: TcxGridDBTableView;
|
|||
|
cxGridDBColumn3: TcxGridDBColumn;
|
|||
|
cxGridDBColumn4: TcxGridDBColumn;
|
|||
|
cxGridLevel4: TcxGridLevel;
|
|||
|
Tv1Column1: TcxGridDBColumn;
|
|||
|
TV4Column1: TcxGridDBColumn;
|
|||
|
GPM_3: TcxGridPopupMenu;
|
|||
|
CDS_3: TClientDataSet;
|
|||
|
DS_3: TDataSource;
|
|||
|
DS_4: TDataSource;
|
|||
|
CDS_4: TClientDataSet;
|
|||
|
GPM_4: TcxGridPopupMenu;
|
|||
|
ADO_4: TADOQuery;
|
|||
|
Label4: TLabel;
|
|||
|
OppCoName: TcxTextEdit;
|
|||
|
Label2: TLabel;
|
|||
|
begdate: TcxDateEdit;
|
|||
|
Enddate: TcxDateEdit;
|
|||
|
cxCheckBox1: TcxCheckBox;
|
|||
|
Label1: TLabel;
|
|||
|
begdate2: TcxDateEdit;
|
|||
|
enddate2: TcxDateEdit;
|
|||
|
cxCheckBox2: TcxCheckBox;
|
|||
|
Label3: TLabel;
|
|||
|
F_Name: TcxTextEdit;
|
|||
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
|||
|
procedure TBCloseClick(Sender: TObject);
|
|||
|
procedure FormShow(Sender: TObject);
|
|||
|
procedure TBRafreshClick(Sender: TObject);
|
|||
|
procedure cxGridDBColumn5PropertiesEditValueChanged(Sender: TObject);
|
|||
|
procedure OppCoNameKeyPress(Sender: TObject; var Key: Char);
|
|||
|
procedure N1Click(Sender: TObject);
|
|||
|
procedure ToolButton5Click(Sender: TObject);
|
|||
|
procedure N2Click(Sender: TObject);
|
|||
|
procedure N3Click(Sender: TObject);
|
|||
|
procedure TV2FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
|
|||
|
procedure TV4FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
|
|||
|
procedure cxPageControl1Change(Sender: TObject);
|
|||
|
procedure Edit10Change(Sender: TObject);
|
|||
|
procedure F_NameChange(Sender: TObject);
|
|||
|
private
|
|||
|
procedure InitGrid();
|
|||
|
procedure SetStatus();
|
|||
|
public
|
|||
|
FAuthority: string;
|
|||
|
end;
|
|||
|
|
|||
|
implementation
|
|||
|
|
|||
|
uses
|
|||
|
U_DataLink, U_RTFun, U_ReceivableInput, U_ReceivableEdit, U_ZDYHelp;
|
|||
|
|
|||
|
{$R *.dfm}
|
|||
|
procedure TfrmRankingList.SetStatus();
|
|||
|
begin
|
|||
|
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmRankingList.InitGrid();
|
|||
|
begin
|
|||
|
|
|||
|
case cxPageControl1.ActivePageIndex of
|
|||
|
0:
|
|||
|
begin
|
|||
|
with ADOQueryMain do
|
|||
|
begin
|
|||
|
Close;
|
|||
|
SQL.Clear;
|
|||
|
sql.Add(' select OppCoName,Amount=sum(A.Amount) from Finance_Flow A ');
|
|||
|
sql.Add(' where A.FFType=''Ӧ<>տ<EFBFBD><D5BF>Ǽ<EFBFBD>'' and isnull(status,''0'')=''9'' ');
|
|||
|
sql.Add(' and A.FFTime>=''' + FormatDateTime('yyyy-MM-dd', begdate2.Date) + ''' ');
|
|||
|
sql.Add(' and FFTime<''' + FormatDateTime('yyyy-MM-dd', Enddate2.Date + 1) + ''' ');
|
|||
|
sql.Add(' group by OppCoName ');
|
|||
|
Open;
|
|||
|
end;
|
|||
|
SCreateCDS(ADOQueryMain, CDS_2);
|
|||
|
SInitCDSData(ADOQueryMain, CDS_2);
|
|||
|
TV2.DataController.Filter.Clear;
|
|||
|
end;
|
|||
|
1:
|
|||
|
begin
|
|||
|
with ADO_4 do
|
|||
|
begin
|
|||
|
Close;
|
|||
|
SQL.Clear;
|
|||
|
sql.Add(' select F_Name,Amount=sum(A.Amount),Qty=sum(A.Qty) from Finance_Flow A ');
|
|||
|
sql.Add(' where A.FFType=''Ӧ<>տ<EFBFBD><D5BF>Ǽ<EFBFBD>'' and isnull(status,''0'')=''9'' ');
|
|||
|
sql.Add(' and A.FFTime>=''' + FormatDateTime('yyyy-MM-dd', begdate.Date) + ''' ');
|
|||
|
sql.Add(' and FFTime<''' + FormatDateTime('yyyy-MM-dd', Enddate.Date + 1) + ''' ');
|
|||
|
sql.Add(' group by F_Name ');
|
|||
|
Open;
|
|||
|
end;
|
|||
|
SCreateCDS(ADO_4, CDS_4);
|
|||
|
SInitCDSData(ADO_4, CDS_4);
|
|||
|
TV4.DataController.Filter.Clear;
|
|||
|
end;
|
|||
|
end;
|
|||
|
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmRankingList.N1Click(Sender: TObject);
|
|||
|
begin
|
|||
|
SelOKNo(CDS_1, true)
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmRankingList.N2Click(Sender: TObject);
|
|||
|
begin
|
|||
|
Clipboard.SetTextBuf(PChar(Trim(CDS_1.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString)));
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmRankingList.N3Click(Sender: TObject);
|
|||
|
begin
|
|||
|
SelOKNo(CDS_1, false)
|
|||
|
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmRankingList.FormClose(Sender: TObject; var Action: TCloseAction);
|
|||
|
begin
|
|||
|
inherited;
|
|||
|
Action := caFree;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmRankingList.TBCloseClick(Sender: TObject);
|
|||
|
begin
|
|||
|
|
|||
|
Close;
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmRankingList.FormShow(Sender: TObject);
|
|||
|
begin
|
|||
|
inherited;
|
|||
|
|
|||
|
ReadCxGrid(trim(Self.Caption) + 'Tv1', Tv1, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
|
|||
|
ReadCxGrid(trim(Self.Caption) + 'Tv2', Tv2, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
|
|||
|
ReadCxGrid(trim(Self.Caption) + 'Tv3', Tv3, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
|
|||
|
ReadCxGrid(trim(Self.Caption) + 'Tv4', Tv4, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
|
|||
|
Enddate.Date := SGetServerDate(ADOQueryTemp);
|
|||
|
begdate.Date := strtodate(FormatDateTime('yyyy', Enddate.Date) + '-01-01');
|
|||
|
begdate2.Date := begdate.Date;
|
|||
|
Enddate2.Date := Enddate.Date;
|
|||
|
SetStatus();
|
|||
|
InitGrid();
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmRankingList.TBRafreshClick(Sender: TObject);
|
|||
|
begin
|
|||
|
// begdate.SetFocus;
|
|||
|
|
|||
|
InitGrid();
|
|||
|
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmRankingList.cxGridDBColumn5PropertiesEditValueChanged(Sender: TObject);
|
|||
|
var
|
|||
|
mvalue, FFieldName: string;
|
|||
|
FPS, FQty, FPrice, FQTFee, FMoney, FZKMoney: Double;
|
|||
|
begin
|
|||
|
FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName);
|
|||
|
mvalue := TcxTextEdit(Sender).EditingText;
|
|||
|
if Trim(mvalue) = '' then
|
|||
|
begin
|
|||
|
mvalue := '0';
|
|||
|
end;
|
|||
|
|
|||
|
with CDS_1 do
|
|||
|
begin
|
|||
|
Edit;
|
|||
|
FieldByName(FFieldName).Value := Trim(mvalue);
|
|||
|
Post;
|
|||
|
FPS := CDS_1.fieldbyname('PS').AsFloat;
|
|||
|
FQty := CDS_1.fieldbyname('Qty').AsFloat;
|
|||
|
FQTFee := CDS_1.fieldbyname('QTFee').AsFloat;
|
|||
|
FPrice := CDS_1.fieldbyname('Price').AsFloat;
|
|||
|
FMoney := CDS_1.fieldbyname('Money').AsFloat;
|
|||
|
|
|||
|
FZKMoney := CDS_1.fieldbyname('ZKMoney').AsFloat;
|
|||
|
end;
|
|||
|
|
|||
|
if Trim(FFieldName) <> 'Money' then
|
|||
|
begin
|
|||
|
FMoney := FQty * FPrice + FQTFee - FZKMoney;
|
|||
|
end;
|
|||
|
with CDS_1 do
|
|||
|
begin
|
|||
|
Edit;
|
|||
|
FieldByName('Money').Value := FMoney;
|
|||
|
Post;
|
|||
|
end;
|
|||
|
with ADOQueryCmd do
|
|||
|
begin
|
|||
|
Close;
|
|||
|
SQL.Clear;
|
|||
|
sql.Add('update Finance_Flow set ' + FFieldName + '=' + Trim(mvalue));
|
|||
|
if Trim(FFieldName) <> 'Money' then
|
|||
|
sql.Add(' ,Money=' + FloatToStr(FMoney));
|
|||
|
sql.Add('where FFID=' + quotedstr(Trim(CDS_1.fieldbyname('FFID').AsString)));
|
|||
|
ExecSQL;
|
|||
|
end;
|
|||
|
|
|||
|
Tv1.Controller.EditingController.ShowEdit();
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmRankingList.cxPageControl1Change(Sender: TObject);
|
|||
|
begin
|
|||
|
|
|||
|
InitGrid();
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmRankingList.F_NameChange(Sender: TObject);
|
|||
|
begin
|
|||
|
if ADO_4.Active then
|
|||
|
begin
|
|||
|
SDofilter(ADO_4, SGetHintFilters(Pnl_F1, 1, 2));
|
|||
|
SCreateCDS(ADO_4, CDS_4);
|
|||
|
SInitCDSData(ADO_4, CDS_4);
|
|||
|
end;
|
|||
|
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmRankingList.Edit10Change(Sender: TObject);
|
|||
|
begin
|
|||
|
|
|||
|
if ADOQueryMain.Active then
|
|||
|
begin
|
|||
|
SDofilter(ADOQueryMain, SGetHintFilters(Pnl_F2, 1, 2));
|
|||
|
SCreateCDS(ADOQueryMain, CDS_2);
|
|||
|
SInitCDSData(ADOQueryMain, CDS_2);
|
|||
|
end;
|
|||
|
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmRankingList.ToolButton5Click(Sender: TObject);
|
|||
|
begin
|
|||
|
WriteCxGrid(trim(Self.Caption) + 'Tv1', Tv1, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
|
|||
|
WriteCxGrid(trim(Self.Caption) + 'Tv2', Tv2, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
|
|||
|
WriteCxGrid(trim(Self.Caption) + 'Tv3', Tv3, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
|
|||
|
WriteCxGrid(trim(Self.Caption) + 'Tv4', Tv4, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmRankingList.TV2FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
|
|||
|
begin
|
|||
|
with ADOQueryTemp do
|
|||
|
begin
|
|||
|
Close;
|
|||
|
SQL.Clear;
|
|||
|
sql.Add(' select OppCoName,F_Name,Amount=sum(A.Amount),Qty=sum(A.Qty) from Finance_Flow A ');
|
|||
|
sql.Add(' where A.FFType=''Ӧ<>տ<EFBFBD><D5BF>Ǽ<EFBFBD>'' and isnull(status,''0'')=''9'' ');
|
|||
|
sql.Add(' and A.FFTime>=''' + FormatDateTime('yyyy-MM-dd', begdate2.Date) + ''' ');
|
|||
|
sql.Add(' and FFTime<''' + FormatDateTime('yyyy-MM-dd', Enddate2.Date + 1) + ''' ');
|
|||
|
sql.Add(' and OppCoName=''' + CDS_2.FieldByName('OppCoName').AsString + ''' ');
|
|||
|
sql.Add(' group by OppCoName,F_Name ');
|
|||
|
Open;
|
|||
|
end;
|
|||
|
SCreateCDS(ADOQueryTemp, CDS_3);
|
|||
|
SInitCDSData(ADOQueryTemp, CDS_3);
|
|||
|
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmRankingList.TV4FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
|
|||
|
begin
|
|||
|
with ADOQueryTemp do
|
|||
|
begin
|
|||
|
Close;
|
|||
|
SQL.Clear;
|
|||
|
sql.Add(' select OppCoName,Amount=sum(A.Amount),Qty=sum(A.Qty) from Finance_Flow A ');
|
|||
|
sql.Add(' where A.FFType=''Ӧ<>տ<EFBFBD><D5BF>Ǽ<EFBFBD>'' and isnull(status,''0'')=''9'' ');
|
|||
|
sql.Add(' and A.FFTime>=''' + FormatDateTime('yyyy-MM-dd', begdate2.Date) + ''' ');
|
|||
|
sql.Add(' and FFTime<''' + FormatDateTime('yyyy-MM-dd', Enddate2.Date + 1) + ''' ');
|
|||
|
sql.Add(' and F_Name=''' + CDS_4.FieldByName('F_Name').AsString + ''' ');
|
|||
|
sql.Add(' group by OppCoName ');
|
|||
|
// ShowMessage(SQL.Text);
|
|||
|
Open;
|
|||
|
|
|||
|
end;
|
|||
|
SCreateCDS(ADOQueryTemp, CDS_1);
|
|||
|
SInitCDSData(ADOQueryTemp, CDS_1);
|
|||
|
end;
|
|||
|
|
|||
|
procedure TfrmRankingList.OppCoNameKeyPress(Sender: TObject; var Key: Char);
|
|||
|
begin
|
|||
|
if Key = #13 then
|
|||
|
begin
|
|||
|
InitGrid();
|
|||
|
end;
|
|||
|
end;
|
|||
|
|
|||
|
end.
|
|||
|
|