Class RMTableOfContents
- All Implemented Interfaces:
Serializable
,Cloneable
,Map
Here's an example of using RMTableOfContents:
// Generate report normally RMDocument template = RMDocument.getDoc("MyTemplate.rpt"); RMDocument report = template.generateReport(myObjects); // Get table of contents and generate that report RMTableOfContents toc = new RMTableOfContents(report); RMDocument tocTemplate = RMDocument.getDoc("MyTemplateTOC.rpt"); RMDocument report2 = tocTemplate.generateReport(toc); // Append original report to table of contents and get PDF report2.addPages(report); report2.writePDF("MyReport.pdf");
In this example, the tocTemplate would be a simple template with a Table who's DatasetKey is equal to some Table-DatasetKey.Table-Grouping-Key from the original report (eg., "getMovies.getStudio", for our typical Hollywood example, where the original template has a "getMovies" table, with a grouping on the key "getSudio"). In addition to a large header row (that maybe says, "Hollywood Report - - Table of Contents"), this table would have a details row configured with a column of the form "@row@. @getStudio.getName@ ........ @page@". Additionally, the template might want to set the URL for the Details table row to "Page:@page@" so that the table of contents entries are actually hyperlinks to the appropriate page.
It may be interesting to note (as an implementation detail only) that the "page" key in an RMTableOfContents entry actually returns the page number relative to the end of the document, in the form of a key itself, for example: "@PageMax-N@" (which gets re-evaluated before PDF generation), so that it can compensate for the length of the Table of Contents table itself. Also, RMTableOfContents uses lower case versions of the common keys @row@ and @page@ so as not to conflict with the normal @Row@ and @Page@.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
An inner class to assist flattening.Nested classes/interfaces inherited from class java.util.AbstractMap
AbstractMap.SimpleEntry<K extends Object,
V extends Object>, AbstractMap.SimpleImmutableEntry<K extends Object, V extends Object> -
Constructor Summary
ConstructorsConstructorDescriptionRMTableOfContents
(RMDocument aDoc) Creates a new table of contents instance. -
Method Summary
Modifier and TypeMethodDescriptionstatic boolean
checkForTableOfContents
(RMPage aPage) Checks for table of contents page in given template, and copies page as-is if found.static void
rpgPage
(ReportOwner anRptOwner, RMDocument aDocRPG, RMPage aPage, int anIndex) Re-run report with table of contents.Methods inherited from class java.util.HashMap
clear, clone, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, forEach, get, getOrDefault, isEmpty, keySet, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size, values
Methods inherited from class java.util.AbstractMap
equals, hashCode, toString
-
Constructor Details
-
RMTableOfContents
Creates a new table of contents instance.
-
-
Method Details
-
checkForTableOfContents
Checks for table of contents page in given template, and copies page as-is if found. -
rpgPage
Re-run report with table of contents.
-