RTFormwork/项目代码/RTBasicsV1/A09财务通用管理/U_RankingList.pas
“ddf” 61630656e9 1
2024-07-07 09:35:27 +08:00

371 lines
12 KiB
ObjectPascal
Raw Permalink Blame History

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.