From cc2ab6fabaef4ded8507a2c5cd62f07e5693ce02 Mon Sep 17 00:00:00 2001 From: alexs75 Date: Fri, 12 Aug 2016 13:50:47 +0000 Subject: [PATCH] RxFPC: RXDBGrid export to PDF component git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5082 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- .../Demos/RxDbGridExportToPDF/project1.ico | Bin 0 -> 137040 bytes .../Demos/RxDbGridExportToPDF/project1.lpi | 83 +++ .../Demos/RxDbGridExportToPDF/project1.lpr | 22 + .../Demos/RxDbGridExportToPDF/project1.lps | 622 ++++++++++++++++++ .../Demos/RxDbGridExportToPDF/project1.res | Bin 0 -> 138696 bytes .../trunk/Demos/RxDbGridExportToPDF/unit1.lfm | 355 ++++++++++ .../trunk/Demos/RxDbGridExportToPDF/unit1.pas | 230 +++++++ components/rx/trunk/rxdbgrid.pas | 437 ------------ components/rx/trunk/rxdbgridexportpdf.pas | 166 +++-- .../rx/trunk/rxdbgridexportpdfsetupunit.lfm | 132 ++++ .../rx/trunk/rxdbgridexportpdfsetupunit.pas | 87 +++ .../rxdbgridexportspreadsheet_paramsunit.lfm | 33 +- components/rx/trunk/rxnew.lpk | 10 +- components/rx/trunk/rxnew.pas | 2 +- 14 files changed, 1674 insertions(+), 505 deletions(-) create mode 100644 components/rx/trunk/Demos/RxDbGridExportToPDF/project1.ico create mode 100644 components/rx/trunk/Demos/RxDbGridExportToPDF/project1.lpi create mode 100644 components/rx/trunk/Demos/RxDbGridExportToPDF/project1.lpr create mode 100644 components/rx/trunk/Demos/RxDbGridExportToPDF/project1.lps create mode 100644 components/rx/trunk/Demos/RxDbGridExportToPDF/project1.res create mode 100644 components/rx/trunk/Demos/RxDbGridExportToPDF/unit1.lfm create mode 100644 components/rx/trunk/Demos/RxDbGridExportToPDF/unit1.pas create mode 100644 components/rx/trunk/rxdbgridexportpdfsetupunit.lfm create mode 100644 components/rx/trunk/rxdbgridexportpdfsetupunit.pas diff --git a/components/rx/trunk/Demos/RxDbGridExportToPDF/project1.ico b/components/rx/trunk/Demos/RxDbGridExportToPDF/project1.ico new file mode 100644 index 0000000000000000000000000000000000000000..0341321b5d952e1662a3d9444a73cf9f42a7db37 GIT binary patch literal 137040 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 G`+orYGy**U literal 0 HcmV?d00001 diff --git a/components/rx/trunk/Demos/RxDbGridExportToPDF/project1.lpi b/components/rx/trunk/Demos/RxDbGridExportToPDF/project1.lpi new file mode 100644 index 000000000..be1bafb19 --- /dev/null +++ b/components/rx/trunk/Demos/RxDbGridExportToPDF/project1.lpi @@ -0,0 +1,83 @@ + + + + + + + + + <ResourceType Value="res"/> + <UseXPManifest Value="True"/> + <Icon Value="0"/> + </General> + <VersionInfo> + <StringTable ProductVersion=""/> + </VersionInfo> + <BuildModes Count="1"> + <Item1 Name="Default" Default="True"/> + </BuildModes> + <PublishOptions> + <Version Value="2"/> + </PublishOptions> + <RunParams> + <local> + <FormatVersion Value="1"/> + </local> + </RunParams> + <RequiredPackages Count="3"> + <Item1> + <PackageName Value="FCL"/> + </Item1> + <Item2> + <PackageName Value="rxnew"/> + </Item2> + <Item3> + <PackageName Value="LCL"/> + </Item3> + </RequiredPackages> + <Units Count="2"> + <Unit0> + <Filename Value="project1.lpr"/> + <IsPartOfProject Value="True"/> + </Unit0> + <Unit1> + <Filename Value="unit1.pas"/> + <IsPartOfProject Value="True"/> + <ComponentName Value="Form1"/> + <HasResources Value="True"/> + <ResourceBaseClass Value="Form"/> + <UnitName Value="Unit1"/> + </Unit1> + </Units> + </ProjectOptions> + <CompilerOptions> + <Version Value="11"/> + <Target> + <Filename Value="project1"/> + </Target> + <SearchPaths> + <IncludeFiles Value="$(ProjOutDir)"/> + <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/> + </SearchPaths> + <Linking> + <Options> + <Win32> + <GraphicApplication Value="True"/> + </Win32> + </Options> + </Linking> + </CompilerOptions> + <Debugging> + <Exceptions Count="3"> + <Item1> + <Name Value="EAbort"/> + </Item1> + <Item2> + <Name Value="ECodetoolError"/> + </Item2> + <Item3> + <Name Value="EFOpenError"/> + </Item3> + </Exceptions> + </Debugging> +</CONFIG> diff --git a/components/rx/trunk/Demos/RxDbGridExportToPDF/project1.lpr b/components/rx/trunk/Demos/RxDbGridExportToPDF/project1.lpr new file mode 100644 index 000000000..1e431b5fb --- /dev/null +++ b/components/rx/trunk/Demos/RxDbGridExportToPDF/project1.lpr @@ -0,0 +1,22 @@ +program project1; + +{$mode objfpc}{$H+} + +uses + {$IFDEF UNIX}{$IFDEF UseCThreads} + cthreads, + {$ENDIF}{$ENDIF} + Interfaces, // this includes the LCL widgetset + Forms, rxnew, Unit1, + sysutils; + +{$R *.res} + +begin + RequireDerivedFormResource:=True; + DefaultFormatSettings.ThousandSeparator:=' '; + Application.Initialize; + Application.CreateForm(TForm1, Form1); + Application.Run; +end. + diff --git a/components/rx/trunk/Demos/RxDbGridExportToPDF/project1.lps b/components/rx/trunk/Demos/RxDbGridExportToPDF/project1.lps new file mode 100644 index 000000000..173d28f5e --- /dev/null +++ b/components/rx/trunk/Demos/RxDbGridExportToPDF/project1.lps @@ -0,0 +1,622 @@ +<?xml version="1.0" encoding="UTF-8"?> +<CONFIG> + <ProjectSession> + <Version Value="9"/> + <BuildModes Active="Default"/> + <Units Count="61"> + <Unit0> + <Filename Value="project1.lpr"/> + <IsPartOfProject Value="True"/> + <EditorIndex Value="-1"/> + <CursorPos X="81" Y="12"/> + <UsageCount Value="59"/> + </Unit0> + <Unit1> + <Filename Value="unit1.pas"/> + <IsPartOfProject Value="True"/> + <ComponentName Value="Form1"/> + <HasResources Value="True"/> + <ResourceBaseClass Value="Form"/> + <UnitName Value="Unit1"/> + <IsVisibleTab Value="True"/> + <TopLine Value="59"/> + <CursorPos X="34" Y="61"/> + <UsageCount Value="59"/> + <Loaded Value="True"/> + <LoadedDesigner Value="True"/> + </Unit1> + <Unit2> + <Filename Value="../../rxdbgridexportspreadsheet.pas"/> + <UnitName Value="RxDBGridExportSpreadSheet"/> + <EditorIndex Value="-1"/> + <TopLine Value="143"/> + <CursorPos X="31" Y="32"/> + <UsageCount Value="16"/> + </Unit2> + <Unit3> + <Filename Value="../../rxdbgrid.pas"/> + <EditorIndex Value="-1"/> + <TopLine Value="2312"/> + <CursorPos X="30" Y="2329"/> + <UsageCount Value="24"/> + </Unit3> + <Unit4> + <Filename Value="rxdbgridexportpdf.pas"/> + <UnitName Value="RxDBGridExportPdf"/> + <EditorIndex Value="-1"/> + <TopLine Value="51"/> + <CursorPos X="69" Y="76"/> + <UsageCount Value="17"/> + </Unit4> + <Unit5> + <Filename Value="../../rxdconst.pas"/> + <EditorIndex Value="-1"/> + <TopLine Value="161"/> + <CursorPos X="18" Y="177"/> + <UsageCount Value="7"/> + </Unit5> + <Unit6> + <Filename Value="../../../install/source/fpcsrc/rtl/objpas/classes/reader.inc"/> + <EditorIndex Value="-1"/> + <TopLine Value="964"/> + <CursorPos Y="986"/> + <UsageCount Value="7"/> + </Unit6> + <Unit7> + <Filename Value="../../../OPTORG/alexs/3/examples/testfppdf.lpr"/> + <EditorIndex Value="-1"/> + <TopLine Value="107"/> + <CursorPos Y="133"/> + <UsageCount Value="8"/> + </Unit7> + <Unit8> + <Filename Value="../../../install/source/fpcsrc/packages/fcl-pdf/src/fppdf.pp"/> + <UnitName Value="fpPDF"/> + <EditorIndex Value="-1"/> + <TopLine Value="530"/> + <CursorPos X="15" Y="544"/> + <UsageCount Value="25"/> + </Unit8> + <Unit9> + <Filename Value="../../registerrxdb.pas"/> + <UnitName Value="RegisterRxDB"/> + <EditorIndex Value="-1"/> + <CursorPos X="23" Y="10"/> + <UsageCount Value="8"/> + </Unit9> + <Unit10> + <Filename Value="../../rxdbgridexportpdf.pas"/> + <UnitName Value="RxDBGridExportPdf"/> + <EditorIndex Value="1"/> + <TopLine Value="548"/> + <CursorPos X="19" Y="515"/> + <UsageCount Value="27"/> + <Bookmarks Count="1"> + <Item0 X="3" Y="361" ID="1"/> + </Bookmarks> + <Loaded Value="True"/> + </Unit10> + <Unit11> + <Filename Value="../../rxdbgridprintgrid.pas"/> + <UnitName Value="RxDBGridPrintGrid"/> + <EditorIndex Value="-1"/> + <TopLine Value="140"/> + <CursorPos X="3" Y="145"/> + <UsageCount Value="17"/> + </Unit11> + <Unit12> + <Filename Value="../../../OPTORG/alexs/1/1/testfppdf.lpr"/> + <EditorIndex Value="-1"/> + <TopLine Value="145"/> + <CursorPos X="13" Y="166"/> + <UsageCount Value="21"/> + </Unit12> + <Unit13> + <Filename Value="../../../install/source/fpcsrc/packages/fcl-pdf/src/fpparsettf.pp"/> + <EditorIndex Value="-1"/> + <TopLine Value="344"/> + <CursorPos Y="365"/> + <UsageCount Value="13"/> + </Unit13> + <Unit14> + <Filename Value="../../../install/source/fpcsrc/rtl/objpas/sysutils/sysutilh.inc"/> + <EditorIndex Value="-1"/> + <TopLine Value="97"/> + <CursorPos X="19" Y="112"/> + <UsageCount Value="7"/> + </Unit14> + <Unit15> + <Filename Value="../../../install/source/fpcsrc/packages/fcl-pdf/src/fpttfencodings.pp"/> + <EditorIndex Value="-1"/> + <TopLine Value="2025"/> + <CursorPos X="3" Y="2100"/> + <UsageCount Value="7"/> + </Unit15> + <Unit16> + <Filename Value="../../../lazutils/lazfreetypefontcollection.pas"/> + <UnitName Value="LazFreeTypeFontCollection"/> + <EditorIndex Value="-1"/> + <TopLine Value="345"/> + <CursorPos X="3" Y="347"/> + <UsageCount Value="21"/> + </Unit16> + <Unit17> + <Filename Value="../../../lazutils/easylazfreetype.pas"/> + <UnitName Value="EasyLazFreeType"/> + <EditorIndex Value="-1"/> + <TopLine Value="1563"/> + <CursorPos X="3" Y="1550"/> + <UsageCount Value="21"/> + </Unit17> + <Unit18> + <Filename Value="../../../../examples/lazfreetype/mainform.pas"/> + <ComponentName Value="Form1"/> + <HasResources Value="True"/> + <ResourceBaseClass Value="Form"/> + <EditorIndex Value="-1"/> + <TopLine Value="51"/> + <CursorPos X="78" Y="61"/> + <UsageCount Value="7"/> + </Unit18> + <Unit19> + <Filename Value="../../../lazutils/ttfile.pas"/> + <UnitName Value="TTFile"/> + <EditorIndex Value="-1"/> + <TopLine Value="233"/> + <CursorPos Y="249"/> + <UsageCount Value="9"/> + </Unit19> + <Unit20> + <Filename Value="../../../install/source/fpcsrc/rtl/objpas/sysutils/finah.inc"/> + <EditorIndex Value="-1"/> + <TopLine Value="10"/> + <CursorPos X="10" Y="25"/> + <UsageCount Value="9"/> + </Unit20> + <Unit21> + <Filename Value="../../../install/source/fpcsrc/rtl/objpas/sysutils/fina.inc"/> + <EditorIndex Value="-1"/> + <TopLine Value="100"/> + <CursorPos X="3" Y="105"/> + <UsageCount Value="9"/> + </Unit21> + <Unit22> + <Filename Value="../../../install/source/fpcsrc/rtl/inc/fexpand.inc"/> + <EditorIndex Value="-1"/> + <TopLine Value="226"/> + <CursorPos X="10" Y="106"/> + <UsageCount Value="7"/> + </Unit22> + <Unit23> + <Filename Value="../../../tachart/tadraweropengl.pas"/> + <UnitName Value="TADrawerOpenGL"/> + <EditorIndex Value="-1"/> + <TopLine Value="218"/> + <CursorPos Y="220"/> + <UsageCount Value="13"/> + </Unit23> + <Unit24> + <Filename Value="../../../lazutils/fileutil.pas"/> + <UnitName Value="FileUtil"/> + <EditorIndex Value="-1"/> + <CursorPos X="14" Y="22"/> + <UsageCount Value="9"/> + </Unit24> + <Unit25> + <Filename Value="../../../lazutils/fileutil.inc"/> + <EditorIndex Value="-1"/> + <TopLine Value="1013"/> + <CursorPos Y="1031"/> + <UsageCount Value="7"/> + </Unit25> + <Unit26> + <Filename Value="../../../lazutils/lazfileutils.pas"/> + <UnitName Value="LazFileUtils"/> + <EditorIndex Value="-1"/> + <TopLine Value="719"/> + <CursorPos Y="736"/> + <UsageCount Value="7"/> + </Unit26> + <Unit27> + <Filename Value="../../../tachart/backup/tadraweropengl.pas"/> + <UnitName Value="TADrawerOpenGL"/> + <EditorIndex Value="-1"/> + <TopLine Value="208"/> + <CursorPos X="20" Y="224"/> + <UsageCount Value="7"/> + </Unit27> + <Unit28> + <Filename Value="unit1.lfm"/> + <EditorIndex Value="-1"/> + <TopLine Value="231"/> + <UsageCount Value="8"/> + <DefaultSyntaxHighlighter Value="LFM"/> + </Unit28> + <Unit29> + <Filename Value="../../../lazreport/source/lr_class.pas"/> + <UnitName Value="LR_Class"/> + <EditorIndex Value="-1"/> + <TopLine Value="3503"/> + <CursorPos X="3" Y="3506"/> + <UsageCount Value="8"/> + </Unit29> + <Unit30> + <Filename Value="C:/lazarus/components/lazutils/easylazfreetype.pas"/> + <UnitName Value="EasyLazFreeType"/> + <EditorIndex Value="-1"/> + <CursorPos X="14" Y="160"/> + <UsageCount Value="8"/> + </Unit30> + <Unit31> + <Filename Value="C:/lazarus/components/lazutils/lazfreetypefontcollection.pas"/> + <UnitName Value="LazFreeTypeFontCollection"/> + <EditorIndex Value="-1"/> + <TopLine Value="127"/> + <CursorPos X="50" Y="141"/> + <UsageCount Value="8"/> + </Unit31> + <Unit32> + <Filename Value="../../../install/source/fpcsrc/rtl/objpas/classes/classesh.inc"/> + <EditorIndex Value="-1"/> + <TopLine Value="76"/> + <CursorPos X="56" Y="91"/> + <UsageCount Value="10"/> + </Unit32> + <Unit33> + <Filename Value="../../../install/source/fpcsrc/rtl/objpas/sysutils/sysinth.inc"/> + <EditorIndex Value="-1"/> + <TopLine Value="122"/> + <CursorPos X="58" Y="137"/> + <UsageCount Value="8"/> + </Unit33> + <Unit34> + <Filename Value="../../vclutils.pas"/> + <EditorIndex Value="-1"/> + <TopLine Value="125"/> + <CursorPos Y="155"/> + <UsageCount Value="8"/> + </Unit34> + <Unit35> + <Filename Value="../../rxshortcutunit.pas"/> + <ComponentName Value="rxShortCutForm"/> + <HasResources Value="True"/> + <ResourceBaseClass Value="Form"/> + <UnitName Value="rxShortCutUnit"/> + <EditorIndex Value="-1"/> + <TopLine Value="13"/> + <UsageCount Value="8"/> + </Unit35> + <Unit36> + <Filename Value="../../rxctrls.pas"/> + <EditorIndex Value="-1"/> + <TopLine Value="40"/> + <UsageCount Value="8"/> + </Unit36> + <Unit37> + <Filename Value="../../rxapputils.pas"/> + <EditorIndex Value="-1"/> + <TopLine Value="28"/> + <CursorPos X="83" Y="64"/> + <UsageCount Value="8"/> + </Unit37> + <Unit38> + <Filename Value="../../../install/source/fpcsrc/packages/fcl-db/src/sqldb/sqldb.pp"/> + <EditorIndex Value="-1"/> + <TopLine Value="439"/> + <CursorPos X="3" Y="454"/> + <UsageCount Value="10"/> + </Unit38> + <Unit39> + <Filename Value="../../../install/source/fpcsrc/packages/fcl-db/src/base/db.pas"/> + <EditorIndex Value="-1"/> + <TopLine Value="1339"/> + <CursorPos X="3" Y="1354"/> + <UsageCount Value="9"/> + </Unit39> + <Unit40> + <Filename Value="../../../install/source/fpcsrc/packages/fcl-db/src/base/dataset.inc"/> + <EditorIndex Value="-1"/> + <TopLine Value="473"/> + <CursorPos X="3" Y="476"/> + <UsageCount Value="10"/> + </Unit40> + <Unit41> + <Filename Value="../../../install/source/fpcsrc/packages/fcl-db/src/base/bufdataset.pas"/> + <UnitName Value="BufDataset"/> + <EditorIndex Value="-1"/> + <TopLine Value="458"/> + <CursorPos X="3" Y="446"/> + <UsageCount Value="10"/> + <Bookmarks Count="1"> + <Item0 X="3" Y="3449" ID="1"/> + </Bookmarks> + </Unit41> + <Unit42> + <Filename Value="../../../install/source/fpcsrc/packages/fcl-db/src/base/bufdataset_parser.pp"/> + <EditorIndex Value="-1"/> + <CursorPos X="20" Y="18"/> + <UsageCount Value="9"/> + </Unit42> + <Unit43> + <Filename Value="../../../install/source/fpcsrc/packages/fcl-db/src/dbase/dbf_prscore.pas"/> + <EditorIndex Value="-1"/> + <TopLine Value="34"/> + <CursorPos X="3" Y="43"/> + <UsageCount Value="9"/> + </Unit43> + <Unit44> + <Filename Value="../../rxmemds.pas"/> + <EditorIndex Value="-1"/> + <TopLine Value="25"/> + <CursorPos X="47" Y="40"/> + <UsageCount Value="10"/> + <Bookmarks Count="1"> + <Item0 X="33" Y="131" ID="2"/> + </Bookmarks> + </Unit44> + <Unit45> + <Filename Value="../../../install/source/fpcsrc/packages/fcl-db/src/memds/memds.pp"/> + <EditorIndex Value="-1"/> + <TopLine Value="136"/> + <CursorPos X="14" Y="155"/> + <UsageCount Value="8"/> + </Unit45> + <Unit46> + <Filename Value="../../../install/source/fpcsrc/packages/fcl-db/src/dbase/dbf.pas"/> + <EditorIndex Value="-1"/> + <TopLine Value="2336"/> + <CursorPos X="3" Y="2338"/> + <UsageCount Value="8"/> + </Unit46> + <Unit47> + <Filename Value="../../../install/source/fpcsrc/packages/fcl-db/src/dbase/dbf_parser.pas"/> + <EditorIndex Value="-1"/> + <TopLine Value="162"/> + <CursorPos X="5" Y="87"/> + <UsageCount Value="8"/> + </Unit47> + <Unit48> + <Filename Value="../../rxdb/rxmemds_parser.pas"/> + <EditorIndex Value="-1"/> + <TopLine Value="186"/> + <CursorPos X="3" Y="189"/> + <UsageCount Value="9"/> + </Unit48> + <Unit49> + <Filename Value="../../../install/source/fpcsrc/packages/fcl-db/src/dbase/dbf_common.pas"/> + <EditorIndex Value="-1"/> + <TopLine Value="95"/> + <CursorPos X="10" Y="110"/> + <UsageCount Value="9"/> + </Unit49> + <Unit50> + <Filename Value="../../../../lcl/grids.pas"/> + <UnitName Value="Grids"/> + <EditorIndex Value="-1"/> + <TopLine Value="1972"/> + <CursorPos X="21" Y="1976"/> + <UsageCount Value="12"/> + </Unit50> + <Unit51> + <Filename Value="../../../lazutils/lazfreetype.pas"/> + <UnitName Value="LazFreeType"/> + <EditorIndex Value="-1"/> + <TopLine Value="76"/> + <CursorPos Y="76"/> + <UsageCount Value="9"/> + </Unit51> + <Unit52> + <Filename Value="../../../lazutils/ttobjs.pas"/> + <UnitName Value="TTObjs"/> + <EditorIndex Value="-1"/> + <UsageCount Value="9"/> + </Unit52> + <Unit53> + <Filename Value="../../../lazutils/tttables.pas"/> + <UnitName Value="TTTables"/> + <EditorIndex Value="-1"/> + <UsageCount Value="9"/> + </Unit53> + <Unit54> + <Filename Value="../../../../lcl/dbgrids.pas"/> + <UnitName Value="DBGrids"/> + <EditorIndex Value="-1"/> + <TopLine Value="4071"/> + <CursorPos Y="4090"/> + <UsageCount Value="11"/> + </Unit54> + <Unit55> + <Filename Value="../../../../lcl/graphics.pp"/> + <UnitName Value="Graphics"/> + <EditorIndex Value="-1"/> + <TopLine Value="1959"/> + <CursorPos X="29" Y="1970"/> + <UsageCount Value="10"/> + </Unit55> + <Unit56> + <Filename Value="../../../../lcl/lcltype.pp"/> + <UnitName Value="LCLType"/> + <EditorIndex Value="-1"/> + <TopLine Value="1629"/> + <CursorPos X="3" Y="1644"/> + <UsageCount Value="10"/> + </Unit56> + <Unit57> + <Filename Value="../../../install/source/fpcsrc/packages/fcl-image/src/fpimage.pp"/> + <UnitName Value="FPimage"/> + <EditorIndex Value="-1"/> + <TopLine Value="37"/> + <CursorPos X="4" Y="45"/> + <UsageCount Value="10"/> + </Unit57> + <Unit58> + <Filename Value="../../rxdbgridexportpdfsetupunit.pas"/> + <ComponentName Value="RxDBGridExportPdfSetupForm"/> + <HasResources Value="True"/> + <ResourceBaseClass Value="Form"/> + <UnitName Value="RxDBGridExportPdfSetupUnit"/> + <EditorIndex Value="2"/> + <TopLine Value="56"/> + <CursorPos X="5" Y="83"/> + <UsageCount Value="20"/> + <Loaded Value="True"/> + <LoadedDesigner Value="True"/> + </Unit58> + <Unit59> + <Filename Value="../../rxdbgridexportspreadsheet_paramsunit.pas"/> + <ComponentName Value="RxDBGridExportSpreadSheet_ParamsForm"/> + <HasResources Value="True"/> + <ResourceBaseClass Value="Form"/> + <UnitName Value="RxDBGridExportSpreadSheet_ParamsUnit"/> + <EditorIndex Value="-1"/> + <TopLine Value="31"/> + <CursorPos X="3" Y="46"/> + <UsageCount Value="10"/> + </Unit59> + <Unit60> + <Filename Value="../../../../lcl/controls.pp"/> + <UnitName Value="Controls"/> + <EditorIndex Value="-1"/> + <TopLine Value="5"/> + <CursorPos X="14" Y="19"/> + <UsageCount Value="10"/> + </Unit60> + </Units> + <JumpHistory Count="27" HistoryIndex="26"> + <Position1> + <Filename Value="../../rxdbgridexportpdf.pas"/> + <Caret Line="277" Column="53" TopLine="252"/> + </Position1> + <Position2> + <Filename Value="../../rxdbgridexportpdf.pas"/> + <Caret Line="142" Column="15" TopLine="127"/> + </Position2> + <Position3> + <Filename Value="../../rxdbgridexportpdf.pas"/> + <Caret Line="275" Column="70" TopLine="261"/> + </Position3> + <Position4> + <Filename Value="../../rxdbgridexportpdf.pas"/> + <Caret Line="285" TopLine="226"/> + </Position4> + <Position5> + <Filename Value="../../rxdbgridexportpdf.pas"/> + <Caret Line="239" Column="61" TopLine="236"/> + </Position5> + <Position6> + <Filename Value="../../rxdbgridexportpdf.pas"/> + <Caret Line="208" Column="20" TopLine="203"/> + </Position6> + <Position7> + <Filename Value="../../rxdbgridexportpdfsetupunit.pas"/> + <Caret Line="18" Column="30"/> + </Position7> + <Position8> + <Filename Value="../../rxdbgridexportpdf.pas"/> + <Caret Line="136" Column="89" TopLine="129"/> + </Position8> + <Position9> + <Filename Value="../../rxdbgridexportpdf.pas"/> + <Caret Line="477" Column="34" TopLine="457"/> + </Position9> + <Position10> + <Filename Value="../../rxdbgridexportpdfsetupunit.pas"/> + <Caret Line="67" TopLine="39"/> + </Position10> + <Position11> + <Filename Value="../../rxdbgridexportpdfsetupunit.pas"/> + <Caret Line="83" TopLine="53"/> + </Position11> + <Position12> + <Filename Value="../../rxdbgridexportpdfsetupunit.pas"/> + <Caret Line="82" Column="5" TopLine="56"/> + </Position12> + <Position13> + <Filename Value="unit1.pas"/> + <Caret Line="166" Column="3" TopLine="148"/> + </Position13> + <Position14> + <Filename Value="unit1.pas"/> + <Caret Line="165" Column="3" TopLine="147"/> + </Position14> + <Position15> + <Filename Value="unit1.pas"/> + <Caret Line="164" Column="3" TopLine="146"/> + </Position15> + <Position16> + <Filename Value="unit1.pas"/> + <Caret Line="167" Column="54" TopLine="146"/> + </Position16> + <Position17> + <Filename Value="unit1.pas"/> + </Position17> + <Position18> + <Filename Value="unit1.pas"/> + <Caret Line="157" Column="44" TopLine="127"/> + </Position18> + <Position19> + <Filename Value="unit1.pas"/> + <Caret Line="156" Column="44" TopLine="126"/> + </Position19> + <Position20> + <Filename Value="unit1.pas"/> + <Caret Line="137" Column="65" TopLine="127"/> + </Position20> + <Position21> + <Filename Value="unit1.pas"/> + <Caret Line="10" Column="22" TopLine="166"/> + </Position21> + <Position22> + <Filename Value="unit1.pas"/> + <Caret Line="150" TopLine="161"/> + </Position22> + <Position23> + <Filename Value="unit1.pas"/> + <Caret Line="188" TopLine="164"/> + </Position23> + <Position24> + <Filename Value="unit1.pas"/> + <Caret Line="155" TopLine="139"/> + </Position24> + <Position25> + <Filename Value="unit1.pas"/> + <Caret Line="156" TopLine="139"/> + </Position25> + <Position26> + <Filename Value="unit1.pas"/> + <Caret Line="157" TopLine="139"/> + </Position26> + <Position27> + <Filename Value="unit1.pas"/> + <Caret Line="164" Column="42" TopLine="153"/> + </Position27> + </JumpHistory> + </ProjectSession> + <Debugging> + <BreakPoints Count="1"> + <Item1> + <Kind Value="bpkSource"/> + <WatchScope Value="wpsLocal"/> + <WatchKind Value="wpkWrite"/> + <Source Value="../../../lazutils/lazfreetypefontcollection.pas"/> + <Line Value="423"/> + </Item1> + </BreakPoints> + <Watches Count="4"> + <Item1> + <Expression Value="fName"/> + </Item1> + <Item2> + <Expression Value="C"/> + <DisplayStyle Value="wdfHex"/> + </Item2> + <Item3> + <Expression Value="A"/> + </Item3> + <Item4> + <Expression Value="Result"/> + <DisplayStyle Value="wdfHex"/> + </Item4> + </Watches> + </Debugging> +</CONFIG> diff --git a/components/rx/trunk/Demos/RxDbGridExportToPDF/project1.res b/components/rx/trunk/Demos/RxDbGridExportToPDF/project1.res new file mode 100644 index 0000000000000000000000000000000000000000..e994dfa65a96d79259e5ee4940a4dbaf7a725d38 GIT binary patch literal 138696 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%0AfKu2*l>U> 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 S1`W2zbb*-9Wx38>)crqFf79~- literal 0 HcmV?d00001 diff --git a/components/rx/trunk/Demos/RxDbGridExportToPDF/unit1.lfm b/components/rx/trunk/Demos/RxDbGridExportToPDF/unit1.lfm new file mode 100644 index 000000000..7ad29c6cd --- /dev/null +++ b/components/rx/trunk/Demos/RxDbGridExportToPDF/unit1.lfm @@ -0,0 +1,355 @@ +object Form1: TForm1 + Left = 558 + Height = 397 + Top = 319 + Width = 1043 + Caption = 'Form1' + ClientHeight = 397 + ClientWidth = 1043 + OnClose = FormClose + OnCreate = FormCreate + LCLVersion = '1.7' + object Panel1: TPanel + Left = 0 + Height = 50 + Top = 347 + Width = 1043 + Align = alBottom + AutoSize = True + ClientHeight = 50 + ClientWidth = 1043 + TabOrder = 0 + object Button1: TButton + AnchorSideLeft.Control = Panel1 + AnchorSideLeft.Side = asrCenter + AnchorSideTop.Control = Panel1 + Left = 476 + Height = 36 + Top = 7 + Width = 90 + AutoSize = True + BorderSpacing.Around = 6 + Caption = 'Create PDF' + OnClick = Button1Click + TabOrder = 0 + end + object CheckBox1: TCheckBox + Left = 1 + Height = 24 + Top = 18 + Width = 99 + Caption = 'CheckBox1' + OnChange = CheckBox1Change + TabOrder = 1 + end + object Edit1: TEdit + Left = 137 + Height = 37 + Top = 7 + Width = 295 + TabOrder = 2 + Text = 'ID=1' + end + end + object PageControl1: TPageControl + Left = 0 + Height = 347 + Top = 0 + Width = 1043 + ActivePage = TabSheet1 + Align = alClient + TabIndex = 0 + TabOrder = 1 + object TabSheet1: TTabSheet + Caption = 'Test data' + ClientHeight = 313 + ClientWidth = 1033 + object RxDBGrid1: TRxDBGrid + Left = 0 + Height = 313 + Top = 0 + Width = 1033 + ColumnDefValues.BlobText = '(данные)' + TitleButtons = False + AutoSort = True + Columns = < + item + Title.Alignment = taCenter + Title.Orientation = toHorizontal + Title.Caption = 'ID' + Width = 50 + FieldName = 'ID' + EditButtons = <> + Filter.DropDownRows = 0 + Filter.EmptyValue = '(Нет)' + Filter.EmptyFont.Style = [fsItalic] + Filter.ItemIndex = -1 + Footers = <> + end + item + Color = clCream + Font.Color = clPurple + Title.Alignment = taCenter + Title.Orientation = toHorizontal + Title.Caption = 'Наименование продукта' + Width = 364 + FieldName = 'NAME' + EditButtons = <> + Filter.DropDownRows = 0 + Filter.EmptyValue = '(Нет)' + Filter.EmptyFont.Style = [fsItalic] + Filter.ItemIndex = -1 + Footers = <> + end + item + Color = clYellow + Title.Alignment = taCenter + Title.Orientation = toHorizontal + Title.Caption = 'Дата поставки' + Width = 90 + FieldName = 'PDATE' + EditButtons = <> + Filter.DropDownRows = 0 + Filter.EmptyValue = '(Нет)' + Filter.EmptyFont.Style = [fsItalic] + Filter.ItemIndex = -1 + Footers = <> + end + item + Title.Alignment = taCenter + Title.Orientation = toHorizontal + Title.Caption = 'Сумма' + Width = 100 + FieldName = 'SUM' + EditButtons = <> + Filter.DropDownRows = 0 + Filter.EmptyValue = '(Нет)' + Filter.EmptyFont.Style = [fsItalic] + Filter.ItemIndex = -1 + Footers = <> + end + item + Title.Alignment = taCenter + Title.Orientation = toHorizontal + Title.Caption = 'Страна' + Width = 200 + FieldName = 'Country' + EditButtons = <> + Filter.DropDownRows = 0 + Filter.EmptyValue = '(Нет)' + Filter.EmptyFont.Style = [fsItalic] + Filter.ItemIndex = -1 + Footers = <> + end + item + Title.Alignment = taCenter + Title.Orientation = toHorizontal + Title.Caption = 'Город' + Width = 200 + FieldName = 'Sity' + EditButtons = <> + Filter.DropDownRows = 0 + Filter.EmptyValue = '(Нет)' + Filter.EmptyFont.Style = [fsItalic] + Filter.ItemIndex = -1 + Footers = <> + end> + KeyStrokes = < + item + Command = rxgcShowFindDlg + ShortCut = 16454 + Enabled = True + end + item + Command = rxgcShowColumnsDlg + ShortCut = 16471 + Enabled = True + end + item + Command = rxgcShowFilterDlg + ShortCut = 16468 + Enabled = True + end + item + Command = rxgcShowSortDlg + ShortCut = 16467 + Enabled = True + end + item + Command = rxgcShowQuickFilter + ShortCut = 16465 + Enabled = True + end + item + Command = rxgcHideQuickFilter + ShortCut = 16456 + Enabled = True + end + item + Command = rxgcSelectAll + ShortCut = 16449 + Enabled = True + end + item + Command = rxgcDeSelectAll + ShortCut = 16429 + Enabled = True + end + item + Command = rxgcInvertSelection + ShortCut = 16426 + Enabled = True + end + item + Command = rxgcOptimizeColumnsWidth + ShortCut = 16427 + Enabled = True + end + item + Command = rxgcCopyCellValue + ShortCut = 16451 + Enabled = True + end> + FooterOptions.DrawFullLine = False + OptionsRx = [rdgAllowColumnsForm, rdgAllowDialogFind, rdgAllowQuickFilter, rdgAllowToolMenu] + Align = alClient + Color = clWindow + DrawFullLine = False + FocusColor = clRed + SelectedColor = clHighlight + GridLineStyle = psSolid + DataSource = DataSource1 + Options = [dgEditing, dgTitles, dgIndicator, dgColumnResize, dgColumnMove, dgColLines, dgRowLines, dgAlwaysShowSelection, dgConfirmDelete, dgCancelOnExit] + ParentColor = False + TabOrder = 0 + end + end + object TabSheet2: TTabSheet + Caption = 'Debug window' + ClientHeight = 313 + ClientWidth = 1033 + object Memo1: TMemo + Left = 0 + Height = 313 + Top = 0 + Width = 1033 + Align = alClient + Lines.Strings = ( + 'Memo1' + ) + TabOrder = 0 + end + end + end + object RxMemoryData1: TRxMemoryData + FieldDefs = < + item + Name = 'ID' + DataType = ftAutoInc + end + item + Name = 'NAME' + DataType = ftString + Size = 220 + end + item + Name = 'PDATE' + DataType = ftDate + end + item + Name = 'SUM' + DataType = ftCurrency + end + item + Name = 'Country' + DataType = ftString + Size = 100 + end + item + Name = 'Sity' + DataType = ftString + Size = 100 + end> + PacketRecords = 0 + left = 136 + top = 88 + object RxMemoryData1ID: TAutoIncField + FieldKind = fkData + FieldName = 'ID' + Index = 0 + LookupCache = False + ProviderFlags = [pfInUpdate, pfInWhere] + ReadOnly = False + Required = False + end + object RxMemoryData1NAME: TStringField + FieldKind = fkData + FieldName = 'NAME' + Index = 1 + LookupCache = False + ProviderFlags = [pfInUpdate, pfInWhere] + ReadOnly = False + Required = False + Size = 220 + end + object RxMemoryData1PDATE: TDateField + FieldKind = fkData + FieldName = 'PDATE' + Index = 2 + LookupCache = False + ProviderFlags = [pfInUpdate, pfInWhere] + ReadOnly = False + Required = False + end + object RxMemoryData1SUM: TCurrencyField + FieldKind = fkData + FieldName = 'SUM' + Index = 3 + LookupCache = False + ProviderFlags = [pfInUpdate, pfInWhere] + ReadOnly = False + Required = False + MaxValue = 0 + MinValue = 0 + Precision = 2 + end + object RxMemoryData1Country: TStringField + FieldKind = fkData + FieldName = 'Country' + Index = 4 + LookupCache = False + ProviderFlags = [pfInUpdate, pfInWhere] + ReadOnly = False + Required = False + Size = 100 + end + object RxMemoryData1Sity: TStringField + FieldKind = fkData + FieldName = 'Sity' + Index = 5 + LookupCache = False + ProviderFlags = [pfInUpdate, pfInWhere] + ReadOnly = False + Required = False + Size = 100 + end + end + object DataSource1: TDataSource + DataSet = RxMemoryData1 + left = 104 + top = 88 + end + object RxDBGridExportPDF1: TRxDBGridExportPDF + RxDBGrid = RxDBGrid1 + Caption = 'Export to PDF file' + ShowSetupForm = True + FileName = 'test111.pdf' + Options = [repExportTitle, repExportColors, repExportFooter] + PdfOptions.Options = [] + OpenAfterExport = True + AuthorPdf = 'Лагунов А.А.' + ProducerPdf = 'alexs' + left = 112 + top = 160 + end +end diff --git a/components/rx/trunk/Demos/RxDbGridExportToPDF/unit1.pas b/components/rx/trunk/Demos/RxDbGridExportToPDF/unit1.pas new file mode 100644 index 000000000..b19f2f3f0 --- /dev/null +++ b/components/rx/trunk/Demos/RxDbGridExportToPDF/unit1.pas @@ -0,0 +1,230 @@ +unit Unit1; + +{$mode objfpc}{$H+} + +interface + +uses + Classes, SysUtils, FileUtil, rxmemds, rxdbgrid, + RxDBGridExportPdf, Forms, Controls, Graphics, + Dialogs, ExtCtrls, StdCtrls, ComCtrls, db; + +type + + { TForm1 } + + TForm1 = class(TForm) + Button1: TButton; + CheckBox1: TCheckBox; + DataSource1: TDataSource; + Edit1: TEdit; + Memo1: TMemo; + PageControl1: TPageControl; + Panel1: TPanel; + RxDBGrid1: TRxDBGrid; + RxDBGridExportPDF1: TRxDBGridExportPDF; + RxMemoryData1: TRxMemoryData; + RxMemoryData1Country: TStringField; + RxMemoryData1ID: TAutoIncField; + RxMemoryData1NAME: TStringField; + RxMemoryData1PDATE: TDateField; + RxMemoryData1Sity: TStringField; + RxMemoryData1SUM: TCurrencyField; + TabSheet1: TTabSheet; + TabSheet2: TTabSheet; + procedure Button1Click(Sender: TObject); + procedure CheckBox1Change(Sender: TObject); + procedure FormClose(Sender: TObject; var CloseAction: TCloseAction); + procedure FormCreate(Sender: TObject); + private + FontDirList: TStrings; + procedure InitFonts; + procedure ShowInfo(AText:string; AParams : array of const); + procedure DebugFonts; + public + { public declarations } + end; + +var + Form1: TForm1; + +implementation +uses EasyLazFreeType, LazFreeTypeFontCollection, + LazFileUtils; + +{$R *.lfm} + +{ TForm1 } + +procedure TForm1.FormCreate(Sender: TObject); +begin + PageControl1.ActivePageIndex:=0; + RxMemoryData1.Open; + RxMemoryData1.AppendRecord([1, 'Строка с длинным текстом 1', now, 100, 'Россия', 'Москва']); + RxMemoryData1.AppendRecord([2, 'Строка с длинным текстом 2', now - 1, 100, 'Россия', 'Ставрополь']); + RxMemoryData1.AppendRecord([3, 'Строка с длинным текстом 3', now - 2, 110, 'Россия', 'Калининград']); + RxMemoryData1.AppendRecord([4, 'Строка с длинным текстом 4', now - 3, 5000, 'Россия', 'Владивасток']); + RxMemoryData1.AppendRecord([5, 'Строка с длинным текстом 5', now - 4, 123.31, 'USA', 'New-York']); + RxMemoryData1.AppendRecord([6, 'Строка с длинным текстом 6', now, 100, 'Россия', 'Москва']); + RxMemoryData1.AppendRecord([7, 'Строка с длинным текстом 7', now - 1, 100, 'Россия', 'Ставрополь']); + RxMemoryData1.AppendRecord([8, 'Строка с длинным текстом 8', now - 2, 110, 'Россия', 'Калининград']); + RxMemoryData1.AppendRecord([9, 'Строка с длинным текстом 9', now - 3, 5000, 'Россия', 'Владивасток']); + RxMemoryData1.AppendRecord([10,'Строка с длинным текстом 10', now - 4, 123.31, 'USA', 'New-York']); + RxMemoryData1.AppendRecord([11,'Строка с длинным текстом 11', now, 100, 'Россия', 'Москва']); + RxMemoryData1.AppendRecord([12,'Строка с длинным текстом 12', now - 1, 100, 'Россия', 'Ставрополь']); + RxMemoryData1.AppendRecord([13,'Строка с длинным текстом 13', now - 2, 110, 'Россия', 'Калининград']); + RxMemoryData1.AppendRecord([14,'Строка с длинным текстом 14', now - 3, 5000, 'Россия', 'Владивасток']); + RxMemoryData1.AppendRecord([15,'Строка с длинным текстом 15', now - 4, 123.31, 'USA', 'New-York']); + RxMemoryData1.AppendRecord([16,'Строка с длинным текстом 16', now, 100, 'Россия', 'Москва']); + RxMemoryData1.AppendRecord([17,'Строка с длинным текстом 17', now - 1, 100, 'Россия', 'Ставрополь']); + RxMemoryData1.AppendRecord([18,'Строка с длинным текстом 18', now - 2, 110, 'Россия', 'Калининград']); + RxMemoryData1.AppendRecord([19,'Строка с длинным текстом 19', now - 3, 5000, 'Россия', 'Владивасток']); + RxMemoryData1.AppendRecord([20,'Строка с длинным текстом 20', now - 4, 123.31, 'USA', 'New-York']); + + DebugFonts; +end; + +procedure TForm1.InitFonts; +procedure CreateFontDirList; +var + s: String; +begin + FontDirList := TStringList.Create; + {$IFDEF WINDOWS} + s := SHGetFolderPathUTF8(20); // CSIDL_FONTS = 20 + if s <> '' then + FontDirList.Add(s); + {$ENDIF} + {$IFDEF linux} + FontDirList.Add('/usr/share/cups/fonts/'); + FontDirList.Add('/usr/share/fonts/'); + FontDirList.Add('/usr/local/lib/X11/fonts/'); + FontDirList.Add(GetUserDir + '.fonts/'); + {$ENDIF} +end; + + + { Duplicates functionality in FontCollection.AddFolder in order to be able to + ignore exceptions due to font read errors (occur on Linux Mint with font + NanumMyeongjo.ttf } + procedure AddFolder(AFolder: string); + var + files: TStringList; + i: integer; + begin + AFolder := ExpandFileName(AFolder); + if (length(AFolder) <> 0) and (AFolder[length(AFolder)] <> PathDelim) then + AFolder += PathDelim; + files := TStringList.Create; + FontCollection.BeginUpdate; + try + FindAllFiles(files, AFolder, '*.ttf', true); + files.Sort; + for i := 0 to files.Count-1 do + try + FontCollection.AddFile(files[i]); + except + end; + finally + FontCollection.EndUpdate; + files.Free; + end; + end; + +var + i: Integer; +begin + if FontDirList = nil then + CreateFontDirList; + + for i:=0 to FontDirList.Count-1 do + AddFolder(FontDirList[i]); +end; + +procedure TForm1.ShowInfo(AText: string; AParams: array of const); +begin + Memo1.Lines.Add(Format(AText, AParams)); +end; + +procedure TForm1.DebugFonts; + +procedure DumpFamaly(AFontFamely:string); +var + FFM: TCustomFamilyCollectionItem; + I: Integer; + FFI: TCustomFontCollectionItem; +begin + FFM:=FontCollection.Family[AFontFamely]; + if not Assigned(FFM) then + begin + ShowInfo('Font Family %s NOT FOUND!', [AFontFamely]); + exit; + end; + + + ShowInfo('In Family %s count fonts : %d', [AFontFamely, FFM.FontCount]); + for I:=0 to FFM.FontCount-1 do + begin + FFI:=FFM.Font[i]; + ShowInfo('Font in file %s - NAME: %s. Styles = %s', [FFI.Filename, FFI.Information[ftiFullName], FFI.Styles]); + end; + + FFI:=FFM.GetFont('Regular'); + if Assigned(FFI) then + ShowInfo('REGULAR Font in file %s - NAME: %s', [FFI.Filename, FFI.Information[ftiFullName]]) + else + ShowInfo('Regular font not found', []); +end; + +begin + InitFonts; + Memo1.Lines.Clear; + if Assigned(FontCollection) then + begin + ShowInfo('FontCollection.FontFileCount = %d', [FontCollection.FontFileCount]); + ShowInfo('FontCollection.FamilyCount = %d', [FontCollection.FamilyCount]); + DumpFamaly('Arial'); + DumpFamaly('Sans'); + DumpFamaly('Serif'); + DumpFamaly('Liberation Sans'); + end + else + Memo1.Text:='FontCollection not assigned'; +end; + +procedure TForm1.Button1Click(Sender: TObject); +begin + RxDBGridExportPDF1.Execute; +end; + +procedure TForm1.CheckBox1Change(Sender: TObject); +begin + if CheckBox1.Checked then + begin + RxMemoryData1.Filter:=Edit1.Text; + end; + RxMemoryData1.Filtered:=CheckBox1.Checked; +end; + +procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction); +begin + FreeAndNil(FontDirList); +end; + +end. + +{ +'Conakry' +'DejaVu Sans' +'DejaVu Sans Condensed' +'DejaVu Sans Light' +'DejaVu Sans Mono' +'DejaVu Serif' +'DejaVu Serif Condensed' + +'Denemo' + +'FreeSans' +'Caladea' +'Carlito' +} diff --git a/components/rx/trunk/rxdbgrid.pas b/components/rx/trunk/rxdbgrid.pas index 791e09770..df0a1c2ce 100644 --- a/components/rx/trunk/rxdbgrid.pas +++ b/components/rx/trunk/rxdbgrid.pas @@ -2481,17 +2481,7 @@ function TRxDBGrid.GetFooterRowCount: integer; begin Result:=FFooterOptions.RowCount; end; -{ -function TRxDBGrid.GetMarkerDown: TBitmap; -begin - Result:=FMarkerDown; -end; -function TRxDBGrid.GetMarkerUp: TBitmap; -begin - Result:=FMarkerUp; -end; -} function TRxDBGrid.GetDrawFullLine: boolean; begin Result := FFooterOptions.FDrawFullLine; @@ -6031,433 +6021,6 @@ begin inherited Destroy; end; -(* -{ TRxColumnFooter } - -procedure TRxColumnFooter.SetValue(const AValue: string); -begin - if FValue = AValue then - exit; - FValue := AValue; - FOwner.ColumnChanged; -end; - -procedure TRxColumnFooter.SetDisplayFormat(const AValue: string); -begin - if FDisplayFormat = AValue then - exit; - FDisplayFormat := AValue; - FOwner.ColumnChanged; -end; - -procedure TRxColumnFooter.SetAlignment(const AValue: TAlignment); -begin - if FAlignment = AValue then - exit; - FAlignment := AValue; - FOwner.ColumnChanged; -end; - -procedure TRxColumnFooter.FontChanged(Sender: TObject); -begin - FisDefaultFont := False; - FOwner.ColumnChanged; -end; - -function TRxColumnFooter.GetFont: TFont; -begin - result := FFont; -end; - -function TRxColumnFooter.IsFontStored: Boolean; -begin - result := not FisDefaultFont; -end; - -procedure TRxColumnFooter.SetFieldName(const AValue: string); -begin - if FFieldName = AValue then - exit; - FFieldName := AValue; - FOwner.ColumnChanged; -end; - -procedure TRxColumnFooter.SetFont(AValue: TFont); -begin - if not FFont.IsEqual(AValue) then - FFont.Assign(AValue); -end; - -procedure TRxColumnFooter.SetLayout(const AValue: TTextLayout); -begin - if FLayout = AValue then - exit; - FLayout := AValue; - FOwner.ColumnChanged; -end; - -procedure TRxColumnFooter.SetValueType(const AValue: TFooterValueType); -begin - if FValueType = AValue then - exit; - FValueType := AValue; - if FValueType in [fvtSum, fvtAvg, fvtMax, fvtMin] then - TRxDBGrid(FOwner.Grid).CalcStatTotals; - FOwner.ColumnChanged; -end; - -function TRxColumnFooter.DisplayText: string; -begin - case FValueType of - fvtSum, - fvtAvg, - fvtMax, - fvtMin: Result := GetStatTotal; - fvtCount: Result := GetRecordsCount; - fvtFieldValue: Result := GetFieldValue; - fvtStaticText: Result := FValue; - fvtRecNo: Result := GetRecNo; - else - Result := ''; - end; -end; - -procedure TRxColumnFooter.FillDefaultFont; -var - AGrid: TCustomGrid; -begin - AGrid := FOwner.Grid; - if (AGrid<>nil) then - begin - FFont.Assign(AGrid.Font); - FIsDefaultFont := True; - end; -end; - -function TRxColumnFooter.GetFieldValue: string; -begin - if (FFieldName <> '') and TRxDBGrid(FOwner.Grid).DatalinkActive then - Result := TRxDBGrid(FOwner.Grid).DataSource.DataSet.FieldByName(FFieldName).AsString - else - Result := ''; -end; - -function TRxColumnFooter.GetRecordsCount: string; -begin - if TRxDBGrid(FOwner.Grid).DatalinkActive then - begin - if DisplayFormat <> '' then - Result := Format(DisplayFormat, - [{TRxDBGrid(FOwner.Grid).DataSource.DataSet.RecordCount} FCountRec]) - else - Result := IntToStr(FCountRec); //TRxDBGrid(FOwner.Grid).DataSource.DataSet.RecordCount); - end - else - Result := ''; -end; - -function TRxColumnFooter.GetRecNo: string; -begin - if TRxDBGrid(FOwner.Grid).DatalinkActive then - begin - if DisplayFormat <> '' then - Result := Format(DisplayFormat, [TRxDBGrid(FOwner.Grid).DataSource.DataSet.RecNo]) - else - Result := IntToStr(TRxDBGrid(FOwner.Grid).DataSource.DataSet.RecNo); - end - else - Result := ''; -end; - -function TRxColumnFooter.GetStatTotal: string; -var - F: TField; -begin - if (FFieldName <> '') and TRxDBGrid(FOwner.Grid).DatalinkActive and - (TRxDBGrid(FOwner.Grid).DataSource.DataSet.RecordCount <> 0) then - begin - F := TRxDBGrid(FOwner.Grid).DataSource.DataSet.FieldByName(FFieldName); - if Assigned(F) then - begin - if F.DataType in [ftSmallint, ftInteger, ftWord, ftFloat, ftCurrency, - ftDate, ftTime, ftDateTime, ftTimeStamp, ftLargeint, ftBCD] then - begin - if F.DataType in [ftDate, ftTime, ftDateTime, ftTimeStamp] then - begin - if FValueType in [fvtSum, fvtAvg] then - Result := '' - else - if FTestValue = 0 then - Result := '' - else - if FDisplayFormat = '' then - Result := DateToStr(FTestValue) - else - Result := FormatDateTime(FDisplayFormat, FTestValue); - end - else - if F.DataType in [ftSmallint, ftInteger, ftWord, ftLargeint] then - begin - if FDisplayFormat = '' then - Result := IntToStr(Round(FTestValue)) - else - Result := Format(FDisplayFormat, [Round(FTestValue)]); - end - else - begin - if FDisplayFormat <> '' then - Result := FormatFloat(FDisplayFormat, FTestValue) - else - if F.DataType = ftCurrency then - Result := FloatToStrF(FTestValue, ffCurrency, 12, 2) - else - Result := FloatToStr(FTestValue); - end; - end - else - Result := ''; - end - else - Result := ''; - end - else - Result := ''; -end; - -procedure TRxColumnFooter.ResetTestValue; -var - F: TField; -begin - FTestValue := 0; - FCountRec:=0; - - if (ValueType in [fvtMin, fvtMax]) and (TRxDBGrid( - FOwner.Grid).DataSource.DataSet.RecordCount <> 0) then - begin - F := TRxDBGrid(FOwner.Grid).DataSource.DataSet.FieldByName(FFieldName); - if (Assigned(F)) and not (F.IsNull) then - if F.DataType in [ftDate, ftTime, ftDateTime, ftTimeStamp] then - FTestValue := F.AsDateTime - else - FTestValue := F.AsFloat; - end; -end; - -procedure TRxColumnFooter.UpdateTestValue; -var - F: TField; -begin - if ValueType in [fvtSum, fvtAvg, fvtMax, fvtMin] then - begin - F := TRxDBGrid(FOwner.Grid).DataSource.DataSet.FindField(FFieldName); - if Assigned(F) then - begin - if F.DataType in [ftDate, ftTime, ftDateTime, ftTimeStamp] then - begin - case FValueType of - fvtMax: FTestValue := Max(FTestValue, F.AsDateTime); - fvtMin: FTestValue := Min(FTestValue, F.AsDateTime); - end; - end - else - begin - case FValueType of - fvtSum: FTestValue := FTestValue + F.AsFloat; - // fvtAvg: - fvtMax: FTestValue := Max(FTestValue, F.AsFloat); - fvtMin: FTestValue := Min(FTestValue, F.AsFloat); - end; - end; - end; - end; -end; - -function TRxColumnFooter.DeleteTestValue: boolean; -var - F: TField; -begin - Result := True; - if ValueType in [fvtSum, fvtAvg, fvtMax, fvtMin] then - begin - F := TRxDBGrid(FOwner.Grid).DataSource.DataSet.FieldByName(FFieldName); - if (Assigned(F)) and not (F.IsNull) then - if F.DataType in [ftDate, ftTime, ftDateTime, ftTimeStamp] then - Result := not ((FValueType in [fvtMax, fvtMin]) and (FTestValue = F.AsDateTime)) - else - if FValueType in [fvtMax, fvtMin] then - Result := (FTestValue <> F.AsFloat) - else - FTestValue := FTestValue - F.AsFloat; - end; -end; - -function TRxColumnFooter.PostTestValue: boolean; -var - F: TField; -begin - Result := True; - if ValueType in [fvtSum, fvtAvg, fvtMax, fvtMin] then - begin - F := TRxDBGrid(FOwner.Grid).DataSource.DataSet.FieldByName(FFieldName); - if Assigned(F) then - if F.DataType in [ftDate, ftTime, ftDateTime, ftTimeStamp] then - begin - if FValueType in [fvtMax, fvtMin] then - if F.DataSet.State = dsinsert then - begin - if not (F.IsNull) then - case FValueType of - fvtMax: FTestValue := Max(FTestValue, F.AsDateTime); - fvtMin: FTestValue := Min(FTestValue, F.AsDateTime); - end; - end - else - if (F.OldValue <> null) and (FTestValue = TDateTime(F.OldValue)) then - Result := False - else - if not F.IsNull then - case FValueType of - fvtMax: FTestValue := Max(FTestValue, F.AsDateTime); - fvtMin: FTestValue := Min(FTestValue, F.AsDateTime); - end; - end - else - if F.DataSet.State = dsinsert then - begin - if not F.IsNull then - case FValueType of - fvtSum: FTestValue := FTestValue + F.AsFloat; - fvtMax: FTestValue := Max(FTestValue, F.AsFloat); - fvtMin: FTestValue := Min(FTestValue, F.AsFloat); - end; - end - else - if (FValueType in [fvtMax, fvtMin]) and (F.OldValue <> null) and - (FTestValue = Float(F.OldValue)) then - Result := False - else - case FValueType of - fvtSum: - begin - if not F.IsNull then - begin - if F.OldValue <> null then - FTestValue := FTestValue - Float(F.OldValue); - FTestValue := FTestValue + F.AsFloat; - end; - end; - fvtMax: if not F.IsNull then - FTestValue := Max(FTestValue, F.AsFloat); - fvtMin: if not F.IsNull then - FTestValue := Min(FTestValue, F.AsFloat); - end; - end; -end; - -function TRxColumnFooter.ErrorTestValue: boolean; -var - F: TField; -begin - Result := True; - if ValueType in [fvtSum, fvtAvg, fvtMax, fvtMin] then - begin - F := TRxDBGrid(FOwner.Grid).DataSource.DataSet.FieldByName(FFieldName); - if Assigned(F) then - begin - if F.DataType in [ftDate, ftTime, ftDateTime, ftTimeStamp] then - begin - if (FValueType in [fvtMax, fvtMin]) and not (F.IsNull) then - begin - if not (F.IsNull) and (FTestValue = F.AsDateTime) then - Result := False - else - if (F.DataSet.RecordCount <> 0) and (F.OldValue <> null) then - begin - case FValueType of - fvtMax: FTestValue := Max(FTestValue, TDateTime(F.OldValue)); - fvtMin: FTestValue := Min(FTestValue, TDateTime(F.OldValue)); - end; - end; - end; - end - else - if (FValueType in [fvtMax, fvtMin]) and not (F.IsNull) and (FTestValue = F.AsFloat) then - Result := False - else - begin - case FValueType of - fvtSum: - if F.DataSet.RecordCount = 0 then - begin -{ if not F.IsNull then - FTestValue := FTestValue - F.AsFloat;} - { TODO -oalexs : need rewrite this code - where difficult! } - end - else - begin - if F.OldValue <> null then - FTestValue := FTestValue + Float(F.OldValue); - if not F.IsNull then - FTestValue := FTestValue - F.AsFloat; - end; - fvtMax: - if (F.DataSet.RecordCount <> 0) and (F.OldValue <> null) then - FTestValue := Max(FTestValue, Float(F.OldValue)); - fvtMin: - if (F.DataSet.RecordCount <> 0) and (F.OldValue <> null) then - FTestValue := Min(FTestValue, Float(F.OldValue)); - end; - end; - end; - end; -end; - -procedure TRxColumnFooter.UpdateTestValueFromVar(AValue: Variant); -begin - if FValueType in [fvtSum, fvtAvg, fvtMax, fvtMin] then - begin - if (not VarIsEmpty(AValue)) and (AValue <> null) and Assigned(FField) then - begin - if FField.DataType in [ftDate, ftTime, ftDateTime, ftTimeStamp] then - begin - case FValueType of - fvtMax: FTestValue := Max(FTestValue, AValue); - fvtMin: FTestValue := Min(FTestValue, AValue); - end; - end - else - begin - case FValueType of - fvtSum, - fvtAvg: FTestValue := FTestValue + AValue; - fvtMax: FTestValue := Max(FTestValue, AValue); - fvtMin: FTestValue := Min(FTestValue, AValue); - end; - end; - end; - end; -end; - -///! -constructor TRxColumnFooter.Create(Owner: TRxColumn); -begin - inherited Create; - FOwner := Owner; - FTestValue := 0; - FLayout := tlCenter; - - FFont := TFont.Create; - FillDefaultFont; - FFont.OnChange := @FontChanged; -end; - -destructor TRxColumnFooter.Destroy; -begin - FreeThenNil(FFont); - inherited Destroy; -end; -*) - { TFilterListCellEditor } procedure TFilterListCellEditor.WndProc(var TheMessage: TLMessage); diff --git a/components/rx/trunk/rxdbgridexportpdf.pas b/components/rx/trunk/rxdbgridexportpdf.pas index a7edcffb9..ef0c6aa65 100644 --- a/components/rx/trunk/rxdbgridexportpdf.pas +++ b/components/rx/trunk/rxdbgridexportpdf.pas @@ -37,7 +37,7 @@ interface {$IF (FPC_FULLVERSION >= 30101)} uses - Classes, SysUtils, DB, rxdbgrid, LazFreeTypeFontCollection, vclutils, fpPDF; + Classes, SysUtils, DB, rxdbgrid, LazFreeTypeFontCollection, vclutils, Graphics, fpPDF, EasyLazFreeType; type @@ -82,6 +82,7 @@ type FOptions: TRxDBGridExportPdfOptions; FProducerPDF: string; FPdfOptions:TPdfExportOptions; + FCurPage: TPDFPage; FWorkPages:TFPList; FWorkPagesNeedCount:integer; @@ -99,7 +100,10 @@ type FHeaderFont:integer; FBodyFont:integer; FFooterFont:integer; + FExportFontHeader: TFreeTypeFont; + FExportFontBody: TFreeTypeFont; + procedure WriteTextRect(AExportFont:TFreeTypeFont; X, Y, W, H:integer; AText:string; ATextAlign:TAlignment); procedure DoExportTitle; procedure DoExportBody; procedure DoSetupFonts; @@ -129,7 +133,14 @@ type implementation {$IF (FPC_FULLVERSION >= 30101)} -uses rxdconst, FileUtil, forms, LCLIntf, LazFileUtils, EasyLazFreeType; +uses Grids, rxdconst, FileUtil, Forms, Controls, LCLIntf, LazFileUtils, RxDBGridExportPdfSetupUnit; + +function ColorToDdfColor(C:TColor):TARGBColor; +var + A:array [1..4] of byte absolute C; +begin + Result:={A[1] shl 24 +} A[1] shl 16 + A[2] shl 8 + A[3]; +end; { TPdfExportOptions } @@ -170,19 +181,50 @@ begin FPdfOptions.Assign(AValue); end; +procedure TRxDBGridExportPDF.WriteTextRect(AExportFont: TFreeTypeFont; X, Y, W, + H: integer; AText: string; ATextAlign: TAlignment); +var + FTW, FTH: Single; + X1: TPDFFloat; + Y1: TPDFFloat; +begin + FTW:=AExportFont.TextWidth(AText); + FTH:=AExportFont.TextHeight(AText); + case ATextAlign of + taLeftJustify: + begin + Y1:=Y; + X1:=X + constCellPadding; + end; + taRightJustify: + begin + Y1:=Y; + X1:=X + W - FTW - 2; + if X1 < X then + X1:=X; + end; + taCenter: + begin + Y1:=Y; + X1:=(X + W) / 2 - FTW / 2 - constCellPadding; + if X1 < X then + X1:=X; + end; + end; + FCurPage.WriteText(X1, Y1 - FTH, AText); +end; + procedure TRxDBGridExportPDF.DoExportTitle; var - P: TPDFPage; - Pt: TPDFCoord; - i, X, CP, PX: Integer; + i, X, CP: Integer; C: TRxColumn; S: String; PU: TPDFUnitOfMeasure; + WW: Single; begin X:=FPageWidth + FPageMargin.Right; CP:=-1; - PX:=0; - + FCurPage:=nil; for i:=0 to FRxDBGrid.Columns.Count - 1 do begin C:=FRxDBGrid.Columns[i]; @@ -190,19 +232,18 @@ begin if X + C.Width > FPageWidth - FPageMargin.Right then begin Inc(CP); - P:=TPDFPage(FWorkPages[CP]); + FCurPage:=TPDFPage(FWorkPages[CP]); X:=FPageMargin.Left; - PX:=0; end; - Pt.X := X; - Pt.Y := FPosY; - P.SetColor(C.Color); - P.DrawRect(Pt.X, Pt.Y, C.Width, FRxDBGrid.DefaultRowHeight, 1, false, true); + FCurPage.SetColor(ColorToDdfColor(FRxDBGrid.BorderColor), true); + FCurPage.DrawRect(X, FPosY, C.Width, FRxDBGrid.DefaultRowHeight, 1, false, true); - P.SetFont(FHeaderFont, 10); - P.WriteText(Pt.X+2, Pt.Y-10, C.Title.Caption); + FCurPage.SetFont(FHeaderFont, 10); + FExportFontHeader.SizeInPoints:=10; + FCurPage.SetColor(ColorToDdfColor(C.Title.Font.Color), false); + WriteTextRect(FExportFontHeader, X, FPosY, C.Width, FRxDBGrid.DefaultRowHeight, C.Title.Caption, C.Title.Alignment); X:=X + C.Width; end; @@ -213,41 +254,38 @@ end; procedure TRxDBGridExportPDF.DoExportBody; procedure DoWriteRow; var - P: TPDFPage; - Pt: TPDFCoord; i, X, CP: Integer; C: TRxColumn; S: String; begin - X:=FPageMargin.Left; - CP:=0; - P:=TPDFPage(FWorkPages[CP]); + X:=FPageWidth + FPageMargin.Right; + CP:=-1; + FCurPage:=nil; for i:=0 to FRxDBGrid.Columns.Count - 1 do begin C:=FRxDBGrid.Columns[i]; - - - Pt.X := X; - Pt.Y := FPosY; - P.SetColor(C.Color); - P.DrawRect(Pt.X, Pt.Y, C.Width, FRxDBGrid.DefaultRowHeight, 1, false, true); - - - if Assigned(C.Field) then - begin - P.SetFont(FBodyFont, 10); - P.WriteText(Pt.X+2, Pt.Y-10, C.Field.DisplayText); - end; - if X + C.Width > FPageWidth - FPageMargin.Right then begin Inc(CP); - P:=TPDFPage(FWorkPages[CP]); + FCurPage:=TPDFPage(FWorkPages[CP]); X:=FPageMargin.Left; - end - else - Inc(X, C.Width); + end; + + FCurPage.SetColor(ColorToDdfColor(FRxDBGrid.BorderColor), true); //Border + //FCurPage.SetColor(ColorToDdfColor(C.Color), false); // Fill color + FCurPage.DrawRect(X, FPosY, C.Width, FRxDBGrid.DefaultRowHeight, 1, false, true); + + if Assigned(C.Field) then + begin + FCurPage.SetFont(FBodyFont, 10); + FExportFontBody.SizeInPoints:=10; + FCurPage.SetColor(ColorToDdfColor(C.Font.Color), false); + WriteTextRect(FExportFontBody, X, FPosY, C.Width, FRxDBGrid.DefaultRowHeight, C.Field.DisplayText, C.Alignment); + end; + + + X:=X + C.Width; end; end; @@ -269,26 +307,34 @@ procedure TRxDBGridExportPDF.DoSetupFonts; var FM: TCustomFamilyCollectionItem; FIH, FI: TCustomFontCollectionItem; + B: Boolean; begin - + FExportFontHeader:=nil; FFontCollection:=TFreeTypeFontCollection.Create; InitFonts(FFontCollection); - FM:=FFontCollection.Family['Arial']; + FM:=FFontCollection.Family['Liberation Sans']; + if not Assigned(FM) then + FM:=FFontCollection.Family['Arial']; + if Assigned(FM) then begin - FIH:=FM.GetFont(['Bold']); + FIH:=FM.GetFont('Bold'); if Assigned(FIH) then begin + B:=FIH.Bold; FPDFDocument.FontDirectory := ExtractFileDir(FIH.Filename); FHeaderFont := FPDFDocument.AddFont(ExtractFileName(FIH.Filename), FIH.Information[ftiFullName]); + FExportFontHeader:=FIH.CreateFont; end; FI:=FM.GetFont('Regular'); if Assigned(FI) then begin - FPDFDocument.FontDirectory := ExtractFileDir(FIH.Filename); - FBodyFont := FPDFDocument.AddFont(ExtractFileName(FIH.Filename), FIH.Information[ftiFullName]); + B:=FI.Bold; + FPDFDocument.FontDirectory := ExtractFileDir(FI.Filename); + FBodyFont := FPDFDocument.AddFont(ExtractFileName(FI.Filename), FI.Information[ftiFullName]); + FExportFontBody:=FI.CreateFont; end; if not Assigned(FIH) then @@ -299,7 +345,7 @@ begin FFontCollection.Free; if not Assigned(FM) then - raise Exception.Create('Not found arial font'); + raise Exception.Create('Not found Sans font'); end; procedure TRxDBGridExportPDF.DoExportFooter; @@ -310,6 +356,7 @@ end; procedure TRxDBGridExportPDF.DoSetupDocHeader; var W, i: Integer; + C: TRxColumn; begin FPDFDocument.Infos.Title := Application.Title; FPDFDocument.Infos.Author := FAuthorPDF; @@ -335,16 +382,17 @@ begin FPageHeight := PDFPaperSizes[FPdfOptions.FPaperType, 1]; end; - W:=FPageMargin.Left; - for i:=0 to FRxDBGrid.Columns.Count-1 do + W:=FPageWidth + FPageMargin.Right; + FWorkPagesNeedCount:=0; + for i:=0 to FRxDBGrid.Columns.Count - 1 do begin - W:=W + FRxDBGrid.Columns[i].Width; - - if W > FPageWidth - FPageMargin.Right then + C:=FRxDBGrid.Columns[i]; + if W + C.Width > FPageWidth - FPageMargin.Right then begin Inc(FWorkPagesNeedCount); W:=FPageMargin.Left; end; + W:=W + C.Width; end; end; end; @@ -410,6 +458,9 @@ begin FreeAndNil(FWorkPages); FreeAndNil(FPDFDocument); + + if Assigned(FExportFontHeader) then + FreeAndNil(FExportFontHeader); end; if Result and FOpenAfterExport then @@ -418,7 +469,22 @@ end; function TRxDBGridExportPDF.DoSetupTools: boolean; begin - Result:=inherited DoSetupTools; + RxDBGridExportPdfSetupForm:=TRxDBGridExportPdfSetupForm.Create(Application); + RxDBGridExportPdfSetupForm.FileNameEdit1.FileName:=FileName; + RxDBGridExportPdfSetupForm.cbOpenAfterExport.Checked:=FOpenAfterExport; + RxDBGridExportPdfSetupForm.cbExportColumnHeader.Checked:=repExportTitle in FOptions; + + Result:=RxDBGridExportPdfSetupForm.ShowModal = mrOk; + if Result then + begin + FileName:=RxDBGridExportPdfSetupForm.FileNameEdit1.FileName; + FOpenAfterExport:=RxDBGridExportPdfSetupForm.cbOpenAfterExport.Checked; + if RxDBGridExportPdfSetupForm.cbExportColumnHeader.Checked then + FOptions:=FOptions + [repExportTitle] + else + FOptions:=FOptions - [repExportTitle]; + end; + RxDBGridExportPdfSetupForm.Free; end; procedure TRxDBGridExportPDF.DoSaveDocument; diff --git a/components/rx/trunk/rxdbgridexportpdfsetupunit.lfm b/components/rx/trunk/rxdbgridexportpdfsetupunit.lfm new file mode 100644 index 000000000..5e56ee4ee --- /dev/null +++ b/components/rx/trunk/rxdbgridexportpdfsetupunit.lfm @@ -0,0 +1,132 @@ +object RxDBGridExportPdfSetupForm: TRxDBGridExportPdfSetupForm + Left = 544 + Height = 254 + Top = 387 + Width = 518 + Caption = 'Export params' + ClientHeight = 254 + ClientWidth = 518 + OnCreate = FormCreate + LCLVersion = '1.7' + object Label1: TLabel + AnchorSideLeft.Control = Owner + AnchorSideTop.Control = Owner + Left = 6 + Height = 20 + Top = 6 + Width = 105 + BorderSpacing.Around = 6 + Caption = 'Export file name' + FocusControl = FileNameEdit1 + ParentColor = False + end + object FileNameEdit1: TFileNameEdit + AnchorSideLeft.Control = Label1 + AnchorSideTop.Control = Label1 + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = Owner + AnchorSideRight.Side = asrBottom + Left = 12 + Height = 37 + Top = 32 + Width = 500 + Filter = 'All files (*.*)|*.*|LibreOffice/OpenOffice (*.ods)|*.ods|Excell 97-2003|*.xls|Excell 2007-2013|*.xlxs' + FilterIndex = 0 + HideDirectories = False + ButtonWidth = 23 + NumGlyphs = 1 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Around = 6 + MaxLength = 0 + TabOrder = 0 + end + object cbOpenAfterExport: TCheckBox + AnchorSideLeft.Control = Owner + AnchorSideTop.Control = FileNameEdit1 + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 24 + Top = 75 + Width = 141 + BorderSpacing.Around = 6 + Caption = 'Open after export' + TabOrder = 1 + end + object cbExportColumnHeader: TCheckBox + AnchorSideLeft.Control = Owner + AnchorSideTop.Control = cbOpenAfterExport + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 24 + Top = 105 + Width = 167 + BorderSpacing.Around = 6 + Caption = 'Export column header' + TabOrder = 2 + end + object cbExportColumnFooter: TCheckBox + AnchorSideLeft.Control = Owner + AnchorSideTop.Control = cbExportColumnHeader + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 24 + Top = 135 + Width = 162 + BorderSpacing.Around = 6 + Caption = 'Export column footer' + Enabled = False + TabOrder = 3 + end + object cbExportCellColors: TCheckBox + AnchorSideLeft.Control = Owner + AnchorSideTop.Control = cbExportColumnFooter + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 24 + Top = 165 + Width = 138 + BorderSpacing.Around = 6 + Caption = 'Export cell colors' + Enabled = False + TabOrder = 4 + end + object cbOverwriteExisting: TCheckBox + AnchorSideLeft.Control = Label4 + AnchorSideTop.Control = FileNameEdit1 + AnchorSideTop.Side = asrBottom + Left = 265 + Height = 24 + Top = 75 + Width = 168 + BorderSpacing.Around = 6 + Caption = 'Overwrite existing file' + Enabled = False + TabOrder = 5 + end + object ButtonPanel1: TButtonPanel + Left = 6 + Height = 46 + Top = 202 + Width = 506 + OKButton.Name = 'OKButton' + OKButton.DefaultCaption = True + HelpButton.Name = 'HelpButton' + HelpButton.DefaultCaption = True + CloseButton.Name = 'CloseButton' + CloseButton.DefaultCaption = True + CancelButton.Name = 'CancelButton' + CancelButton.DefaultCaption = True + TabOrder = 6 + ShowButtons = [pbOK, pbCancel, pbHelp] + end + object Label4: TLabel + AnchorSideLeft.Control = Owner + AnchorSideLeft.Side = asrCenter + AnchorSideTop.Control = Owner + Left = 259 + Height = 1 + Top = 0 + Width = 1 + ParentColor = False + end +end diff --git a/components/rx/trunk/rxdbgridexportpdfsetupunit.pas b/components/rx/trunk/rxdbgridexportpdfsetupunit.pas new file mode 100644 index 000000000..8d4df39f5 --- /dev/null +++ b/components/rx/trunk/rxdbgridexportpdfsetupunit.pas @@ -0,0 +1,87 @@ +{ TPdfExportOptions unit + + Copyright (C) 2005-2013 Lagunov Aleksey alexs@yandex.ru + original conception from rx library for Delphi (c) + + This library is free software; you can redistribute it and/or modify it + under the terms of the GNU Library General Public License as published by + the Free Software Foundation; either version 2 of the License, or (at your + option) any later version with the following modification: + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules,and + to copy and distribute the resulting executable under terms of your choice, + provided that you also meet, for each linked independent module, the terms + and conditions of the license of that module. An independent module is a + module which is not derived from or based on this library. If you modify + this library, you may extend this exception to your version of the library, + but you are not obligated to do so. If you do not wish to do so, delete this + exception statement from your version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License + for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +} + +unit RxDBGridExportPdfSetupUnit; + +{$mode objfpc}{$H+} + +interface + +uses + Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, + EditBtn, ButtonPanel; + +type + + { TRxDBGridExportPdfSetupForm } + + TRxDBGridExportPdfSetupForm = class(TForm) + ButtonPanel1: TButtonPanel; + cbExportCellColors: TCheckBox; + cbExportColumnFooter: TCheckBox; + cbExportColumnHeader: TCheckBox; + cbOpenAfterExport: TCheckBox; + cbOverwriteExisting: TCheckBox; + FileNameEdit1: TFileNameEdit; + Label1: TLabel; + Label4: TLabel; + procedure FormCreate(Sender: TObject); + private + { private declarations } + public + { public declarations } + end; + +var + RxDBGridExportPdfSetupForm: TRxDBGridExportPdfSetupForm; + +implementation +uses rxdconst; + +{$R *.lfm} + +{ TRxDBGridExportPdfSetupForm } + +procedure TRxDBGridExportPdfSetupForm.FormCreate(Sender: TObject); +begin + Caption:=sExportParams; + Label1.Caption:=sExportFileName; + //Label3.Caption:=sPageName; + cbOpenAfterExport.Caption:=sOpenAfterExport; + cbExportColumnHeader.Caption:=sExportColumnHeader; + cbExportColumnFooter.Caption:=sExportColumnFooter; + cbExportCellColors.Caption:=sExportCellColors; + cbOverwriteExisting.Caption:=sOverwriteExisting; + //cbExportFormula.Caption:=sExportFormula; +end; + +end. + diff --git a/components/rx/trunk/rxdbgridexportspreadsheet_paramsunit.lfm b/components/rx/trunk/rxdbgridexportspreadsheet_paramsunit.lfm index 4c491e349..01bde6a9e 100644 --- a/components/rx/trunk/rxdbgridexportspreadsheet_paramsunit.lfm +++ b/components/rx/trunk/rxdbgridexportspreadsheet_paramsunit.lfm @@ -15,7 +15,7 @@ object RxDBGridExportSpreadSheet_ParamsForm: TRxDBGridExportSpreadSheet_ParamsFo Left = 6 Height = 20 Top = 6 - Width = 106 + Width = 105 BorderSpacing.Around = 6 Caption = 'Export file name' FocusControl = FileNameEdit1 @@ -28,7 +28,7 @@ object RxDBGridExportSpreadSheet_ParamsForm: TRxDBGridExportSpreadSheet_ParamsFo AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 12 - Height = 30 + Height = 37 Top = 32 Width = 530 Filter = 'All files (*.*)|*.*|LibreOffice/OpenOffice (*.ods)|*.ods|Excell 97-2003|*.xls|Excell 2007-2013|*.xlxs' @@ -39,6 +39,7 @@ object RxDBGridExportSpreadSheet_ParamsForm: TRxDBGridExportSpreadSheet_ParamsFo Anchors = [akTop, akLeft, akRight] BorderSpacing.Around = 6 MaxLength = 0 + Spacing = 0 TabOrder = 0 end object Label3: TLabel @@ -47,7 +48,7 @@ object RxDBGridExportSpreadSheet_ParamsForm: TRxDBGridExportSpreadSheet_ParamsFo AnchorSideTop.Side = asrBottom Left = 280 Height = 20 - Top = 128 + Top = 135 Width = 71 BorderSpacing.Around = 6 Caption = 'Page name' @@ -61,8 +62,8 @@ object RxDBGridExportSpreadSheet_ParamsForm: TRxDBGridExportSpreadSheet_ParamsFo AnchorSideRight.Control = Owner AnchorSideRight.Side = asrBottom Left = 286 - Height = 30 - Top = 154 + Height = 37 + Top = 161 Width = 256 Anchors = [akTop, akLeft, akRight] BorderSpacing.Around = 6 @@ -74,7 +75,7 @@ object RxDBGridExportSpreadSheet_ParamsForm: TRxDBGridExportSpreadSheet_ParamsFo AnchorSideTop.Side = asrBottom Left = 6 Height = 24 - Top = 128 + Top = 135 Width = 162 BorderSpacing.Around = 6 Caption = 'Export column footer' @@ -86,7 +87,7 @@ object RxDBGridExportSpreadSheet_ParamsForm: TRxDBGridExportSpreadSheet_ParamsFo AnchorSideTop.Side = asrBottom Left = 6 Height = 24 - Top = 68 + Top = 75 Width = 141 BorderSpacing.Around = 6 Caption = 'Open after export' @@ -94,8 +95,8 @@ object RxDBGridExportSpreadSheet_ParamsForm: TRxDBGridExportSpreadSheet_ParamsFo end object ButtonPanel1: TButtonPanel Left = 6 - Height = 42 - Top = 198 + Height = 46 + Top = 194 Width = 536 OKButton.Name = 'OKButton' OKButton.DefaultCaption = True @@ -114,8 +115,8 @@ object RxDBGridExportSpreadSheet_ParamsForm: TRxDBGridExportSpreadSheet_ParamsFo AnchorSideTop.Side = asrBottom Left = 6 Height = 24 - Top = 98 - Width = 166 + Top = 105 + Width = 167 BorderSpacing.Around = 6 Caption = 'Export column header' TabOrder = 2 @@ -126,8 +127,8 @@ object RxDBGridExportSpreadSheet_ParamsForm: TRxDBGridExportSpreadSheet_ParamsFo AnchorSideTop.Side = asrBottom Left = 6 Height = 24 - Top = 158 - Width = 137 + Top = 165 + Width = 138 BorderSpacing.Around = 6 Caption = 'Export cell colors' TabOrder = 4 @@ -148,7 +149,7 @@ object RxDBGridExportSpreadSheet_ParamsForm: TRxDBGridExportSpreadSheet_ParamsFo AnchorSideTop.Side = asrBottom Left = 280 Height = 24 - Top = 98 + Top = 105 Width = 168 BorderSpacing.Around = 6 Caption = 'Overwrite existing file' @@ -160,8 +161,8 @@ object RxDBGridExportSpreadSheet_ParamsForm: TRxDBGridExportSpreadSheet_ParamsFo AnchorSideTop.Side = asrBottom Left = 280 Height = 24 - Top = 68 - Width = 120 + Top = 75 + Width = 121 BorderSpacing.Around = 6 Caption = 'Export formula' TabOrder = 5 diff --git a/components/rx/trunk/rxnew.lpk b/components/rx/trunk/rxnew.lpk index 28088cbd9..6a48820fd 100644 --- a/components/rx/trunk/rxnew.lpk +++ b/components/rx/trunk/rxnew.lpk @@ -26,7 +26,7 @@ translate to Lazarus by alexs in 2005 - 2016 "/> <License Value="LGPL"/> <Version Major="2" Minor="9" Release="3" Build="192"/> - <Files Count="68"> + <Files Count="70"> <Item1> <Filename Value="autopanel.pas"/> <UnitName Value="AutoPanel"/> @@ -302,6 +302,14 @@ translate to Lazarus by alexs in 2005 - 2016 <Filename Value="rxdbgridexportpdf.pas"/> <UnitName Value="RxDBGridExportPdf"/> </Item68> + <Item69> + <Filename Value="rxdbgridexportpdfsetupunit.lfm"/> + <Type Value="LFM"/> + </Item69> + <Item70> + <Filename Value="rxdbgridexportpdfsetupunit.pas"/> + <UnitName Value="RxDBGridExportPdfSetupUnit"/> + </Item70> </Files> <LazDoc Paths="docs;\usr\local\share\lazarus\components\rxnew\docs"/> <i18n> diff --git a/components/rx/trunk/rxnew.pas b/components/rx/trunk/rxnew.pas index c0aaabc30..9798a0882 100644 --- a/components/rx/trunk/rxnew.pas +++ b/components/rx/trunk/rxnew.pas @@ -20,7 +20,7 @@ uses ex_rx_bin_datapacket, ex_rx_datapacket, ex_rx_xml_datapacket, rxsortby, RxMDI, RxIniPropStorage, rxDateRangeEditUnit, RxDBGridFooterTools, rxdbgridfootertools_setup, rxShortCutUnit, RxDBGridExportPdf, - LazarusPackageIntf; + RxDBGridExportPdfSetupUnit, LazarusPackageIntf; implementation