LazReport: Editor Sample. Fix hints on designer, load last report after composite test

(cherry picked from commit e0a6278dff)
This commit is contained in:
Jesus Reyes A 2021-08-04 23:58:47 -05:00
parent 9426402a18
commit 077df2d358
5 changed files with 102 additions and 97 deletions

View File

@ -1,14 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<CONFIG> <CONFIG>
<ProjectOptions> <ProjectOptions>
<Version Value="9"/> <Version Value="12"/>
<General> <General>
<Flags> <Flags>
<LRSInOutputDirectory Value="False"/> <LRSInOutputDirectory Value="False"/>
<CompatibilityMode Value="True"/>
</Flags> </Flags>
<SessionStorage Value="InProjectDir"/> <SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/> <Title Value="LazReport Tester"/>
<Title Value="LazReport Designer"/>
<ResourceType Value="res"/> <ResourceType Value="res"/>
<UseXPManifest Value="True"/> <UseXPManifest Value="True"/>
</General> </General>
@ -37,15 +37,19 @@
</BuildModes> </BuildModes>
<PublishOptions> <PublishOptions>
<Version Value="2"/> <Version Value="2"/>
<IgnoreBinaries Value="False"/>
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
<ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
</PublishOptions> </PublishOptions>
<RunParams> <RunParams>
<local> <local>
<FormatVersion Value="1"/> <LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T &apos;Lazarus Run Output&apos; -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
</local> </local>
<FormatVersion Value="2"/>
<Modes Count="1">
<Mode0 Name="default">
<local>
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T &apos;Lazarus Run Output&apos; -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
</local>
</Mode0>
</Modes>
</RunParams> </RunParams>
<RequiredPackages Count="7"> <RequiredPackages Count="7">
<Item1> <Item1>
@ -102,6 +106,11 @@
<SearchPaths> <SearchPaths>
<UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/> <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/>
</SearchPaths> </SearchPaths>
<Linking>
<Debugging>
<DebugInfoType Value="dsDwarf2"/>
</Debugging>
</Linking>
<CompileReasons Run="False"/> <CompileReasons Run="False"/>
</CompilerOptions> </CompilerOptions>
<Debugging> <Debugging>

View File

@ -11,7 +11,7 @@ uses
{$R calleditorwithpkg.res} {$R calleditorwithpkg.res}
begin begin
Application.Title:='LazReport Designer'; Application.Title := 'LazReport Tester';
Application.Initialize; Application.Initialize;
Application.CreateForm(TfrmMain, frmMain); Application.CreateForm(TfrmMain, frmMain);
Application.Run; Application.Run;

View File

@ -12,31 +12,29 @@ object frmMain: TfrmMain
OnCloseQuery = FormCloseQuery OnCloseQuery = FormCloseQuery
OnCreate = frmMainCreate OnCreate = frmMainCreate
ShowHint = True ShowHint = True
LCLVersion = '1.7' LCLVersion = '2.3.0.0'
object lblIndex: TLabel object lblIndex: TLabel
AnchorSideLeft.Control = Owner AnchorSideLeft.Control = Owner
AnchorSideBottom.Control = grid AnchorSideBottom.Control = grid
Left = 6 Left = 6
Height = 18 Height = 15
Top = 98 Top = 98
Width = 36 Width = 29
Anchors = [akLeft, akBottom] Anchors = [akLeft, akBottom]
BorderSpacing.Around = 6 BorderSpacing.Around = 6
Caption = 'Index' Caption = 'Index'
ParentColor = False
end end
object lblExpr: TLabel object lblExpr: TLabel
AnchorSideRight.Control = Owner AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = grid AnchorSideBottom.Control = grid
Left = 744 Left = 760
Height = 18 Height = 15
Top = 98 Top = 98
Width = 78 Width = 62
Anchors = [akRight, akBottom] Anchors = [akRight, akBottom]
BorderSpacing.Around = 6 BorderSpacing.Around = 6
Caption = 'Expression' Caption = 'Expression'
ParentColor = False
end end
object sbar: TStatusBar object sbar: TStatusBar
Left = 0 Left = 0
@ -56,13 +54,13 @@ object frmMain: TfrmMain
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = lblExpr AnchorSideRight.Control = lblExpr
AnchorSideBottom.Control = grid AnchorSideBottom.Control = grid
Left = 48 Left = 41
Height = 26 Height = 23
Top = 90 Top = 90
Width = 690 Width = 713
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 6 BorderSpacing.Around = 6
ItemHeight = 18 ItemHeight = 15
OnSelect = comboIndexSelect OnSelect = comboIndexSelect
TabOrder = 2 TabOrder = 2
end end
@ -73,8 +71,8 @@ object frmMain: TfrmMain
AnchorSideRight.Control = grid AnchorSideRight.Control = grid
AnchorSideBottom.Control = sbar AnchorSideBottom.Control = sbar
Left = 0 Left = 0
Height = 380 Height = 383
Top = 122 Top = 119
Width = 204 Width = 204
Anchors = [akTop, akLeft, akBottom] Anchors = [akTop, akLeft, akBottom]
Color = clMoneyGreen Color = clMoneyGreen
@ -92,18 +90,16 @@ object frmMain: TfrmMain
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = sbar AnchorSideBottom.Control = sbar
Left = 0 Left = 0
Height = 380 Height = 383
Top = 122 Top = 119
Width = 828 Width = 828
Anchors = [akTop, akLeft, akRight, akBottom] Anchors = [akTop, akLeft, akRight, akBottom]
Color = clWhite Color = clAqua
Columns = <> Columns = <>
DataSource = srcDetail DataSource = srcDetail
Font.Name = 'Sans' Font.Name = 'Sans'
Options = [dgEditing, dgTitles, dgIndicator, dgColumnResize, dgColLines, dgRowLines, dgTabs, dgAlwaysShowSelection, dgConfirmDelete, dgCancelOnExit]
ParentFont = False ParentFont = False
TabOrder = 0 TabOrder = 0
TitleFont.Name = 'Sans'
OnTitleClick = gridTitleClick OnTitleClick = gridTitleClick
end end
object Panel1: TPanel object Panel1: TPanel
@ -124,47 +120,47 @@ object frmMain: TfrmMain
Left = 6 Left = 6
Height = 33 Height = 33
Top = 6 Top = 6
Width = 116 Width = 119
Action = accNewReport Action = accNewReport
AutoSize = True AutoSize = True
BorderSpacing.Around = 6 BorderSpacing.Around = 6
TabOrder = 0 TabOrder = 0
end end
object btnOpenReport: TButton object btnOpenReport: TButton
Left = 128 Left = 131
Height = 33 Height = 33
Top = 6 Top = 6
Width = 123 Width = 124
Action = accOpenReport Action = accOpenReport
AutoSize = True AutoSize = True
BorderSpacing.Around = 6 BorderSpacing.Around = 6
TabOrder = 2 TabOrder = 2
end end
object btnEditReport: TButton object btnEditReport: TButton
Left = 257 Left = 261
Height = 33 Height = 33
Top = 6 Top = 6
Width = 113 Width = 120
Action = accEditReport Action = accEditReport
AutoSize = True AutoSize = True
BorderSpacing.Around = 6 BorderSpacing.Around = 6
TabOrder = 3 TabOrder = 3
end end
object btnPreviewReport: TButton object btnPreviewReport: TButton
Left = 376 Left = 387
Height = 33 Height = 33
Top = 6 Top = 6
Width = 156 Width = 148
Action = accPreviewReport Action = accPreviewReport
AutoSize = True AutoSize = True
BorderSpacing.Around = 6 BorderSpacing.Around = 6
TabOrder = 4 TabOrder = 4
end end
object btnPrintReport: TButton object btnPrintReport: TButton
Left = 538 Left = 541
Height = 33 Height = 33
Top = 6 Top = 6
Width = 134 Width = 131
Action = accPrintReport Action = accPrintReport
AutoSize = True AutoSize = True
BorderSpacing.Around = 6 BorderSpacing.Around = 6
@ -185,7 +181,7 @@ object frmMain: TfrmMain
Left = 6 Left = 6
Height = 33 Height = 33
Top = 45 Top = 45
Width = 116 Width = 119
Action = accPrintGrid Action = accPrintGrid
AutoSize = True AutoSize = True
BorderSpacing.Around = 6 BorderSpacing.Around = 6
@ -193,10 +189,10 @@ object frmMain: TfrmMain
end end
object btnComposite: TButton object btnComposite: TButton
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
Left = 128 Left = 131
Height = 33 Height = 33
Top = 45 Top = 45
Width = 123 Width = 124
Action = accComposite Action = accComposite
AutoSize = True AutoSize = True
BorderSpacing.Around = 6 BorderSpacing.Around = 6
@ -205,20 +201,20 @@ object frmMain: TfrmMain
object btnImageList: TButton object btnImageList: TButton
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 257 Left = 261
Height = 33 Height = 33
Top = 45 Top = 45
Width = 113 Width = 120
Action = accThumbnails Action = accThumbnails
AutoSize = True AutoSize = True
BorderSpacing.Around = 6 BorderSpacing.Around = 6
TabOrder = 7 TabOrder = 7
end end
object btnMasterDetail: TToggleBox object btnMasterDetail: TToggleBox
Left = 376 Left = 387
Height = 33 Height = 33
Top = 45 Top = 45
Width = 156 Width = 148
AutoSize = True AutoSize = True
BorderSpacing.Around = 6 BorderSpacing.Around = 6
Caption = 'Master-Detail Test' Caption = 'Master-Detail Test'
@ -226,10 +222,10 @@ object frmMain: TfrmMain
TabOrder = 9 TabOrder = 9
end end
object btnExportLast: TButton object btnExportLast: TButton
Left = 538 Left = 541
Height = 33 Height = 33
Top = 45 Top = 45
Width = 134 Width = 131
Caption = 'Repeat Export' Caption = 'Repeat Export'
OnClick = btnExportLastClick OnClick = btnExportLastClick
TabOrder = 10 TabOrder = 10
@ -247,16 +243,16 @@ object frmMain: TfrmMain
OnEnterRect = TheReportEnterRect OnEnterRect = TheReportEnterRect
OnUserFunction = TheReportUserFunction OnUserFunction = TheReportUserFunction
OnExportFilterSetup = TheReportExportFilterSetup OnExportFilterSetup = TheReportExportFilterSetup
left = 40 Left = 40
top = 192 Top = 192
end end
object Detail: TDbf object Detail: TDbf
IndexDefs = <> IndexDefs = <>
TableName = 'disco.dbf' TableName = 'disco.dbf'
TableLevel = 3 TableLevel = 3
FilterOptions = [] FilterOptions = []
left = 184 Left = 184
top = 192 Top = 192
object DetailAUTHOR: TStringField object DetailAUTHOR: TStringField
DisplayWidth = 20 DisplayWidth = 20
FieldKind = fkData FieldKind = fkData
@ -329,8 +325,6 @@ object frmMain: TfrmMain
ProviderFlags = [pfInUpdate, pfInWhere] ProviderFlags = [pfInUpdate, pfInWhere]
ReadOnly = False ReadOnly = False
Required = False Required = False
MaxValue = 0
MinValue = 0
Precision = 2 Precision = 2
end end
object DetailNOTE: TStringField object DetailNOTE: TStringField
@ -400,13 +394,13 @@ object frmMain: TfrmMain
end end
object srcDetail: TDataSource object srcDetail: TDataSource
DataSet = Detail DataSet = Detail
left = 184 Left = 184
top = 248 Top = 248
end end
object frDbDetail: TfrDBDataSet object frDbDetail: TfrDBDataSet
DataSet = Detail DataSet = Detail
left = 112 Left = 112
top = 192 Top = 192
end end
object PrintGrid: TFrPrintGrid object PrintGrid: TFrPrintGrid
DBGrid = grid DBGrid = grid
@ -416,12 +410,12 @@ object frmMain: TfrmMain
Caption = 'Grid' Caption = 'Grid'
PrinterIndex = -1 PrinterIndex = -1
ShowCaption = True ShowCaption = True
left = 352 Left = 352
top = 248 Top = 248
end end
object MainMenu1: TMainMenu object MainMenu1: TMainMenu
left = 112 Left = 112
top = 96 Top = 96
object MenuItem1: TMenuItem object MenuItem1: TMenuItem
Caption = 'Files' Caption = 'Files'
object MenuItem2: TMenuItem object MenuItem2: TMenuItem
@ -483,12 +477,12 @@ object frmMain: TfrmMain
object ApplicationProperties1: TApplicationProperties object ApplicationProperties1: TApplicationProperties
HintPause = 10 HintPause = 10
OnShowHint = ApplicationProperties1ShowHint OnShowHint = ApplicationProperties1ShowHint
left = 500 Left = 500
top = 160 Top = 160
end end
object ActionList1: TActionList object ActionList1: TActionList
left = 48 Left = 48
top = 96 Top = 96
object accNewReport: TAction object accNewReport: TAction
Category = 'Tests' Category = 'Tests'
Caption = 'New Report' Caption = 'New Report'
@ -563,33 +557,33 @@ object frmMain: TfrmMain
object OpenDialog1: TOpenDialog object OpenDialog1: TOpenDialog
Filter = 'LazReport Files|*.lrf|FreeReport Files|*.frf|All Files|*.*' Filter = 'LazReport Files|*.lrf|FreeReport Files|*.frf|All Files|*.*'
FilterIndex = 0 FilterIndex = 0
left = 572 Left = 572
top = 160 Top = 160
end end
object frCSVExport1: TfrCSVExport object frCSVExport1: TfrCSVExport
left = 352 Left = 352
top = 192 Top = 192
end end
object frUserDataset1: TfrUserDataset object frUserDataset1: TfrUserDataset
RangeEnd = reCount RangeEnd = reCount
left = 112 Left = 112
top = 248 Top = 248
end end
object frBarCodeObject1: TfrBarCodeObject object frBarCodeObject1: TfrBarCodeObject
left = 272 Left = 272
top = 192 Top = 192
end end
object frRoundRectObject1: TfrRoundRectObject object frRoundRectObject1: TfrRoundRectObject
left = 272 Left = 272
top = 248 Top = 248
end end
object frShapeObject1: TfrShapeObject object frShapeObject1: TfrShapeObject
left = 272 Left = 272
top = 304 Top = 304
end end
object frCheckBoxObject1: TfrCheckBoxObject object frCheckBoxObject1: TfrCheckBoxObject
left = 272 Left = 272
top = 360 Top = 360
end end
object Composite: TfrCompositeReport object Composite: TfrCompositeReport
DefaultCopies = 0 DefaultCopies = 0
@ -597,48 +591,48 @@ object frmMain: TfrmMain
Options = [] Options = []
PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbHelp, pbExit] PreviewButtons = [pbZoom, pbLoad, pbSave, pbPrint, pbFind, pbHelp, pbExit]
DataType = dtDataSet DataType = dtDataSet
left = 40 Left = 40
top = 248 Top = 248
end end
object LookCountries: TDbf object LookCountries: TDbf
IndexDefs = <> IndexDefs = <>
TableName = 'countries.dbf' TableName = 'countries.dbf'
TableLevel = 3 TableLevel = 3
FilterOptions = [] FilterOptions = []
left = 184 Left = 184
top = 72 Top = 72
end end
object LookCompanies: TDbf object LookCompanies: TDbf
IndexDefs = <> IndexDefs = <>
TableName = 'companies.dbf' TableName = 'companies.dbf'
TableLevel = 3 TableLevel = 3
FilterOptions = [] FilterOptions = []
left = 184 Left = 184
top = 128 Top = 128
end end
object master: TDbf object master: TDbf
IndexDefs = <> IndexDefs = <>
TableLevel = 4 TableLevel = 4
FilterOptions = [] FilterOptions = []
left = 184 Left = 184
top = 312 Top = 312
end end
object srcMaster: TDataSource object srcMaster: TDataSource
DataSet = master DataSet = master
left = 184 Left = 184
top = 368 Top = 368
end end
object frDbMaster: TfrDBDataSet object frDbMaster: TfrDBDataSet
DataSet = master DataSet = master
left = 112 Left = 112
top = 312 Top = 312
end end
object frHtmlDivExport1: TfrHtmlDivExport object frHtmlDivExport1: TfrHtmlDivExport
left = 500 Left = 500
top = 228 Top = 228
end end
object lrAddFunctionLibrary1: TlrAddFunctionLibrary object lrAddFunctionLibrary1: TlrAddFunctionLibrary
left = 500 Left = 500
top = 301 Top = 301
end end
end end

View File

@ -328,7 +328,9 @@ procedure TfrmMain.accEditReportExecute(Sender: TObject);
begin begin
if TheReport.FileName='' then if TheReport.FileName='' then
raise Exception.Create(cerOpenReportFirst); raise Exception.Create(cerOpenReportFirst);
ApplicationProperties1.OnShowHint := nil;
TheReport.DesignReport; TheReport.DesignReport;
ApplicationProperties1.OnShowHint := @ApplicationProperties1ShowHint;
end; end;
procedure TfrmMain.accNewReportExecute(Sender: TObject); procedure TfrmMain.accNewReportExecute(Sender: TObject);
@ -459,9 +461,6 @@ begin
FCountryIndex := ComboIndex.Items.IndexOf('BYCOUNTRY'); FCountryIndex := ComboIndex.Items.IndexOf('BYCOUNTRY');
SetIndex(''); SetIndex('');
if FileExistsUTF8(fCurReport) then
OpenReport(fCurReport);
for i:=Low(rptArr) to High(rptArr) do begin for i:=Low(rptArr) to High(rptArr) do begin
r := TfrReport.Create(self); r := TfrReport.Create(self);
r.LoadFromFile(rptArr[i]); r.LoadFromFile(rptArr[i]);
@ -469,6 +468,9 @@ begin
end; end;
Composite.DoublePass:=true; Composite.DoublePass:=true;
if FileExistsUTF8(fCurReport) then
OpenReport(fCurReport);
frSelectHyphenDictionary(dataPath + 'hyph_es_ANY.dic'); frSelectHyphenDictionary(dataPath + 'hyph_es_ANY.dic');
end; end;