148 lines
5.6 KiB
ObjectPascal
148 lines
5.6 KiB
ObjectPascal
![]() |
unit U_CxGridSet;
|
|||
|
interface
|
|||
|
uses
|
|||
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|||
|
Dialogs,cxGridCustomView, cxGridCustomTableView, cxGridTableView,cxCustomData,
|
|||
|
cxGridDBTableView, cxGrid, BtnEdit, StdCtrls, ExtCtrls, ComCtrls, ToolWin,
|
|||
|
cxGridBandedTableView, cxGridDBBandedTableView;
|
|||
|
|
|||
|
procedure ReadCxGrid(fileName:string;cxgrid:TcxGridDBTableView;filePack:string='<27><><EFBFBD><EFBFBD>');
|
|||
|
procedure ReadCxBandedGrid(fileName:string;cxgrid:TcxGridDBBandedTableView;filePack:string='<27><><EFBFBD><EFBFBD>');
|
|||
|
procedure WriteCxGrid(fileName:string;cxgrid:TcxGridDBTableView;filePack:string='<27><><EFBFBD><EFBFBD>');
|
|||
|
procedure WriteCxBandedGrid(fileName:string;cxgrid:TcxGridDBBandedTableView;filePack:string='<27><><EFBFBD><EFBFBD>');
|
|||
|
procedure CreateGroupSummarry(tv1:TcxGridDBTableView);
|
|||
|
implementation
|
|||
|
|
|||
|
///////////////////////////////////////////////////////////////
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>ж<EFBFBD>ȡcxGridCol<6F><6C><EFBFBD><EFBFBD>
|
|||
|
//fileName <20>Ƽ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ڵ<EFBFBD>caption<6F><6E><EFBFBD><EFBFBD>caption<6F><6E><EFBFBD><EFBFBD>
|
|||
|
///////////////////////////////////////////////////////////////
|
|||
|
procedure ReadCxGrid(fileName:string;cxgrid:TcxGridDBTableView;filePack:string='<27><><EFBFBD><EFBFBD>');
|
|||
|
var
|
|||
|
mFileName:string;
|
|||
|
begin
|
|||
|
mFileName := ExtractFilePath(Application.ExeName)+'Layout\' +filePack+'\'+trim(fileName)+ '.dbg';
|
|||
|
//<2F>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>лָ<D0BB>
|
|||
|
if FileExists(mFileName) then
|
|||
|
cxgrid.RestoreFromIniFile(mFileName);
|
|||
|
CreateGroupSummarry(cxgrid);
|
|||
|
end;
|
|||
|
///////////////////////////////////////////////////////////////
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>ж<EFBFBD>ȡcxGridCol<6F><6C><EFBFBD><EFBFBD>
|
|||
|
//fileName <20>Ƽ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ڵ<EFBFBD>caption<6F><6E><EFBFBD><EFBFBD>caption<6F><6E><EFBFBD><EFBFBD>
|
|||
|
///////////////////////////////////////////////////////////////
|
|||
|
procedure ReadCxBandedGrid(fileName:string;cxgrid:TcxGridDBBandedTableView;filePack:string='<27><><EFBFBD><EFBFBD>');
|
|||
|
var
|
|||
|
mFileName:string;
|
|||
|
begin
|
|||
|
mFileName := ExtractFilePath(Application.ExeName)+'Layout\' +filePack+'\'+trim(fileName)+ '.dbg';
|
|||
|
//<2F>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>лָ<D0BB>
|
|||
|
if FileExists(mFileName) then
|
|||
|
cxgrid.RestoreFromIniFile(mFileName);
|
|||
|
end;
|
|||
|
///////////////////////////////////////////////////////////////
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD>дcxGridCol<6F><6C><EFBFBD>õ<EFBFBD>.dbg<62>ļ<EFBFBD><C4BC><EFBFBD>
|
|||
|
//Ĭ<><C4AC><EFBFBD>Ƽ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ڵ<EFBFBD>caption<6F><6E><EFBFBD><EFBFBD>
|
|||
|
///////////////////////////////////////////////////////////////
|
|||
|
procedure WriteCxGrid(fileName:string;cxgrid:TcxGridDBTableView;filePack:string='<27><><EFBFBD><EFBFBD>');
|
|||
|
var
|
|||
|
mFileName:string;
|
|||
|
begin
|
|||
|
mFileName := ExtractFilePath(Application.ExeName)+'Layout\' +filePack+'\'+trim(fileName)+ '.dbg';
|
|||
|
if not DirectoryExists(ExtractFileDir(mFileName)) then
|
|||
|
CreateDir(ExtractFileDir(mFileName));
|
|||
|
//<2F><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|||
|
cxgrid.StoreToIniFile(mFileName);
|
|||
|
|
|||
|
end;
|
|||
|
///////////////////////////////////////////////////////////////
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD>дcxGridCol<6F><6C><EFBFBD>õ<EFBFBD>.dbg<62>ļ<EFBFBD><C4BC><EFBFBD>
|
|||
|
//Ĭ<><C4AC><EFBFBD>Ƽ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ڵ<EFBFBD>caption<6F><6E><EFBFBD><EFBFBD>
|
|||
|
///////////////////////////////////////////////////////////////
|
|||
|
procedure WriteCxBandedGrid(fileName:string;cxgrid:TcxGridDBBandedTableView;filePack:string='<27><><EFBFBD><EFBFBD>');
|
|||
|
var
|
|||
|
mFileName:string;
|
|||
|
begin
|
|||
|
mFileName := ExtractFilePath(Application.ExeName)+'Layout\' +filePack+'\'+trim(fileName)+ '.dbg';
|
|||
|
if not DirectoryExists(ExtractFileDir(mFileName)) then
|
|||
|
CreateDir(ExtractFileDir(mFileName));
|
|||
|
//<2F><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|||
|
cxgrid.StoreToIniFile(mFileName);
|
|||
|
end;
|
|||
|
/////////////////////////////////////////////////////
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/////////////////////////////////////////////////////
|
|||
|
procedure CreateGroupSummarry(tv1:TcxGridDBTableView);
|
|||
|
var
|
|||
|
csg : TcxDataSummaryGroup;
|
|||
|
csglink : TcxDataSummaryGroupItemLink;
|
|||
|
csgItem : TcxDataSummaryItem;
|
|||
|
i:integer;
|
|||
|
mFieldName:string;
|
|||
|
begin
|
|||
|
///<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
with tv1.DataController.Summary do
|
|||
|
begin
|
|||
|
try
|
|||
|
csg := DataController.Summary.SummaryGroups.Add; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
csg.Links.Clear;
|
|||
|
for i:= 0 to tv1.ColumnCount -1 do
|
|||
|
begin
|
|||
|
if not tv1.Columns[i].Visible then continue;
|
|||
|
mFieldName:=tv1.Columns[i].DataBinding.FieldName;
|
|||
|
|
|||
|
if tv1.Columns[i].Summary.FooterKind=skSum then
|
|||
|
begin
|
|||
|
// (tv1.DataController.DataSet.Fields[i] as TNumericField).DisplayFormat := '#,0.00;-#,0.00;#';
|
|||
|
//tv1.Columns[i].Summary.FooterFormat:='0.0';
|
|||
|
//tv1.Columns[i].Summary.FooterKind := skSum;
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Group Row<6F>ϵĻ<CFB5><C4BB><EFBFBD>ͬʱʹ<CAB1><CAB9>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ч
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵĻ<CFB5><C4BB><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
csgitem := csg.SummaryItems.Add;
|
|||
|
csgitem.ItemLink := tv1.Columns[i]; //<2F><><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD>1
|
|||
|
csgitem.Position :=spGroup;
|
|||
|
csgitem.Kind := skSum;
|
|||
|
csgItem.Format := trim(tv1.Columns[i].Caption) +'С<><D0A1>=#,0.0';
|
|||
|
|
|||
|
tv1.Columns[i].Summary.GroupFooterKind := skSum;
|
|||
|
tv1.Columns[i].Summary.GroupFooterFormat := '#,0.00';
|
|||
|
|
|||
|
end
|
|||
|
else if tv1.Columns[i].Summary.FooterKind=skCount then
|
|||
|
begin
|
|||
|
// (tv1.DataController.DataSet.Fields[i] as TNumericField).DisplayFormat := '#,0.00;-#,0.00;#';
|
|||
|
//tv1.Columns[i].Summary.FooterFormat:='0.0';
|
|||
|
tv1.Columns[i].Summary.FooterKind := skCount;
|
|||
|
|
|||
|
tv1.Columns[i].Summary.GroupFooterKind := skCount;
|
|||
|
|
|||
|
//tv1.Columns[i].Summary.GroupFooterFormat := '#,0.00';
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Group Row<6F>ϵĻ<CFB5><C4BB><EFBFBD>ͬʱʹ<CAB1><CAB9>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ч
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵĻ<CFB5><C4BB><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
csgitem := csg.SummaryItems.Add;
|
|||
|
csgitem.ItemLink := tv1.Columns[i]; //<2F><><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD>1
|
|||
|
csgitem.Kind := skCount;
|
|||
|
//csgItem.Format := 'С<><D0A1>=#,0.0';
|
|||
|
|
|||
|
end
|
|||
|
else
|
|||
|
begin
|
|||
|
csglink := csg.Links.Add;
|
|||
|
csglink.ItemLink := tv1.Columns[i]; //<2F><><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD>
|
|||
|
//<2F><><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܵ<EFBFBD><DCB5>ж<EFBFBD><D0B6>п<EFBFBD><D0BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>飬<EFBFBD><E9A3AC><EFBFBD>뽫<EFBFBD><EBBDAB>Щ<EFBFBD>м<EFBFBD><D0BC>뵽
|
|||
|
//SummaryGroupItemLink<6E>У<EFBFBD>û<EFBFBD>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ
|
|||
|
//<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|||
|
end;
|
|||
|
|
|||
|
end;
|
|||
|
finally
|
|||
|
end;
|
|||
|
end;
|
|||
|
|
|||
|
end;
|
|||
|
|
|||
|
end.
|
|||
|
|