RxFPC: TRxDBGridPrint support merged cells

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5936 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
alexs75 2017-06-13 14:01:18 +00:00
parent 024c39833a
commit 22f08434bf
7 changed files with 324 additions and 188 deletions

View File

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

View File

@ -3,7 +3,7 @@
<ProjectSession>
<Version Value="10"/>
<BuildModes Active="Default"/>
<Units Count="23">
<Units Count="26">
<Unit0>
<Filename Value="project1.lpr"/>
<IsPartOfProject Value="True"/>
@ -11,7 +11,7 @@
<WindowIndex Value="-1"/>
<TopLine Value="-1"/>
<CursorPos X="-1" Y="-1"/>
<UsageCount Value="25"/>
<UsageCount Value="30"/>
</Unit0>
<Unit1>
<Filename Value="unit1.pas"/>
@ -20,19 +20,18 @@
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="Unit1"/>
<IsVisibleTab Value="True"/>
<TopLine Value="7"/>
<CursorPos X="5" Y="25"/>
<UsageCount Value="25"/>
<TopLine Value="70"/>
<CursorPos X="60" Y="87"/>
<UsageCount Value="30"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
</Unit1>
<Unit2>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<EditorIndex Value="4"/>
<EditorIndex Value="6"/>
<TopLine Value="6312"/>
<CursorPos Y="6333"/>
<UsageCount Value="11"/>
<UsageCount Value="14"/>
<Bookmarks Count="1">
<Item0 X="54" Y="6391" ID="1"/>
</Bookmarks>
@ -41,19 +40,19 @@
<Unit3>
<Filename Value="../../../../../lcl/grids.pas"/>
<UnitName Value="Grids"/>
<EditorIndex Value="8"/>
<TopLine Value="116"/>
<CursorPos X="3" Y="134"/>
<UsageCount Value="11"/>
<EditorIndex Value="10"/>
<TopLine Value="11692"/>
<CursorPos Y="11717"/>
<UsageCount Value="14"/>
<Loaded Value="True"/>
</Unit3>
<Unit4>
<Filename Value="../../../../../lcl/dbgrids.pas"/>
<UnitName Value="DBGrids"/>
<EditorIndex Value="7"/>
<EditorIndex Value="9"/>
<TopLine Value="475"/>
<CursorPos X="14" Y="491"/>
<UsageCount Value="11"/>
<UsageCount Value="14"/>
<Loaded Value="True"/>
</Unit4>
<Unit5>
@ -61,27 +60,27 @@
<EditorIndex Value="-1"/>
<TopLine Value="16"/>
<CursorPos X="11" Y="25"/>
<UsageCount Value="10"/>
<UsageCount Value="9"/>
</Unit5>
<Unit6>
<Filename Value="../../../../install/source/fpcsrc/rtl/inc/systemh.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="834"/>
<CursorPos Y="848"/>
<UsageCount Value="10"/>
<UsageCount Value="9"/>
</Unit6>
<Unit7>
<Filename Value="../../../rxtools/rxutils.pas"/>
<EditorIndex Value="5"/>
<EditorIndex Value="7"/>
<TopLine Value="64"/>
<CursorPos X="2" Y="91"/>
<UsageCount Value="11"/>
<UsageCount Value="14"/>
<Loaded Value="True"/>
</Unit7>
<Unit8>
<Filename Value="../../../rxtools/rxstrutils.pas"/>
<EditorIndex Value="6"/>
<UsageCount Value="11"/>
<EditorIndex Value="8"/>
<UsageCount Value="14"/>
<Loaded Value="True"/>
</Unit8>
<Unit9>
@ -89,28 +88,28 @@
<EditorIndex Value="-1"/>
<TopLine Value="49"/>
<CursorPos X="8" Y="35"/>
<UsageCount Value="10"/>
<UsageCount Value="9"/>
</Unit9>
<Unit10>
<Filename Value="../../../../install/source/fpcsrc/packages/fcl-db/src/base/db.pas"/>
<EditorIndex Value="-1"/>
<TopLine Value="1783"/>
<CursorPos X="15" Y="1801"/>
<UsageCount Value="10"/>
<UsageCount Value="9"/>
</Unit10>
<Unit11>
<Filename Value="../../../../install/source/fpcsrc/packages/fcl-db/src/base/datasource.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="146"/>
<CursorPos X="48" Y="149"/>
<UsageCount Value="10"/>
<UsageCount Value="9"/>
</Unit11>
<Unit12>
<Filename Value="../../../../../lcl/include/wincontrol.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="8050"/>
<CursorPos Y="8080"/>
<UsageCount Value="10"/>
<UsageCount Value="9"/>
</Unit12>
<Unit13>
<Filename Value="../../../../../lcl/lclproc.pas"/>
@ -118,21 +117,21 @@
<EditorIndex Value="-1"/>
<TopLine Value="899"/>
<CursorPos Y="918"/>
<UsageCount Value="10"/>
<UsageCount Value="9"/>
</Unit13>
<Unit14>
<Filename Value="../../../../../lcl/include/control.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="3877"/>
<CursorPos Y="3897"/>
<UsageCount Value="10"/>
<UsageCount Value="9"/>
</Unit14>
<Unit15>
<Filename Value="../../../../../lcl/include/canvas.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="1195"/>
<CursorPos Y="1212"/>
<UsageCount Value="10"/>
<UsageCount Value="9"/>
</Unit15>
<Unit16>
<Filename Value="../../../../../lcl/graphics.pp"/>
@ -140,36 +139,36 @@
<EditorIndex Value="-1"/>
<TopLine Value="1193"/>
<CursorPos X="15" Y="1210"/>
<UsageCount Value="10"/>
<UsageCount Value="9"/>
</Unit16>
<Unit17>
<Filename Value="/home/install/source/fpcsrc/rtl/objpas/classes/classesh.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="72"/>
<CursorPos X="30" Y="91"/>
<UsageCount Value="10"/>
<UsageCount Value="9"/>
</Unit17>
<Unit18>
<Filename Value="../../../../../lcl/include/winapi.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="197"/>
<CursorPos Y="216"/>
<UsageCount Value="10"/>
<UsageCount Value="9"/>
</Unit18>
<Unit19>
<Filename Value="../../../../../lcl/interfaces/gtk2/gtk2winapi.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="2377"/>
<CursorPos X="3" Y="2395"/>
<UsageCount Value="10"/>
<UsageCount Value="9"/>
</Unit19>
<Unit20>
<Filename Value="../../../rxdbgrid_export_spreadsheet/rxdbgridexportspreadsheet.pas"/>
<UnitName Value="RxDBGridExportSpreadSheet"/>
<EditorIndex Value="1"/>
<EditorIndex Value="4"/>
<TopLine Value="564"/>
<CursorPos X="5" Y="594"/>
<UsageCount Value="10"/>
<CursorPos X="44" Y="595"/>
<UsageCount Value="13"/>
<Loaded Value="True"/>
</Unit20>
<Unit21>
@ -178,146 +177,185 @@
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="RxDBGridExportSpreadSheet_ParamsUnit"/>
<EditorIndex Value="2"/>
<EditorIndex Value="-1"/>
<TopLine Value="58"/>
<CursorPos X="25" Y="89"/>
<UsageCount Value="10"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
</Unit21>
<Unit22>
<Filename Value="../../../rxtools/rxdconst.pas"/>
<EditorIndex Value="3"/>
<EditorIndex Value="5"/>
<TopLine Value="172"/>
<CursorPos X="44" Y="192"/>
<UsageCount Value="10"/>
<CursorPos X="14" Y="190"/>
<UsageCount Value="13"/>
<Loaded Value="True"/>
</Unit22>
<Unit23>
<Filename Value="../../../rxdbgrid_print/rxdbgridprintgrid.pas"/>
<UnitName Value="RxDBGridPrintGrid"/>
<EditorIndex Value="1"/>
<TopLine Value="314"/>
<CursorPos X="82" Y="332"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit23>
<Unit24>
<Filename Value="../../../../lazreport/source/lr_class.pas"/>
<UnitName Value="LR_Class"/>
<EditorIndex Value="3"/>
<TopLine Value="11808"/>
<CursorPos Y="11826"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit24>
<Unit25>
<Filename Value="../../../rxdbgrid_print/rxdbgridprintgrid_setupunit.pas"/>
<ComponentName Value="RxDBGridPrintGrid_SetupForm"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="RxDBGridPrintGrid_SetupUnit"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="2"/>
<TopLine Value="69"/>
<CursorPos X="36" Y="87"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
</Unit25>
</Units>
<JumpHistory Count="30" HistoryIndex="29">
<Position1>
<Filename Value="../../../rxdbgrid_export_spreadsheet/rxdbgridexportspreadsheet.pas"/>
<Caret Line="219" Column="5" TopLine="151"/>
<Filename Value="../../../rxdbgrid_print/rxdbgridprintgrid.pas"/>
<Caret Line="343" TopLine="315"/>
</Position1>
<Position2>
<Filename Value="../../../rxdbgrid_export_spreadsheet/rxdbgridexportspreadsheet.pas"/>
<Caret Line="141" TopLine="123"/>
<Filename Value="../../../rxdbgrid_print/rxdbgridprintgrid.pas"/>
<Caret Line="344" TopLine="316"/>
</Position2>
<Position3>
<Filename Value="../../../rxdbgrid_export_spreadsheet/rxdbgridexportspreadsheet.pas"/>
<Caret Line="142" TopLine="123"/>
<Filename Value="../../../rxdbgrid_print/rxdbgridprintgrid.pas"/>
<Caret Line="345" TopLine="317"/>
</Position3>
<Position4>
<Filename Value="../../../rxdbgrid_export_spreadsheet/rxdbgridexportspreadsheet.pas"/>
<Caret Line="143" TopLine="123"/>
<Filename Value="../../../rxdbgrid_print/rxdbgridprintgrid.pas"/>
<Caret Line="348" TopLine="335"/>
</Position4>
<Position5>
<Filename Value="../../../rxdbgrid_export_spreadsheet/rxdbgridexportspreadsheet.pas"/>
<Caret Line="146" Column="34" TopLine="123"/>
<Filename Value="../../../rxdbgrid_print/rxdbgridprintgrid.pas"/>
<Caret Line="332" TopLine="312"/>
</Position5>
<Position6>
<Filename Value="../../../rxdbgrid_export_spreadsheet/rxdbgridexportspreadsheet.pas"/>
<Caret Line="144" Column="30" TopLine="130"/>
<Filename Value="../../../rxdbgrid_print/rxdbgridprintgrid.pas"/>
<Caret Line="334" TopLine="327"/>
</Position6>
<Position7>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="957" Column="14" TopLine="940"/>
<Filename Value="../../../rxdbgrid_print/rxdbgridprintgrid.pas"/>
<Caret Line="336" TopLine="327"/>
</Position7>
<Position8>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="6319" Column="3" TopLine="6314"/>
<Filename Value="../../../rxdbgrid_print/rxdbgridprintgrid.pas"/>
<Caret Line="354" TopLine="327"/>
</Position8>
<Position9>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="6326" TopLine="6314"/>
<Filename Value="../../../rxdbgrid_print/rxdbgridprintgrid.pas"/>
<Caret Line="334" TopLine="318"/>
</Position9>
<Position10>
<Filename Value="../../../rxdbgrid_export_spreadsheet/rxdbgridexportspreadsheet.pas"/>
<Caret Line="203" Column="7" TopLine="126"/>
<Filename Value="../../../rxdbgrid_print/rxdbgridprintgrid.pas"/>
<Caret Line="326" Column="7" TopLine="318"/>
</Position10>
<Position11>
<Filename Value="../../../rxdbgrid_export_spreadsheet/rxdbgridexportspreadsheet.pas"/>
<Caret Line="144" TopLine="126"/>
<Filename Value="../../../rxdbgrid_print/rxdbgridprintgrid.pas"/>
<Caret Line="332" TopLine="318"/>
</Position11>
<Position12>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="6319" TopLine="6312"/>
<Filename Value="../../../rxdbgrid_print/rxdbgridprintgrid.pas"/>
<Caret Line="363" TopLine="304"/>
</Position12>
<Position13>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="6320" TopLine="6312"/>
<Filename Value="../../../rxdbgrid_print/rxdbgridprintgrid.pas"/>
<Caret Line="332" TopLine="320"/>
</Position13>
<Position14>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="6321" TopLine="6312"/>
<Filename Value="../../../rxdbgrid_print/rxdbgridprintgrid.pas"/>
<Caret Line="363" TopLine="331"/>
</Position14>
<Position15>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="6322" TopLine="6312"/>
<Filename Value="../../../rxdbgrid_print/rxdbgridprintgrid.pas"/>
<Caret Line="332" TopLine="326"/>
</Position15>
<Position16>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="6324" TopLine="6312"/>
<Filename Value="../../../rxdbgrid_print/rxdbgridprintgrid.pas"/>
<Caret Line="334" TopLine="314"/>
</Position16>
<Position17>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="6326" TopLine="6312"/>
<Filename Value="../../../rxdbgrid_print/rxdbgridprintgrid.pas"/>
<Caret Line="365" TopLine="332"/>
</Position17>
<Position18>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="6327" TopLine="6312"/>
<Filename Value="../../../rxdbgrid_print/rxdbgridprintgrid.pas"/>
<Caret Line="370" TopLine="353"/>
</Position18>
<Position19>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="6328" TopLine="6312"/>
<Filename Value="unit1.pas"/>
<Caret Line="87" Column="52" TopLine="76"/>
</Position19>
<Position20>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="6330" TopLine="6312"/>
<Filename Value="../../../rxdbgrid_print/rxdbgridprintgrid.pas"/>
<Caret Line="332" Column="23" TopLine="315"/>
</Position20>
<Position21>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="6331" TopLine="6312"/>
<Filename Value="../../../rxdbgrid_print/rxdbgridprintgrid.pas"/>
<Caret Line="97" Column="15" TopLine="76"/>
</Position21>
<Position22>
<Filename Value="../../../rxdb/rxdbgrid.pas"/>
<Caret Line="6333" TopLine="6312"/>
<Filename Value="../../../rxdbgrid_print/rxdbgridprintgrid.pas"/>
<Caret Line="484" Column="3" TopLine="479"/>
</Position22>
<Position23>
<Filename Value="../../../rxdbgrid_export_spreadsheet/rxdbgridexportspreadsheet.pas"/>
<Caret Line="146" TopLine="126"/>
<Filename Value="../../../rxdbgrid_print/rxdbgridprintgrid_setupunit.pas"/>
<Caret Line="46" Column="3" TopLine="29"/>
</Position23>
<Position24>
<Filename Value="../../../rxdbgrid_export_spreadsheet/rxdbgridexportspreadsheet.pas"/>
<Caret Line="136" Column="30" TopLine="126"/>
<Filename Value="../../../rxdbgrid_print/rxdbgridprintgrid.pas"/>
<Caret Line="536" TopLine="514"/>
</Position24>
<Position25>
<Filename Value="../../../rxdbgrid_export_spreadsheet/rxdbgridexportspreadsheet.pas"/>
<Caret Line="144" Column="69" TopLine="136"/>
<Filename Value="../../../rxdbgrid_print/rxdbgridprintgrid.pas"/>
<Caret Line="90" Column="14" TopLine="81"/>
</Position25>
<Position26>
<Filename Value="../../../rxdbgrid_export_spreadsheet/rxdbgridexportspreadsheet.pas"/>
<Caret Line="83" Column="15" TopLine="65"/>
<Filename Value="../../../rxdbgrid_print/rxdbgridprintgrid.pas"/>
<Caret Line="245" Column="3" TopLine="237"/>
</Position26>
<Position27>
<Filename Value="../../../rxdbgrid_export_spreadsheet/rxdbgridexportspreadsheet.pas"/>
<Caret Line="555" Column="3" TopLine="550"/>
<Filename Value="../../../rxdbgrid_print/rxdbgridprintgrid.pas"/>
<Caret Line="91" Column="15" TopLine="75"/>
</Position27>
<Position28>
<Filename Value="../../../rxdbgrid_export_spreadsheet/rxdbgridexportspreadsheet_paramsunit.pas"/>
<Caret Line="55" Column="5" TopLine="38"/>
<Filename Value="../../../rxdbgrid_print/rxdbgridprintgrid.pas"/>
<Caret Line="275" Column="3" TopLine="268"/>
</Position28>
<Position29>
<Filename Value="../../../rxdbgrid_export_spreadsheet/rxdbgridexportspreadsheet_paramsunit.pas"/>
<Caret Line="62" Column="17" TopLine="38"/>
<Filename Value="../../../rxdbgrid_print/rxdbgridprintgrid.pas"/>
<Caret Line="93" Column="28" TopLine="69"/>
</Position29>
<Position30>
<Filename Value="../../../rxdbgrid_export_spreadsheet/rxdbgridexportspreadsheet_paramsunit.pas"/>
<Caret Line="89" Column="25" TopLine="58"/>
<Filename Value="../../../rxdbgrid_print/rxdbgridprintgrid_setupunit.pas"/>
<Caret Line="63" Column="32" TopLine="44"/>
</Position30>
</JumpHistory>
</ProjectSession>
<Debugging>
<BreakPoints Count="1">
<Item1>
<Kind Value="bpkSource"/>
<WatchScope Value="wpsLocal"/>
<WatchKind Value="wpkWrite"/>
<Source Value="../../../rxdbgrid_print/rxdbgridprintgrid.pas"/>
<Line Value="370"/>
</Item1>
</BreakPoints>
<Watches Count="4">
<Item1>
<Expression Value="fRect"/>

View File

@ -10,8 +10,8 @@ object Form1: TForm1
LCLVersion = '1.9.0.0'
object RxDBGrid1: TRxDBGrid
Left = 0
Height = 566
Top = 54
Height = 570
Top = 50
Width = 770
ColumnDefValues.BlobText = '(данные)'
TitleButtons = False
@ -121,7 +121,7 @@ object Form1: TForm1
FooterOptions.DrawFullLine = False
SearchOptions.QuickSearchOptions = [loCaseInsensitive, loPartialKey]
SearchOptions.FromStart = False
OptionsRx = [rdgAllowColumnsForm, rdgAllowDialogFind, rdgAllowQuickFilter]
OptionsRx = [rdgAllowColumnsForm, rdgAllowDialogFind, rdgAllowQuickFilter, rdgAllowToolMenu]
Align = alClient
Color = clWindow
DrawFullLine = False
@ -135,12 +135,12 @@ object Form1: TForm1
end
object Panel1: TPanel
Left = 0
Height = 54
Height = 50
Top = 0
Width = 770
Align = alTop
AutoSize = True
ClientHeight = 54
ClientHeight = 50
ClientWidth = 770
TabOrder = 1
object CheckBox1: TCheckBox
@ -159,7 +159,7 @@ object Form1: TForm1
AnchorSideTop.Control = Panel1
AnchorSideRight.Control = Panel1
AnchorSideRight.Side = asrBottom
Left = 690
Left = 694
Height = 36
Top = 7
Width = 69
@ -170,6 +170,20 @@ object Form1: TForm1
OnClick = Button1Click
TabOrder = 1
end
object Button2: TButton
AnchorSideTop.Control = Panel1
AnchorSideRight.Control = Button1
Left = 643
Height = 36
Top = 7
Width = 45
Anchors = [akTop, akRight]
AutoSize = True
BorderSpacing.Around = 6
Caption = 'Print'
OnClick = Button2Click
TabOrder = 2
end
end
object rxData: TRxMemoryData
FieldDefs = <
@ -235,4 +249,15 @@ object Form1: TForm1
Left = 336
Top = 165
end
object RxDBGridPrint1: TRxDBGridPrint
RxDBGrid = RxDBGrid1
Caption = 'Печать списка'
ShowSetupForm = True
Options = [rxpoShowTitle, rxpoShowFooter, rxpoShowGridColor, rxpoShowFooterColor, rxpoShowReportTitle, rxpoHideZeroValues]
ShowProgress = True
ReportTitle = 'A'
ShowColumnHeaderOnAllPage = True
Left = 336
Top = 208
end
end

View File

@ -6,7 +6,8 @@ interface
uses
Classes, SysUtils, FileUtil, rxdbgrid, rxmemds, RxDBGridExportSpreadSheet,
Forms, Controls, Graphics, Dialogs, ExtCtrls, StdCtrls, db, Grids, DBGrids;
RxDBGridPrintGrid, Forms, Controls, Graphics, Dialogs, ExtCtrls, StdCtrls, db,
Grids, DBGrids;
type
@ -14,6 +15,7 @@ type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
CheckBox1: TCheckBox;
dsData: TDataSource;
Panel1: TPanel;
@ -23,7 +25,9 @@ type
RxDBGrid1: TRxDBGrid;
rxData: TRxMemoryData;
RxDBGridExportSpreadSheet1: TRxDBGridExportSpreadSheet;
RxDBGridPrint1: TRxDBGridPrint;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure CheckBox1Change(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure RxDBGrid1Columns0DrawColumnCell(Sender: TObject;
@ -79,8 +83,8 @@ begin
begin
ALeft:=1;
ARight:=3;
{ if rxDataCODE.AsInteger > 10 then
AColumn:=RxDBGrid1.ColumnByFieldName('DATE');}
{ if rxDataCODE.AsInteger > 10 then
ADisplayColumn:=RxDBGrid1.ColumnByFieldName('DATE');}
end;
end;
@ -97,5 +101,10 @@ begin
RxDBGridExportSpreadSheet1.Execute;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
RxDBGridPrint1.Execute;
end;
end.

View File

@ -45,7 +45,8 @@ type
rxpoShowGridColor,
rxpoShowFooterColor,
rxpoShowReportTitle,
rxpoHideZeroValues
rxpoHideZeroValues,
rxpoColSpanning
);
TRxDBGridPrintOptions = set of TRxDBGridPrintOption;
@ -301,15 +302,25 @@ procedure TRxDBGridPrint.OnEnterRect(Memo: TStringList; View: TfrView);
var
i, k: Integer;
F:TRxColInfo;
FDataField:TField;
FDataCollumn:TRxColumn;
S: String;
C:TColor;
J: Integer;
J, L, R: Integer;
begin
i := FColumnDataset.RecNo;
View.Visible:=true;
FDataField:=nil;
FDataCollumn:=nil;
if (i >= 0) and (i < FRxColInfoList.Count) then
begin
F:=TRxColInfo(FRxColInfoList[i]);
if Assigned(F) then
FDataCollumn:=F.Col;
if Assigned(FDataCollumn) then
FDataField:=FDataCollumn.Field;
View.dx := F.ColWidth;
if Assigned(F.Col) and (Memo.Count>0) then
@ -317,30 +328,72 @@ begin
S:=Memo[0];
if (S='[Cell]') and Assigned(F.Col.Field) then
begin
if (rdgColSpanning in RxDBGrid.OptionsRx) and (rxpoColSpanning in Options) then
begin
if RxDBGrid.IsMerged(I + 1, L, R, FDataCollumn) then
begin
if I + 1 = L then
begin
if Assigned(FDataCollumn) then
FDataField:=FDataCollumn.Field
else
begin
if Assigned(F) then
FDataCollumn:=F.Col;
if Assigned(FDataCollumn) then
FDataField:=FDataCollumn.Field;
end;
for j:=L + 1 to R do
if FRxColInfoList.Count > j - 1 then
View.dx := View.dx + TRxColInfo(FRxColInfoList[j - 1]).ColWidth;
end
else
begin
View.Visible:=false;
Memo[0] := '';
exit;
end;
end
else
begin
if Assigned(F) then
FDataCollumn:=F.Col;
if Assigned(FDataCollumn) then
FDataField:=FDataCollumn.Field;
end
end;
if not Assigned(FDataCollumn) then
begin
C:=0;
end;
if rxpoShowGridColor in FOptions then
begin
C:=F.Col.Color;
C:=FDataCollumn.Color;
if Assigned(RxDBGrid.OnGetCellProps) then
RxDBGrid.OnGetCellProps(RxDBGrid, F.Col.Field, TfrMemoView(View).Font, C);
RxDBGrid.OnGetCellProps(RxDBGrid, FDataField, TfrMemoView(View).Font, C);
if C = clWindow then
C := clNone;
TfrMemoView(View).FillColor:=C;
end;
S:=F.Col.Field.DisplayText;
if Assigned(F.Col) and (F.Col.KeyList.Count > 0) and (F.Col.PickList.Count > 0) then
S:= FDataField.DisplayText; //F.Col.Field.DisplayText;
if Assigned(FDataCollumn) and (FDataCollumn.KeyList.Count > 0) and (FDataCollumn.PickList.Count > 0) then
begin
J := F.Col.KeyList.IndexOf(S);
if (J >= 0) and (J < F.Col.PickList.Count) then
S := F.Col.PickList[j];
J := FDataCollumn.KeyList.IndexOf(S);
if (J >= 0) and (J < FDataCollumn.PickList.Count) then
S := FDataCollumn.PickList[j];
end
else
if (rxpoHideZeroValues in FOptions) and Assigned(F.Col.Field) and (F.Col.Field.DataType in [ftSmallint, ftInteger, ftWord,
ftFloat, ftCurrency, ftLargeint]) and (F.Col.Field.AsFloat = 0) then
if (rxpoHideZeroValues in FOptions) and Assigned(FDataField) and (FDataField.DataType in [ftSmallint, ftInteger, ftWord,
ftFloat, ftCurrency, ftLargeint]) and (FDataField.AsFloat = 0) then
S:='';
Memo[0] := S;
TfrMemoView(View).Alignment:=F.Col.Alignment;
TfrMemoView(View).Alignment:=FDataCollumn.Alignment;
end else
if Copy(S, 1, 7) = 'Header_' then
begin
@ -446,6 +499,7 @@ begin
RxDBGridPrintGrid_SetupForm.CheckGroup1.Checked[3]:=rxpoShowGridColor in FOptions;
RxDBGridPrintGrid_SetupForm.CheckGroup1.Checked[4]:=rxpoShowReportTitle in FOptions;
RxDBGridPrintGrid_SetupForm.CheckGroup1.Checked[5]:=rxpoHideZeroValues in FOptions;
RxDBGridPrintGrid_SetupForm.CheckGroup1.Checked[6]:=rxpoColSpanning in FOptions;
Result:=RxDBGridPrintGrid_SetupForm.ShowModal = mrOk;
if Result then
@ -477,6 +531,9 @@ begin
if RxDBGridPrintGrid_SetupForm.CheckGroup1.Checked[5] then
FOptions:=FOptions + [rxpoHideZeroValues];
if RxDBGridPrintGrid_SetupForm.CheckGroup1.Checked[6] then
FOptions:=FOptions + [rxpoColSpanning];
FShowColumnHeaderOnAllPage:=RxDBGridPrintGrid_SetupForm.CheckBox1.Checked;
end;
RxDBGridPrintGrid_SetupForm.Free;

View File

@ -1,39 +1,38 @@
object RxDBGridPrintGrid_SetupForm: TRxDBGridPrintGrid_SetupForm
Left = 720
Height = 344
Height = 347
Top = 303
Width = 468
Width = 489
Caption = 'Print grid setup'
ClientHeight = 344
ClientWidth = 468
ClientHeight = 347
ClientWidth = 489
OnCreate = FormCreate
Position = poScreenCenter
LCLVersion = '1.3'
LCLVersion = '1.9.0.0'
object GroupBox1: TGroupBox
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = Owner
AnchorSideRight.Control = CheckGroup1
AnchorSideBottom.Control = CheckGroup1
AnchorSideBottom.Side = asrBottom
AnchorSideBottom.Control = CheckBox1
Left = 6
Height = 173
Height = 165
Top = 6
Width = 294
Width = 316
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Left = 6
BorderSpacing.Top = 6
BorderSpacing.Right = 6
Caption = 'Page margins'
ClientHeight = 150
ClientWidth = 290
ClientHeight = 144
ClientWidth = 314
TabOrder = 0
object Label1: TLabel
AnchorSideLeft.Control = GroupBox1
AnchorSideBottom.Control = SpinEdit1
AnchorSideBottom.Side = asrBottom
Left = 6
Height = 21
Top = 16
Height = 20
Top = 23
Width = 24
Anchors = [akLeft, akBottom]
BorderSpacing.Left = 6
@ -43,8 +42,8 @@ object RxDBGridPrintGrid_SetupForm: TRxDBGridPrintGrid_SetupForm
object SpinEdit1: TSpinEdit
AnchorSideTop.Control = GroupBox1
AnchorSideRight.Control = Label5
Left = 79
Height = 31
Left = 91
Height = 37
Top = 6
Width = 60
Anchors = [akTop, akRight]
@ -57,9 +56,9 @@ object RxDBGridPrintGrid_SetupForm: TRxDBGridPrintGrid_SetupForm
AnchorSideBottom.Control = SpinEdit2
AnchorSideBottom.Side = asrBottom
Left = 6
Height = 21
Top = 53
Width = 26
Height = 20
Top = 66
Width = 25
Anchors = [akLeft, akBottom]
BorderSpacing.Left = 6
Caption = 'Left'
@ -70,9 +69,9 @@ object RxDBGridPrintGrid_SetupForm: TRxDBGridPrintGrid_SetupForm
AnchorSideTop.Control = SpinEdit1
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Label5
Left = 79
Height = 31
Top = 43
Left = 91
Height = 37
Top = 49
Width = 60
Anchors = [akTop, akRight]
BorderSpacing.Around = 6
@ -84,8 +83,8 @@ object RxDBGridPrintGrid_SetupForm: TRxDBGridPrintGrid_SetupForm
AnchorSideTop.Control = GroupBox1
AnchorSideRight.Control = GroupBox1
AnchorSideRight.Side = asrBottom
Left = 224
Height = 31
Left = 248
Height = 37
Top = 6
Width = 60
Anchors = [akTop, akRight]
@ -98,10 +97,10 @@ object RxDBGridPrintGrid_SetupForm: TRxDBGridPrintGrid_SetupForm
AnchorSideLeft.Side = asrBottom
AnchorSideBottom.Control = SpinEdit3
AnchorSideBottom.Side = asrBottom
Left = 146
Height = 21
Top = 16
Width = 34
Left = 158
Height = 20
Top = 23
Width = 33
Anchors = [akLeft, akBottom]
Caption = 'Right'
ParentColor = False
@ -111,10 +110,10 @@ object RxDBGridPrintGrid_SetupForm: TRxDBGridPrintGrid_SetupForm
AnchorSideLeft.Side = asrBottom
AnchorSideBottom.Control = SpinEdit4
AnchorSideBottom.Side = asrBottom
Left = 146
Height = 21
Top = 53
Width = 49
Left = 158
Height = 20
Top = 66
Width = 47
Anchors = [akLeft, akBottom]
Caption = 'Bottom'
ParentColor = False
@ -124,9 +123,9 @@ object RxDBGridPrintGrid_SetupForm: TRxDBGridPrintGrid_SetupForm
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = GroupBox1
AnchorSideRight.Side = asrBottom
Left = 224
Height = 31
Top = 43
Left = 248
Height = 37
Top = 49
Width = 60
Anchors = [akTop, akRight]
BorderSpacing.Around = 6
@ -137,7 +136,7 @@ object RxDBGridPrintGrid_SetupForm: TRxDBGridPrintGrid_SetupForm
AnchorSideLeft.Control = GroupBox1
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = GroupBox1
Left = 145
Left = 157
Height = 1
Top = 0
Width = 1
@ -146,9 +145,9 @@ object RxDBGridPrintGrid_SetupForm: TRxDBGridPrintGrid_SetupForm
end
object ButtonPanel1: TButtonPanel
Left = 6
Height = 41
Top = 297
Width = 456
Height = 46
Top = 295
Width = 477
OKButton.Name = 'OKButton'
OKButton.DefaultCaption = True
HelpButton.Name = 'HelpButton'
@ -164,10 +163,10 @@ object RxDBGridPrintGrid_SetupForm: TRxDBGridPrintGrid_SetupForm
AnchorSideTop.Control = Owner
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 306
Height = 173
Left = 328
Height = 201
Top = 6
Width = 156
Width = 155
Anchors = [akTop, akRight]
AutoFill = True
AutoSize = True
@ -181,8 +180,8 @@ object RxDBGridPrintGrid_SetupForm: TRxDBGridPrintGrid_SetupForm
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
ClientHeight = 150
ClientWidth = 152
ClientHeight = 180
ClientWidth = 153
Items.Strings = (
'Show title'
'Show footer'
@ -190,20 +189,21 @@ object RxDBGridPrintGrid_SetupForm: TRxDBGridPrintGrid_SetupForm
'Show grid color'
'Show report title'
'Hide zero values'
'Merge cell''s'
)
TabOrder = 2
Data = {
06000000020202020202
0700000002020202020202
}
end
object RadioGroup1: TRadioGroup
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = GroupBox1
AnchorSideTop.Control = CheckBox1
AnchorSideTop.Side = asrBottom
Left = 6
Height = 69
Top = 185
Width = 106
Top = 207
Width = 107
AutoFill = True
AutoSize = True
BorderSpacing.Around = 6
@ -215,8 +215,8 @@ object RxDBGridPrintGrid_SetupForm: TRxDBGridPrintGrid_SetupForm
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
ClientHeight = 46
ClientWidth = 102
ClientHeight = 48
ClientWidth = 105
Items.Strings = (
'Portrait'
'Landscape'
@ -226,12 +226,12 @@ object RxDBGridPrintGrid_SetupForm: TRxDBGridPrintGrid_SetupForm
object Label6: TLabel
AnchorSideLeft.Control = RadioGroup1
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = GroupBox1
AnchorSideTop.Control = CheckBox1
AnchorSideTop.Side = asrBottom
Left = 118
Height = 21
Top = 185
Width = 75
Left = 119
Height = 20
Top = 207
Width = 72
BorderSpacing.Around = 6
Caption = 'Report title'
ParentColor = False
@ -242,22 +242,25 @@ object RxDBGridPrintGrid_SetupForm: TRxDBGridPrintGrid_SetupForm
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 124
Height = 31
Top = 212
Width = 338
Left = 125
Height = 37
Top = 233
Width = 358
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 6
TabOrder = 4
end
object CheckBox1: TCheckBox
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = RadioGroup1
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = CheckGroup1
AnchorSideBottom.Control = CheckGroup1
AnchorSideBottom.Side = asrBottom
Left = 6
Height = 23
Top = 260
Width = 233
Height = 24
Top = 177
Width = 235
Anchors = [akLeft, akBottom]
BorderSpacing.Around = 6
Caption = 'Show column header on all page'
TabOrder = 5

View File

@ -84,6 +84,7 @@ begin
CheckGroup1.Items[3]:=sShowGridColor;
CheckGroup1.Items[4]:=sShowReportTitle;
CheckGroup1.Items[5]:=sHideZeroValues;
CheckGroup1.Items[6]:=sMergeCells;
GroupBox1.Caption:=sPageMargins;