RxFPC:start work on export RxDBGrid groups to spreadsheet

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5949 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
alexs75 2017-06-20 12:38:18 +00:00
parent 0f40ba6214
commit 552f841d18
15 changed files with 371 additions and 135 deletions

View File

@ -11,7 +11,7 @@
<WindowIndex Value="-1"/>
<TopLine Value="-1"/>
<CursorPos X="-1" Y="-1"/>
<UsageCount Value="30"/>
<UsageCount Value="31"/>
</Unit0>
<Unit1>
<Filename Value="unit1.pas"/>
@ -22,13 +22,13 @@
<UnitName Value="Unit1"/>
<TopLine Value="70"/>
<CursorPos X="60" Y="87"/>
<UsageCount Value="30"/>
<UsageCount Value="31"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
</Unit1>
<Unit2>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<EditorIndex Value="6"/>
<EditorIndex Value="5"/>
<TopLine Value="6312"/>
<CursorPos Y="6333"/>
<UsageCount Value="14"/>
@ -40,7 +40,7 @@
<Unit3>
<Filename Value="../../../../../lcl/grids.pas"/>
<UnitName Value="Grids"/>
<EditorIndex Value="10"/>
<EditorIndex Value="9"/>
<TopLine Value="11692"/>
<CursorPos Y="11717"/>
<UsageCount Value="14"/>
@ -49,7 +49,7 @@
<Unit4>
<Filename Value="../../../../../lcl/dbgrids.pas"/>
<UnitName Value="DBGrids"/>
<EditorIndex Value="9"/>
<EditorIndex Value="8"/>
<TopLine Value="475"/>
<CursorPos X="14" Y="491"/>
<UsageCount Value="14"/>
@ -71,7 +71,7 @@
</Unit6>
<Unit7>
<Filename Value="../../../rxtools/rxutils.pas"/>
<EditorIndex Value="7"/>
<EditorIndex Value="6"/>
<TopLine Value="64"/>
<CursorPos X="2" Y="91"/>
<UsageCount Value="14"/>
@ -79,7 +79,7 @@
</Unit7>
<Unit8>
<Filename Value="../../../rxtools/rxstrutils.pas"/>
<EditorIndex Value="8"/>
<EditorIndex Value="7"/>
<UsageCount Value="14"/>
<Loaded Value="True"/>
</Unit8>
@ -165,7 +165,8 @@
<Unit20>
<Filename Value="../../../rxdbgrid_export_spreadsheet/rxdbgridexportspreadsheet.pas"/>
<UnitName Value="RxDBGridExportSpreadSheet"/>
<EditorIndex Value="4"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="3"/>
<TopLine Value="564"/>
<CursorPos X="44" Y="595"/>
<UsageCount Value="13"/>
@ -184,7 +185,7 @@
</Unit21>
<Unit22>
<Filename Value="../../../rxtools/rxdconst.pas"/>
<EditorIndex Value="5"/>
<EditorIndex Value="4"/>
<TopLine Value="172"/>
<CursorPos X="14" Y="190"/>
<UsageCount Value="13"/>
@ -194,19 +195,18 @@
<Filename Value="../../../rxdbgrid_print/rxdbgridprintgrid.pas"/>
<UnitName Value="RxDBGridPrintGrid"/>
<EditorIndex Value="1"/>
<TopLine Value="314"/>
<CursorPos X="82" Y="332"/>
<TopLine Value="298"/>
<CursorPos X="25" Y="301"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit23>
<Unit24>
<Filename Value="../../../../lazreport/source/lr_class.pas"/>
<UnitName Value="LR_Class"/>
<EditorIndex Value="3"/>
<EditorIndex Value="-1"/>
<TopLine Value="11808"/>
<CursorPos Y="11826"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit24>
<Unit25>
<Filename Value="../../../rxdbgrid_print/rxdbgridprintgrid_setupunit.pas"/>
@ -214,9 +214,8 @@
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="RxDBGridPrintGrid_SetupUnit"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="2"/>
<TopLine Value="69"/>
<TopLine Value="67"/>
<CursorPos X="36" Y="87"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>

View File

@ -21,16 +21,19 @@
<FormatVersion Value="1"/>
</local>
</RunParams>
<RequiredPackages Count="3">
<RequiredPackages Count="4">
<Item1>
<PackageName Value="FCL"/>
<PackageName Value="rxdbgrid_export_spreadsheet"/>
</Item1>
<Item2>
<PackageName Value="rxnew"/>
<PackageName Value="FCL"/>
</Item2>
<Item3>
<PackageName Value="LCL"/>
<PackageName Value="rxnew"/>
</Item3>
<Item4>
<PackageName Value="LCL"/>
</Item4>
</RequiredPackages>
<Units Count="2">
<Unit0>

View File

@ -7,13 +7,17 @@ uses
cthreads,
{$ENDIF}{$ENDIF}
Interfaces, // this includes the LCL widgetset
Forms, rxnew, Unit1
Forms,
rxnew,
sysutils,
Unit1
{ you can add units after this };
{$R *.res}
begin
RequireDerivedFormResource:=True;
DefaultFormatSettings.ThousandSeparator:=' ';
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;

View File

@ -3,15 +3,13 @@
<ProjectSession>
<Version Value="10"/>
<BuildModes Active="Default"/>
<Units Count="28">
<Units Count="33">
<Unit0>
<Filename Value="project1.lpr"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<WindowIndex Value="-1"/>
<TopLine Value="-1"/>
<CursorPos X="-1" Y="-1"/>
<UsageCount Value="31"/>
<CursorPos X="47" Y="20"/>
<UsageCount Value="38"/>
</Unit0>
<Unit1>
<Filename Value="unit1.pas"/>
@ -20,25 +18,23 @@
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="Unit1"/>
<TopLine Value="42"/>
<CursorPos X="6" Y="56"/>
<UsageCount Value="31"/>
<TopLine Value="47"/>
<CursorPos X="33" Y="67"/>
<UsageCount Value="38"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
</Unit1>
<Unit2>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="1"/>
<TopLine Value="1503"/>
<CursorPos X="5" Y="1512"/>
<UsageCount Value="15"/>
<Bookmarks Count="5">
<EditorIndex Value="2"/>
<TopLine Value="475"/>
<CursorPos X="3" Y="492"/>
<UsageCount Value="17"/>
<Bookmarks Count="4">
<Item0 X="3" Y="4357" ID="5"/>
<Item1 X="3" Y="5572" ID="3"/>
<Item2 X="5" Y="6159" ID="4"/>
<Item3 X="63" Y="4523" ID="1"/>
<Item4 X="3" Y="6172" ID="2"/>
<Item3 X="3" Y="6172" ID="2"/>
</Bookmarks>
<Loaded Value="True"/>
</Unit2>
@ -47,59 +43,59 @@
<EditorIndex Value="-1"/>
<TopLine Value="70"/>
<CursorPos X="30" Y="91"/>
<UsageCount Value="9"/>
<UsageCount Value="8"/>
</Unit3>
<Unit4>
<Filename Value="../../../../install/source/fpcsrc/rtl/objpas/classes/lists.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="316"/>
<CursorPos X="13" Y="328"/>
<UsageCount Value="9"/>
<UsageCount Value="8"/>
</Unit4>
<Unit5>
<Filename Value="../../../../install/source/fpcsrc/packages/fcl-db/src/base/db.pas"/>
<EditorIndex Value="-1"/>
<TopLine Value="1669"/>
<CursorPos X="14" Y="1687"/>
<UsageCount Value="9"/>
<UsageCount Value="8"/>
</Unit5>
<Unit6>
<Filename Value="../../../../install/source/fpcsrc/packages/fcl-db/src/base/datasource.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="212"/>
<CursorPos Y="218"/>
<UsageCount Value="9"/>
<UsageCount Value="8"/>
</Unit6>
<Unit7>
<Filename Value="../../../../install/source/fpcsrc/packages/fcl-db/src/base/dataset.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="1825"/>
<CursorPos X="3" Y="1829"/>
<UsageCount Value="9"/>
<UsageCount Value="8"/>
</Unit7>
<Unit8>
<Filename Value="../../../rxdb/rxmemds.pas"/>
<EditorIndex Value="-1"/>
<TopLine Value="1108"/>
<CursorPos Y="1127"/>
<UsageCount Value="9"/>
<UsageCount Value="8"/>
</Unit8>
<Unit9>
<Filename Value="../../../../../lcl/grids.pas"/>
<UnitName Value="Grids"/>
<EditorIndex Value="3"/>
<EditorIndex Value="4"/>
<TopLine Value="4273"/>
<CursorPos Y="4298"/>
<UsageCount Value="13"/>
<UsageCount Value="17"/>
<Loaded Value="True"/>
</Unit9>
<Unit10>
<Filename Value="../../../../../lcl/dbgrids.pas"/>
<UnitName Value="DBGrids"/>
<EditorIndex Value="2"/>
<EditorIndex Value="3"/>
<TopLine Value="3080"/>
<CursorPos Y="3105"/>
<UsageCount Value="15"/>
<UsageCount Value="19"/>
<Loaded Value="True"/>
</Unit10>
<Unit11>
@ -107,70 +103,70 @@
<EditorIndex Value="-1"/>
<TopLine Value="1009"/>
<CursorPos Y="1029"/>
<UsageCount Value="11"/>
<UsageCount Value="10"/>
</Unit11>
<Unit12>
<Filename Value="../../../../../lcl/include/wincontrol.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="8038"/>
<CursorPos Y="8066"/>
<UsageCount Value="11"/>
<UsageCount Value="10"/>
</Unit12>
<Unit13>
<Filename Value="../../../../../lcl/include/scrollingwincontrol.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="76"/>
<CursorPos Y="95"/>
<UsageCount Value="9"/>
<UsageCount Value="8"/>
</Unit13>
<Unit14>
<Filename Value="../../../../install/source/fpcsrc/rtl/inc/systemh.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="338"/>
<CursorPos X="9" Y="357"/>
<UsageCount Value="9"/>
<UsageCount Value="8"/>
</Unit14>
<Unit15>
<Filename Value="../../../../install/source/fpcsrc/rtl/objpas/classes/stringl.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="1571"/>
<CursorPos X="3" Y="1573"/>
<UsageCount Value="9"/>
<UsageCount Value="8"/>
</Unit15>
<Unit16>
<Filename Value="../../../../install/source/fpcsrc/rtl/objpas/sysutils/sysstrh.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="73"/>
<CursorPos X="10" Y="92"/>
<UsageCount Value="9"/>
<UsageCount Value="8"/>
</Unit16>
<Unit17>
<Filename Value="../../../../install/source/fpcsrc/rtl/objpas/sysutils/sysstr.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="551"/>
<CursorPos X="5" Y="553"/>
<UsageCount Value="9"/>
<UsageCount Value="8"/>
</Unit17>
<Unit18>
<Filename Value="../../../../install/source/fpcsrc/rtl/inc/ustringh.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="87"/>
<CursorPos X="5" Y="106"/>
<UsageCount Value="9"/>
<UsageCount Value="8"/>
</Unit18>
<Unit19>
<Filename Value="../../../../../lcl/include/canvas.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="1579"/>
<CursorPos Y="1600"/>
<UsageCount Value="10"/>
<UsageCount Value="9"/>
</Unit19>
<Unit20>
<Filename Value="../../../../../lcl/include/winapi.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="597"/>
<CursorPos Y="617"/>
<UsageCount Value="10"/>
<UsageCount Value="9"/>
</Unit20>
<Unit21>
<Filename Value="../../../../../lcl/widgetset/wsgrids.pp"/>
@ -178,7 +174,7 @@
<EditorIndex Value="-1"/>
<TopLine Value="35"/>
<CursorPos X="20" Y="53"/>
<UsageCount Value="11"/>
<UsageCount Value="10"/>
</Unit21>
<Unit22>
<Filename Value="../../../../../lcl/interfaces/gtk2/gtk2wsgrids.pp"/>
@ -186,7 +182,7 @@
<EditorIndex Value="-1"/>
<TopLine Value="31"/>
<CursorPos Y="66"/>
<UsageCount Value="11"/>
<UsageCount Value="10"/>
</Unit22>
<Unit23>
<Filename Value="../../../../../lcl/controls.pp"/>
@ -194,160 +190,210 @@
<EditorIndex Value="-1"/>
<TopLine Value="2277"/>
<CursorPos X="3" Y="2298"/>
<UsageCount Value="11"/>
<UsageCount Value="10"/>
</Unit23>
<Unit24>
<Filename Value="../../../../install/source/fpcsrc/rtl/inc/typshrdh.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="127"/>
<CursorPos X="17" Y="153"/>
<UsageCount Value="10"/>
<UsageCount Value="9"/>
</Unit24>
<Unit25>
<Filename Value="../../../../install/source/fpcsrc/rtl/inc/typshrd.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="300"/>
<CursorPos X="3" Y="302"/>
<UsageCount Value="10"/>
<UsageCount Value="9"/>
</Unit25>
<Unit26>
<Filename Value="../../../../../lcl/include/customcheckbox.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="114"/>
<CursorPos Y="134"/>
<UsageCount Value="10"/>
<UsageCount Value="9"/>
</Unit26>
<Unit27>
<Filename Value="../../../../../lcl/interfaces/gtk2/gtk2widgetset.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="16"/>
<CursorPos Y="44"/>
<UsageCount Value="10"/>
<UsageCount Value="9"/>
</Unit27>
<Unit28>
<Filename Value="../../../rxdbgrid_export_spreadsheet/rxdbgridexportspreadsheet.pas"/>
<UnitName Value="RxDBGridExportSpreadSheet"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="1"/>
<TopLine Value="277"/>
<CursorPos X="58" Y="291"/>
<UsageCount Value="13"/>
<Bookmarks Count="1">
<Item0 Y="578" ID="1"/>
</Bookmarks>
<Loaded Value="True"/>
</Unit28>
<Unit29>
<Filename Value="../../../../../lcl/lcltype.pp"/>
<UnitName Value="LCLType"/>
<EditorIndex Value="-1"/>
<TopLine Value="1688"/>
<CursorPos X="3" Y="1705"/>
<UsageCount Value="10"/>
</Unit29>
<Unit30>
<Filename Value="../../../rxdbgrid_export_spreadsheet/rxdbgridexportspreadsheet_paramsunit.pas"/>
<ComponentName Value="RxDBGridExportSpreadSheet_ParamsForm"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="RxDBGridExportSpreadSheet_ParamsUnit"/>
<EditorIndex Value="-1"/>
<TopLine Value="60"/>
<CursorPos X="44" Y="91"/>
<UsageCount Value="10"/>
</Unit30>
<Unit31>
<Filename Value="../../../rxtools/rxdconst.pas"/>
<EditorIndex Value="-1"/>
<TopLine Value="173"/>
<CursorPos X="50" Y="191"/>
<UsageCount Value="10"/>
</Unit31>
<Unit32>
<Filename Value="../../../../fpspreadsheet/source/common/fpspreadsheet.pas"/>
<EditorIndex Value="-1"/>
<TopLine Value="6340"/>
<CursorPos Y="6358"/>
<UsageCount Value="10"/>
</Unit32>
</Units>
<JumpHistory Count="29" HistoryIndex="28">
<JumpHistory Count="30" HistoryIndex="29">
<Position1>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="4421" TopLine="4403"/>
<Caret Line="1320" TopLine="1303"/>
</Position1>
<Position2>
<Filename Value="../../../../../lcl/grids.pas"/>
<Caret Line="4242" TopLine="4236"/>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="1321" TopLine="1303"/>
</Position2>
<Position3>
<Filename Value="../../../../../lcl/grids.pas"/>
<Caret Line="4244" TopLine="4236"/>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="1322" TopLine="1303"/>
</Position3>
<Position4>
<Filename Value="../../../../../lcl/grids.pas"/>
<Caret Line="4260" TopLine="4235"/>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="1323" TopLine="1303"/>
</Position4>
<Position5>
<Filename Value="../../../../../lcl/grids.pas"/>
<Caret Line="4261" TopLine="4235"/>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="783" Column="22" TopLine="768"/>
</Position5>
<Position6>
<Filename Value="../../../../../lcl/grids.pas"/>
<Caret Line="4262" TopLine="4235"/>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="1322" Column="54" TopLine="1294"/>
</Position6>
<Position7>
<Filename Value="../../../../../lcl/grids.pas"/>
<Caret Line="4264" TopLine="4235"/>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="1332" Column="53" TopLine="1304"/>
</Position7>
<Position8>
<Filename Value="../../../../../lcl/grids.pas"/>
<Caret Line="4265" TopLine="4235"/>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="4435" Column="58" TopLine="4407"/>
</Position8>
<Position9>
<Filename Value="../../../../../lcl/grids.pas"/>
<Caret Line="4260" TopLine="4235"/>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="4466" Column="58" TopLine="4438"/>
</Position9>
<Position10>
<Filename Value="../../../../../lcl/grids.pas"/>
<Caret Line="4261" TopLine="4235"/>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="4576" Column="20" TopLine="4558"/>
</Position10>
<Position11>
<Filename Value="../../../../../lcl/grids.pas"/>
<Caret Line="4262" TopLine="4235"/>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="766" Column="5" TopLine="751"/>
</Position11>
<Position12>
<Filename Value="../../../../../lcl/grids.pas"/>
<Caret Line="4264" TopLine="4235"/>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="847" TopLine="819"/>
</Position12>
<Position13>
<Filename Value="../../../../../lcl/grids.pas"/>
<Caret Line="4265" TopLine="4235"/>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="1323" Column="54" TopLine="1294"/>
</Position13>
<Position14>
<Filename Value="../../../../../lcl/grids.pas"/>
<Caret Line="4260" TopLine="4235"/>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="1333" Column="53" TopLine="1304"/>
</Position14>
<Position15>
<Filename Value="../../../../../lcl/grids.pas"/>
<Caret Line="4268" TopLine="4238"/>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="4436" Column="58" TopLine="4407"/>
</Position15>
<Position16>
<Filename Value="../../../../../lcl/grids.pas"/>
<Caret Line="4270" TopLine="4240"/>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="4467" Column="58" TopLine="4438"/>
</Position16>
<Position17>
<Filename Value="../../../../../lcl/grids.pas"/>
<Caret Line="4291" TopLine="4273"/>
<Filename Value="../../../rxdbgrid_export_spreadsheet/rxdbgridexportspreadsheet.pas"/>
<Caret Line="335" Column="21" TopLine="320"/>
</Position17>
<Position18>
<Filename Value="../../../../../lcl/grids.pas"/>
<Caret Line="4292" TopLine="4273"/>
<Filename Value="../../../rxdbgrid_export_spreadsheet/rxdbgridexportspreadsheet.pas"/>
<Caret Line="66" Column="15" TopLine="51"/>
</Position18>
<Position19>
<Filename Value="../../../../../lcl/grids.pas"/>
<Caret Line="4293" TopLine="4273"/>
<Filename Value="../../../rxdbgrid_export_spreadsheet/rxdbgridexportspreadsheet.pas"/>
<Caret Line="231" Column="13" TopLine="216"/>
</Position19>
<Position20>
<Filename Value="../../../../../lcl/grids.pas"/>
<Caret Line="4295" TopLine="4273"/>
<Filename Value="../../../rxdbgrid_export_spreadsheet/rxdbgridexportspreadsheet.pas"/>
<Caret Line="66" Column="16" TopLine="45"/>
</Position20>
<Position21>
<Filename Value="../../../../../lcl/grids.pas"/>
<Caret Line="4296" TopLine="4273"/>
<Filename Value="../../../rxdbgrid_export_spreadsheet/rxdbgridexportspreadsheet.pas"/>
<Caret Line="233" Column="30" TopLine="219"/>
</Position21>
<Position22>
<Filename Value="../../../../../lcl/grids.pas"/>
<Caret Line="4291" TopLine="4273"/>
<Filename Value="../../../rxdbgrid_export_spreadsheet/rxdbgridexportspreadsheet.pas"/>
<Caret Line="235" Column="59" TopLine="217"/>
</Position22>
<Position23>
<Filename Value="../../../../../lcl/grids.pas"/>
<Caret Line="4298" TopLine="4273"/>
<Filename Value="../../../rxdbgrid_export_spreadsheet/rxdbgridexportspreadsheet.pas"/>
<Caret Line="317" Column="7" TopLine="301"/>
</Position23>
<Position24>
<Filename Value="../../../../../lcl/dbgrids.pas"/>
<Caret Line="3105" TopLine="3080"/>
<Filename Value="../../../rxdbgrid_export_spreadsheet/rxdbgridexportspreadsheet.pas"/>
<Caret Line="316" Column="41" TopLine="295"/>
</Position24>
<Position25>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="4512" TopLine="4502"/>
<Filename Value="../../../rxdbgrid_export_spreadsheet/rxdbgridexportspreadsheet.pas"/>
<Caret Line="85" Column="15" TopLine="69"/>
</Position25>
<Position26>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="1511" TopLine="1492"/>
<Filename Value="../../../rxdbgrid_export_spreadsheet/rxdbgridexportspreadsheet.pas"/>
<Caret Line="675" Column="56" TopLine="656"/>
</Position26>
<Position27>
<Filename Value="unit1.pas"/>
<Caret Line="56" Column="6" TopLine="42"/>
<Filename Value="../../../rxdbgrid_export_spreadsheet/rxdbgridexportspreadsheet.pas"/>
<Caret Line="319" Column="22" TopLine="309"/>
</Position27>
<Position28>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="533" Column="14" TopLine="515"/>
<Filename Value="../../../rxdbgrid_export_spreadsheet/rxdbgridexportspreadsheet.pas"/>
<Caret Line="85" Column="15" TopLine="69"/>
</Position28>
<Position29>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="519" Column="15" TopLine="516"/>
<Filename Value="../../../rxdbgrid_export_spreadsheet/rxdbgridexportspreadsheet.pas"/>
<Caret Line="664" Column="26" TopLine="656"/>
</Position29>
<Position30>
<Filename Value="../../../rxdbgrid_export_spreadsheet/rxdbgridexportspreadsheet.pas"/>
<Caret Line="69" Column="14" TopLine="51"/>
</Position30>
</JumpHistory>
</ProjectSession>
<Debugging>
<Watches Count="1">
<Item1>
<Expression Value="RNew"/>
<Expression Value="H"/>
</Item1>
</Watches>
</Debugging>

View File

@ -211,6 +211,21 @@ object Form1: TForm1
State = cbChecked
TabOrder = 3
end
object Button1: TButton
AnchorSideTop.Control = Owner
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 682
Height = 36
Top = 6
Width = 108
Anchors = [akTop, akRight]
AutoSize = True
BorderSpacing.Around = 6
Caption = 'Export to ODS'
OnClick = Button1Click
TabOrder = 4
end
object rxData: TRxMemoryData
FieldDefs = <
item
@ -294,4 +309,15 @@ object Form1: TForm1
Left = 392
Top = 16
end
object RxDBGridExportSpreadSheet1: TRxDBGridExportSpreadSheet
RxDBGrid = RxDBGrid1
Caption = 'Экспорт в электронную таблицу'
ShowSetupForm = True
FileName = 'test.ods'
PageName = 'test'
Options = [ressExportTitle, ressExportColors, ressExportFooter, ressExportFormula, ressOverwriteExisting, ressExportSelectedRows, ressHideZeroValues, ressColSpanning]
OpenAfterExport = True
Left = 392
Top = 168
end
end

View File

@ -5,14 +5,15 @@ unit Unit1;
interface
uses
Classes, SysUtils, FileUtil, rxdbgrid, rxmemds, Forms, Controls, Graphics,
Dialogs, StdCtrls, db;
Classes, SysUtils, FileUtil, rxdbgrid, rxmemds, RxDBGridExportSpreadSheet,
Forms, Controls, Graphics, Dialogs, StdCtrls, db;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
CheckBox3: TCheckBox;
@ -24,6 +25,8 @@ type
rxDataTEXT: TStringField;
RxDBGrid1: TRxDBGrid;
rxData: TRxMemoryData;
RxDBGridExportSpreadSheet1: TRxDBGridExportSpreadSheet;
procedure Button1Click(Sender: TObject);
procedure CheckBox1Change(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
@ -75,5 +78,12 @@ begin
RxDBGrid1.ReadOnly:=CheckBox3.Checked;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
RxDBGridExportSpreadSheet1.Options:=RxDBGridExportSpreadSheet1.Options + [ressExportGroupData];
RxDBGridExportSpreadSheet1.Execute;
end;
end.

View File

@ -133,6 +133,10 @@ msgstr "Exportar nombre de archivo"
msgid "Export footer formula"
msgstr "Exportar fórmula de pie"
#: rxdconst.sexportgroupdata
msgid "Export group data"
msgstr ""
#: rxdconst.sexporthidezerovalues
msgctxt "rxdconst.sexporthidezerovalues"
msgid "Hide zero values"

View File

@ -127,6 +127,10 @@ msgstr ""
msgid "Export footer formula"
msgstr ""
#: rxdconst.sexportgroupdata
msgid "Export group data"
msgstr ""
#: rxdconst.sexporthidezerovalues
msgctxt "rxdconst.sexporthidezerovalues"
msgid "Hide zero values"

View File

@ -137,9 +137,11 @@ msgstr "Имя файла экспорта"
msgid "Export footer formula"
msgstr "Экспортирововать формулы итоговой строки"
#: rxdconst.sexportgroupdata
msgid "Export group data"
msgstr "Экспорт данных группировки"
#: rxdconst.sexporthidezerovalues
#, fuzzy
msgctxt "rxdconst.sexporthidezerovalues"
msgid "Hide zero values"
msgstr "Не отображать нулевые значения"

View File

@ -138,6 +138,10 @@ msgstr "Експортувати назву файлу"
msgid "Export footer formula"
msgstr "Експортувати підсумкову формулу"
#: rxdconst.sexportgroupdata
msgid "Export group data"
msgstr ""
#: rxdconst.sexporthidezerovalues
#, fuzzy
msgctxt "rxdconst.sexporthidezerovalues"

View File

@ -522,7 +522,6 @@ type
procedure SetActive(AValue: boolean);
procedure SetColor(AValue: TColor);
protected
function FindGroupItem(ARecBookMark: TBookMark): TColumnGroupItem;
function AddGroupItem:TColumnGroupItem;
procedure InitGroup;
procedure DoneGroup;
@ -531,6 +530,7 @@ type
destructor Destroy; override;
procedure Clear;
procedure UpdateValues;
function FindGroupItem(ARecBookMark: TBookMark): TColumnGroupItem;
property GroupFieldName:string read FGroupFieldName write FGroupFieldName;
published
property Active:boolean read FActive write SetActive;
@ -780,7 +780,6 @@ type
FSaveOnDataSetScrolled: TDataSetScrolledEvent;
//Group data suppert
FGroupItems:TColumnGroupItems;
FGroupItemDrawCur:TColumnGroupItem;
procedure DoCreateJMenu;
function GetColumns: TRxDbGridColumns;
@ -844,6 +843,7 @@ type
protected
FRxDbGridLookupComboEditor: TCustomControl;
FRxDbGridDateEditor: TWinControl;
FGroupItemDrawCur:TColumnGroupItem;
procedure CollumnSortListUpdate;
procedure CollumnSortListClear;

View File

@ -46,7 +46,8 @@ type
ressOverwriteExisting,
ressExportSelectedRows,
ressHideZeroValues,
ressColSpanning
ressColSpanning,
ressExportGroupData
);
TRxDBGridExportSpreadSheetOptions = set of TRxDBGridExportSpreadSheetOption;
@ -65,6 +66,7 @@ type
procedure ExpCurRow(AFont: TFont);
procedure ExpAllRow;
procedure ExpSelectedRow;
procedure ExpGrpLine(G: TColumnGroupItem);
protected
FDataSet:TDataSet;
FWorkbook: TsWorkbook;
@ -106,6 +108,9 @@ end;
const
ssAligns : array [TAlignment] of TsHorAlignment = (haLeft, haRight, haCenter);
type
THackRxDBGrid = class(TRxDBGrid);
{ TRxDBGridExportSpeadSheet }
function TRxDBGridExportSpreadSheet.ColIndex(ACol: TRxColumn): integer;
@ -132,6 +137,7 @@ var
CT: TRxColumnTitle;
S: String;
CC: TColor;
G: TColumnGroupItem;
begin
FCurCol:=0;
@ -220,6 +226,14 @@ begin
Inc(i);
end;
if RxDBGrid.GroupItems.Active and (ressExportGroupData in Options) then
begin
THackRxDBGrid(RxDBGrid).FGroupItemDrawCur:=RxDBGrid.GroupItems.FindGroupItem(RxDBGrid.DataSource.DataSet.Bookmark);
if Assigned(THackRxDBGrid(RxDBGrid).FGroupItemDrawCur) then
ExpGrpLine(THackRxDBGrid(RxDBGrid).FGroupItemDrawCur);
end;
end;
procedure TRxDBGridExportSpreadSheet.ExpAllRow;
@ -253,6 +267,98 @@ begin
F.Free;
end;
procedure TRxDBGridExportSpreadSheet.ExpGrpLine(G: TColumnGroupItem);
var
C: TRxColumn;
procedure OutGroupCellProps;
{$IFDEF OLD_fpSPREADSHEET}
var
scColor : TsColor;
{$ENDIF}
var
FColor: TColor;
begin
if C.GroupParam.Color <> clNone then
FColor := C.GroupParam.Color
else
if RxDBGrid.GroupItems.Color <> clNone then
FColor := RxDBGrid.GroupItems.Color
else
FColor := clNone;
if (FColor <> clNone) and (ressExportColors in FOptions) then
begin
{$IFDEF OLD_fpSPREADSHEET}
if (C.GroupParam.Color and SYS_COLOR_BASE) = 0 then
begin
scColor:=FWorkbook.AddColorToPalette(C.GroupParam.Color);
FWorksheet.WriteBackgroundColor(FCurRow,FCurCol, scColor);}
end;
{$ELSE}
FWorksheet.WriteBackgroundColor(FCurRow, FCurCol, FColor);
{$ENDIF}
end;
FWorksheet.WriteBorders(FCurRow, FCurCol, [cbNorth, cbWest, cbEast, cbSouth]);
FWorksheet.WriteBorderColor(FCurRow, FCurCol, cbNorth, scColorBlack);
FWorksheet.WriteBorderColor(FCurRow, FCurCol, cbWest, scColorBlack);
FWorksheet.WriteBorderColor(FCurRow, FCurCol, cbEast, scColorBlack);
FWorksheet.WriteBorderColor(FCurRow, FCurCol, cbSouth, scColorBlack);
end;
procedure OutGroupCell(G: TColumnGroupItem);
var
D: Integer;
SF: String;
begin
if (C.GroupParam.ValueType <> fvtNon) then
begin
(* if (ressExportFormula in FOptions) and (Footer.ValueType in [fvtSum, fvtMax, fvtMin]) and (FFirstDataRow <= FLastDataRow) {and (Footer.DisplayFormat = '')} then
begin
D:=ColIndex(RxDBGrid.ColumnByFieldName(Footer.FieldName));
if D>=0 then
begin
case Footer.ValueType of
fvtSum:SF:='SUM';
fvtMax:SF:='MIN';
fvtMin:SF:='MAX';
else
SF:='Error!(';
end;
FWorksheet.WriteFormula(FCurRow, FCurCol,
Format('=%s(%s%d:%s%d)', [SF, GetColString(D), FFirstDataRow+1, GetColString(D), FLastDataRow+1]));
end
else
begin
FWorksheet.WriteNumber(FCurRow, FCurCol, Footer.NumericValue, nfFixed, 2);
end;
end
else *)
FWorksheet.WriteUTF8Text(FCurRow, FCurCol, C.GroupParam.DisplayText);
FWorksheet.WriteHorAlignment(FCurRow, FCurCol, ssAligns[C.GroupParam.Alignment]);
end;
end;
var
i: Integer;
begin
inc(FCurRow);
FCurCol:=0;
for i:=0 to FRxDBGrid.Columns.Count - 1 do
begin
C:=FRxDBGrid.Columns[i] as TRxColumn;
if C.Visible then
begin
OutGroupCellProps;
OutGroupCell(G);
inc(FCurCol);
end;
end;
end;
procedure TRxDBGridExportSpreadSheet.DoExportTitle;
var
i, k : Integer;
@ -556,15 +662,24 @@ begin
F.FileNameEdit1.FileName:=FFileName;
F.cbOpenAfterExport.Checked:=FOpenAfterExport;
F.cbExportColumnFooter.Checked:=ressExportFooter in FOptions;
F.cbExportColumnFooter.Enabled:=RxDBGrid.FooterOptions.Active;
F.cbExportColumnHeader.Checked:=ressExportTitle in FOptions;
F.cbExportCellColors.Checked:=ressExportColors in FOptions;
F.cbOverwriteExisting.Checked:=ressOverwriteExisting in FOptions;
F.cbExportFormula.Checked:=ressExportFormula in FOptions;
F.cbExportFormula.Enabled:=RxDBGrid.FooterOptions.Active;
F.cbExportSelectedRows.Checked:=ressExportSelectedRows in FOptions;
F.cbExportSelectedRows.Enabled:=(dgMultiselect in RxDBGrid.Options) and (RxDBGrid.SelectedRows.Count > 0);
F.cbHideZeroValues.Checked:=ressHideZeroValues in FOptions;
F.cbMergeCells.Checked:=ressColSpanning in FOptions;
F.cbExportGrpData.Checked:=ressExportGroupData in FOptions;
F.cbExportGrpData.Enabled:=RxDBGrid.GroupItems.Active;
F.edtPageName.Text:=FPageName;
@ -593,6 +708,10 @@ begin
if F.cbMergeCells.Checked then
FOptions:=FOptions + [ressColSpanning];
if F.cbExportGrpData.Checked then
FOptions:=FOptions + [ressExportGroupData];
end;
F.Free;
end;

View File

@ -1,10 +1,10 @@
object RxDBGridExportSpreadSheet_ParamsForm: TRxDBGridExportSpreadSheet_ParamsForm
Left = 483
Height = 317
Height = 328
Top = 235
Width = 548
Caption = 'Export params'
ClientHeight = 317
ClientHeight = 328
ClientWidth = 548
OnCreate = FormCreate
Position = poScreenCenter
@ -44,11 +44,11 @@ object RxDBGridExportSpreadSheet_ParamsForm: TRxDBGridExportSpreadSheet_ParamsFo
end
object Label3: TLabel
AnchorSideLeft.Control = Label4
AnchorSideTop.Control = cbHideZeroValues
AnchorSideTop.Control = cbExportGrpData
AnchorSideTop.Side = asrBottom
Left = 280
Height = 20
Top = 165
Top = 195
Width = 70
BorderSpacing.Around = 6
Caption = 'Page name'
@ -63,7 +63,7 @@ object RxDBGridExportSpreadSheet_ParamsForm: TRxDBGridExportSpreadSheet_ParamsFo
AnchorSideRight.Side = asrBottom
Left = 286
Height = 37
Top = 191
Top = 221
Width = 256
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 6
@ -96,7 +96,7 @@ object RxDBGridExportSpreadSheet_ParamsForm: TRxDBGridExportSpreadSheet_ParamsFo
object ButtonPanel1: TButtonPanel
Left = 6
Height = 46
Top = 265
Top = 276
Width = 536
OKButton.Name = 'OKButton'
OKButton.DefaultCaption = True
@ -203,4 +203,16 @@ object RxDBGridExportSpreadSheet_ParamsForm: TRxDBGridExportSpreadSheet_ParamsFo
Caption = 'Merge cell''s'
TabOrder = 11
end
object cbExportGrpData: TCheckBox
AnchorSideLeft.Control = Label4
AnchorSideTop.Control = cbHideZeroValues
AnchorSideTop.Side = asrBottom
Left = 280
Height = 24
Top = 165
Width = 139
BorderSpacing.Around = 6
Caption = 'Export group data'
TabOrder = 12
end
end

View File

@ -48,6 +48,7 @@ type
cbExportSelectedRows: TCheckBox;
cbExportFormula: TCheckBox;
cbExportColumnFooter: TCheckBox;
cbExportGrpData: TCheckBox;
cbMergeCells: TCheckBox;
cbOpenAfterExport: TCheckBox;
cbExportColumnHeader: TCheckBox;
@ -87,6 +88,7 @@ begin
cbExportSelectedRows.Caption:=sExportSelectedRows;
cbHideZeroValues.Caption:=sExportHideZeroValues;
cbMergeCells.Caption:=sMergeCells;
cbExportGrpData.Caption:=sExportGroupData;
end;
end.

View File

@ -188,6 +188,7 @@ resourcestring
sExportSelectedRows = 'Export only selected rows';
sExportHideZeroValues = 'Hide zero values';
sMergeCells = 'Merge cell''s';
sExportGroupData = 'Export group data';
sOverwriteExisting = 'Overwrite existing';
sShowColumnHeaderOnAllPage = 'Show column header on all pages';
sPageMargins = 'Page margins';