Package com.inet.report
Class Subreport
java.lang.Object
com.inet.report.ReportComponent
com.inet.report.Element
com.inet.report.AbstractFontElement
com.inet.report.Subreport
- All Implemented Interfaces:
BorderProperties
,FontProperties
,GeneralProperties
,NodeParser
,com.inet.report.ReferenceHolder
,SubreportProperties
,TextProperties
,Serializable
,Cloneable
public class Subreport
extends AbstractFontElement
implements SubreportProperties, TextProperties, com.inet.report.ReferenceHolder, BorderProperties
Engines cannot hold more than one datasource, so if you need a report
that uses data from two or more datasources, you have to use
Example:
You have one database to store private data of your employees. In another database (a table in the same database should also work, but no subreports are required here) you store the sales of each of your shops. So, if you want to create a report, that displays all sales according to the employee you have to create some fields in the main report that shows the employees and a subreport that have some fields to show the sales. To realize the representation of sales according to employees insert a
This class is part of the RDC.
Subreport
objects
in the report. Example:
You have one database to store private data of your employees. In another database (a table in the same database should also work, but no subreports are required here) you store the sales of each of your shops. So, if you want to create a report, that displays all sales according to the employee you have to create some fields in the main report that shows the employees and a subreport that have some fields to show the sales. To realize the representation of sales according to employees insert a
SubreportLink
using the employee id field in the main report
(i.e. Employees.Id) and the employee id in the subreport (i.e. Sales.Employee-Id).
Now each employee will be followed by its sales, where the sales were shown in
a single object - the Subreport
object.This class is part of the RDC.
-
Nested Class Summary
Nested classes/interfaces inherited from class com.inet.report.AbstractFontElement
AbstractFontElement.FontProps
Nested classes/interfaces inherited from class com.inet.report.Element
Element.BorderProps, Element.CommonProperties, Element.ElementTypes, Element.HyperlinkProps, Element.StringProps
-
Field Summary
Fields inherited from class com.inet.report.Element
BOX, CHART, CROSSTAB, CROSSTABSECTION, DATABASE_PICTURE, FIELD, FIELDPART, FORMFIELD, INTERACTIVE_SORTING, JAVABEAN, LINE, PARAGRAPH, PICTURE, SIGNATURE, SUBREPORT, TEXT, TEXTPART
Fields inherited from interface com.inet.report.BorderProperties
LINE_STYLE_DASHED, LINE_STYLE_DOTTED, LINE_STYLE_DOUBLE, LINE_STYLE_SINGLE, NO_LINE
Fields inherited from interface com.inet.report.FontProperties
FONT_DIALOG, FONT_MONOSPACED, FONT_SANS_SERIF, FONT_SERIF, FONT_STYLE_BOLD, FONT_STYLE_ITALIC, FONT_STYLE_STRIKETHROUGH, FONT_STYLE_UNDERLINE
Fields inherited from interface com.inet.report.GeneralProperties
ALIGN_HORIZONTAL_CENTER, ALIGN_HORIZONTAL_DEFAULT, ALIGN_HORIZONTAL_JUSTIFIED, ALIGN_HORIZONTAL_LEFT, ALIGN_HORIZONTAL_RIGHT
Fields inherited from interface com.inet.report.TextProperties
GLYPH_DEFAULT, GLYPH_DOWN, GLYPH_LEFT, GLYPH_RIGHT, GLYPH_UP, ROTATE_0, ROTATE_180, ROTATE_270, ROTATE_90
-
Method Summary
Modifier and TypeMethodDescriptionaddSubreportLink
(Field mainRptField, Field subRptField) Adds a new subreport link to the set and returns it.addSubreportLink
(Field mainRptField, Field subRptField, boolean generatePrompt) Adds a new subreport link to the set and returns it.copy()
Creates a serializable copy of this Element.Returns the engine object belonging to this subreport.int
Returns the glyph orientation.Returns the formula whose return value determines the glyph orientation.Returns a FormulaField whose return value specifies the text that is shown instead of the element content when on demand is enabled.Returns a FormulaField whose return value specifies the name of the tab which is showing the activated element if on demand is enabled.Returns a list with all property formulas that are set for this report element.List<? extends ReportComponent>
Returns allReportComponent
s that are descendants of this one.getSubreportLink
(int idx) Gets the subreport link at the specified index.int
Returns the number of subreport links in the setint
Returns the value of the property 'text rotation'.Returns the formula whose return value determines the property 'text rotation'.boolean
Returnstrue
if on demand is enabled elsefalse
.boolean
Returnstrue
if "suppress if blank" is enabled elsefalse
.parseElement
(com.inet.report.parser.XMLTag group, String tag, Attributes atts, Map<String, Object> parserMap) FOR INTERNAL USE ONLY FOR INTERNAL USE ONLY FOR INTERNAL USE ONLY FOR INTERNAL USE ONLY Internal method for reading report XMLvoid
parseEndElement
(com.inet.report.parser.XMLTag group, String tag, Map<String, Object> parserMap) FOR INTERNAL USE ONLY Internal method for reading report XMLvoid
FOR INTERNAL USE ONLY FOR INTERNAL USE ONLY FOR INTERNAL USE ONLY Internal method for reading report XMLvoid
removeSubreportLink
(int idx) Removes the subreport link at the specified index.final void
FOR INTERNAL USE ONLYvoid
setGlyphOrientation
(int orientation) Sets the orientation of the glyphs.void
setGlyphOrientationFormula
(FormulaField formula) Sets the formula whose return value determines the glyph orientation.void
setOnDemand
(boolean onDemand) Specifies whether on demand is enabled or not.void
If on demand is enabled, the element is shown in the report as a line of text.void
If on demand is enabled, the element is shown in the report as a line of text.void
If on demand is enabled and the element is activated, it is shown in an extra tab or window.void
If on demand is enabled and the element is activated, it is shown in an extra tab or window.final void
FOR INTERNAL USE ONLYvoid
setSuppressIfBlank
(boolean suppress) Specifies whether "suppress if blank" is enabled or not.void
setTextRotation
(int rotation) Sets the value of the property 'text rotation'.void
setTextRotationFormula
(FormulaField formula) Sets the formula whose return value determines the property 'text rotation'.Methods inherited from class com.inet.report.AbstractFontElement
getFontColor, getFontColorFormula, getFontName, getFontNameFormula, getFontSize, getFontSizeFormula, getFontSizeTwips, getFontStyle, getFontStyleFormula, getStrikeoutFormula, getUnderlineFormula, isBold, isItalic, isStrikeout, isUnderline, setBold, setFontColor, setFontColorFormula, setFontName, setFontNameFormula, setFontSize, setFontSizeFormula, setFontSizeTwips, setFontStyle, setFontStyleFormula, setItalic, setStrikeout, setStrikeoutFormula, setUnderline, setUnderlineFormula
Methods inherited from class com.inet.report.Element
addListener, getBottomLineStyle, getBottomLineStyleFormula, getBulletValueStack, getCanGrowCount, getCanGrowFormula, getCloseBorderOnPageBreakFormula, getDropShadowFormula, getField, getForeColor, getForeColorFormula, getHorAlign, getHorAlignFormula, getHyperlinkUrl, getHyperlinkUrlFormula, getLeftLineStyle, getLeftLineStyleFormula, getListStack, getParent, getRightLineStyle, getRightLineStyleFormula, getSuppressIfDuplicatedFormula, getTightHorizontalFormula, getToolTipsText, getToolTipsTextFormula, getTopLineStyle, getTopLineStyleFormula, getTypeAsString, indexOf, isCanGrow, isCloseBorderOnPageBreak, isCloseBorderOnPageBreakInternal, isDropShadow, isInCrossTab, isSuppressIfDuplicated, isTightHorizontal, paramString, removeListener, setBottomLineStyle, setBottomLineStyleFormula, setBulletValueStack, setCanGrow, setCanGrowCount, setCanGrowFormula, setCloseBorderOnPageBreak, setCloseBorderOnPageBreakFormula, setDropShadow, setDropShadowFormula, setField, setForeColor, setForeColorFormula, setHorAlign, setHorAlignFormula, setHyperlinkUrl, setHyperlinkUrlFormula, setIndex, setLeftLineStyle, setLeftLineStyleFormula, setListStack, setRightLineStyle, setRightLineStyleFormula, setSuppressIfDuplicated, setSuppressIfDuplicatedFormula, setTightHorizontal, setTightHorizontalFormula, setToolTipsText, setToolTipsTextFormula, setTopLineStyle, setTopLineStyleFormula
Methods inherited from class com.inet.report.ReportComponent
addPropertyChangeListener, addPropertyChangeListener, addReferencedObject, addVetoableChangeListener, addVetoableChangeListener, getBackColor, getBackColorFormula, getCustomData, getHeight, getKeepTogetherFormula, getRealReferencedObjectCount, getReferencedObjectCount, getReferencedObjects, getSuppressFormula, getType, getWidth, getX, getY, isDOMParser, isKeepTogether, isSuppress, parseDOM, removePropertyChangeListener, removePropertyChangeListener, removeReferencedObject, removeVetoableChangeListener, removeVetoableChangeListener, setBackColor, setBackColorFormula, setCustomData, setHeight, setKeepTogether, setKeepTogetherFormula, setSuppress, setSuppressFormula, setWidth, setX, setY
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.inet.report.BorderProperties
getBackColor, getBackColorFormula, getBottomLineStyle, getBottomLineStyleFormula, getCloseBorderOnPageBreakFormula, getDropShadowFormula, getForeColor, getForeColorFormula, getLeftLineStyle, getLeftLineStyleFormula, getRightLineStyle, getRightLineStyleFormula, getTightHorizontalFormula, getTopLineStyle, getTopLineStyleFormula, isCloseBorderOnPageBreak, isDropShadow, isTightHorizontal, setBackColor, setBackColorFormula, setBottomLineStyle, setBottomLineStyleFormula, setCloseBorderOnPageBreak, setCloseBorderOnPageBreakFormula, setDropShadow, setDropShadowFormula, setForeColor, setForeColorFormula, setLeftLineStyle, setLeftLineStyleFormula, setRightLineStyle, setRightLineStyleFormula, setTightHorizontal, setTightHorizontalFormula, setTopLineStyle, setTopLineStyleFormula
Methods inherited from interface com.inet.report.GeneralProperties
getKeepTogetherFormula, getSuppressFormula, isKeepTogether, isSuppress, setKeepTogether, setKeepTogetherFormula, setSuppress, setSuppressFormula
Methods inherited from interface com.inet.report.ReferenceHolder
addReferencedObject, getRealReferencedObjectCount, getReferencedObjectCount, getReferencedObjects, removeReferencedObject
-
Method Details
-
copy
Creates a serializable copy of this Element. The returned Object is not an instance of Element. This method is used from i-net Designer for Copy and Paste.- Overrides:
copy
in classElement
- Returns:
- A serializable Object.
- Throws:
ReportException
- If accessing properties of this Element causes any errors.- See Also:
-
getEngine
Returns the engine object belonging to this subreport. This is different to the super method of Element. Will return null if this subreport no longer belongs to a main report. -
addSubreportLink
Adds a new subreport link to the set and returns it.- Parameters:
mainRptField
- The Field in the main report whose values will be used for the PromptField in the subreport.subRptField
- The Field in the subreport whose values will be used to compare with the values of the PromptField.- Returns:
- The created SubreportLink object.
- Throws:
ReportException
- If an error occurred while creating the sub report link.- Since:
- 6.0
-
addSubreportLink
public SubreportLink addSubreportLink(Field mainRptField, Field subRptField, boolean generatePrompt) throws ReportException Adds a new subreport link to the set and returns it.- Parameters:
mainRptField
- The Field in the main report whose values will be used for the PromptField in the subreport.subRptField
- The Field in the subreport whose values will be used to compare with the values of the PromptField.generatePrompt
- Iftrue
a PromptField which is used for this link is generated automatically. If set tofalse
a PromptField has to be set withSubreportLink.setPromptField(PromptField)
.- Returns:
- The created SubreportLink object.
- Throws:
ReportException
- If an error occurred while creating the sub report link.- Since:
- 6.0
-
removeSubreportLink
public void removeSubreportLink(int idx) Removes the subreport link at the specified index.- Parameters:
idx
- The 0-based index of the SubreportLink object that should be removed.- Since:
- 6.0
- See Also:
-
getSubreportLink
Gets the subreport link at the specified index.- Parameters:
idx
- The 0-based index of the subreport that should be returned.- Returns:
- The SubreportLink object at the specified position.
- Since:
- 6.0
- See Also:
-
getSubreportLinkCount
public int getSubreportLinkCount()Returns the number of subreport links in the set- Returns:
- The number of subreport links.
- Since:
- 6.0
-
setOnDemand
public void setOnDemand(boolean onDemand) Specifies whether on demand is enabled or not.- Specified by:
setOnDemand
in interfaceSubreportProperties
- Parameters:
onDemand
- when true on demand is enabled
-
isOnDemand
public boolean isOnDemand()Returnstrue
if on demand is enabled elsefalse
.- Specified by:
isOnDemand
in interfaceSubreportProperties
- Returns:
- whether on demand is enabled
- Since:
- 7.0
-
setOnDemandLinkLabel
If on demand is enabled, the element is shown in the report as a line of text. Specify this text with this method.- Specified by:
setOnDemandLinkLabel
in interfaceSubreportProperties
- Parameters:
lab
- - the text as String
-
setOnDemandLinkLabel
If on demand is enabled, the element is shown in the report as a line of text. Specify this text with this method.- Specified by:
setOnDemandLinkLabel
in interfaceSubreportProperties
- Parameters:
lab
- - a FormulaField whose return value specifies the text.
-
getOnDemandLinkLabel
Returns a FormulaField whose return value specifies the text that is shown instead of the element content when on demand is enabled.- Specified by:
getOnDemandLinkLabel
in interfaceSubreportProperties
- Returns:
- FormulaField
-
setOnDemandTabLabel
If on demand is enabled and the element is activated, it is shown in an extra tab or window. Specify the name of this tab with this method.- Specified by:
setOnDemandTabLabel
in interfaceSubreportProperties
- Parameters:
lab
- - the name as String
-
setOnDemandTabLabel
If on demand is enabled and the element is activated, it is shown in an extra tab or window. Specify the name of this tab with this method.- Specified by:
setOnDemandTabLabel
in interfaceSubreportProperties
- Parameters:
lab
- - a FormulaField whose return value specifies the name.
-
getOnDemandTabLabel
Returns a FormulaField whose return value specifies the name of the tab which is showing the activated element if on demand is enabled.- Specified by:
getOnDemandTabLabel
in interfaceSubreportProperties
- Returns:
- FormulaField
-
getPropertyFormulas
Returns a list with all property formulas that are set for this report element. This includes property formulas for any type of sub-component but excludes formulas for any descendantReportComponent
of this one. To get the property formulas for descendantReportComponent
useReportComponent.getSubComponents()
- Overrides:
getPropertyFormulas
in classAbstractFontElement
- Returns:
- List of property formulas
-
setReferences
public final void setReferences()FOR INTERNAL USE ONLY- Specified by:
setReferences
in interfacecom.inet.report.ReferenceHolder
- Overrides:
setReferences
in classElement
-
resetReferences
public final void resetReferences()FOR INTERNAL USE ONLY- Specified by:
resetReferences
in interfacecom.inet.report.ReferenceHolder
- Overrides:
resetReferences
in classReportComponent
-
getGlyphOrientation
public int getGlyphOrientation()Returns the glyph orientation. This is the rotation of every individual character in the line. The default value is GLYPH_DEFAULT, that is, the glyphs point towards the source of the given block progression. Use the GLYPH constants for the orientation.- Specified by:
getGlyphOrientation
in interfaceTextProperties
- Returns:
- glyph orientation
- See Also:
-
setGlyphOrientation
public void setGlyphOrientation(int orientation) Sets the orientation of the glyphs. This is the rotation of every individual character in the line. The default value is GLYPH_DEFAULT, that is, the glyphs point towards the source of the given block progression. Use the GLYPH constants for the orientation.- Specified by:
setGlyphOrientation
in interfaceTextProperties
- Parameters:
orientation
- Orientation to be set for the glyphs (i.e. the rotation of every individual character of the line of text)- See Also:
-
setGlyphOrientationFormula
Sets the formula whose return value determines the glyph orientation. This is the rotation of every individual character in each line. This formula should return one of the formula constants GlyphDefault, GlyphLeft, GlyphRight, or GlyphDown.- Specified by:
setGlyphOrientationFormula
in interfaceTextProperties
- Parameters:
formula
- the formula whose return value determines the glyph orientation
-
getGlyphOrientationFormula
Returns the formula whose return value determines the glyph orientation. This is the rotation of every individual character in each line. This formula should return one of the formula constants GlyphDefault, GlyphLeft, GlyphRight, or GlyphDown.- Specified by:
getGlyphOrientationFormula
in interfaceTextProperties
- Returns:
- the formula whose return value determines the glyph orientation
-
setTextRotation
public void setTextRotation(int rotation) Sets the value of the property 'text rotation'. This property defines a final rotation of the entire element after the text is laid out. For example, to have a text element have vertical text running from top to bottom and each line run from right to left, you'd set a glyph orientation of GLYPH_LEFT and a text rotation of ROTATE_270.- Specified by:
setTextRotation
in interfaceTextProperties
- Parameters:
rotation
- The new value of the property 'text rotation'. Rotation is done counter-clockwise.- Since:
- 5.4
- See Also:
-
getTextRotation
public int getTextRotation()Returns the value of the property 'text rotation'. This property defines a final rotation of the entire element after the text is laid out. For example, to have a text element have vertical text running from top to bottom and each line run from right to left, you'd set a glyph orientation of GLYPH_LEFT and a text rotation of ROTATE_270.- Specified by:
getTextRotation
in interfaceTextProperties
- Returns:
- The value of the property 'text rotation'.
- Since:
- 5.4
- See Also:
-
getTextRotationFormula
Returns the formula whose return value determines the property 'text rotation'. This property defines a final rotation of the entire element after the text is laid out. This formula should return one of the formula constants Rotate0, Rotate90, Rotate180, or Rotate270.- Specified by:
getTextRotationFormula
in interfaceTextProperties
- Returns:
- formula whose return value determines the property 'text rotation'.
- See Also:
-
setTextRotationFormula
Sets the formula whose return value determines the property 'text rotation'. This property defines a final rotation of the entire element after the text is laid out. This formula should return one of the formula constants Rotate0, Rotate90, Rotate180, or Rotate270.- Specified by:
setTextRotationFormula
in interfaceTextProperties
- Parameters:
formula
- formula whose return value determines the property 'text rotation'.- See Also:
-
isSuppressIfBlank
public boolean isSuppressIfBlank()Returnstrue
if "suppress if blank" is enabled elsefalse
. A subreport is blank if all sections are suppressed or have no height. If the subreport is suppressed, the border and background will not be printed.- Specified by:
isSuppressIfBlank
in interfaceSubreportProperties
- Returns:
- whether "suppress if blank" is enabled
- See Also:
-
setSuppressIfBlank
public void setSuppressIfBlank(boolean suppress) Specifies whether "suppress if blank" is enabled or not. A subreport is blank if all sections are suppressed or have no height. If the subreport is suppressed, the border and background will not be printed.- Specified by:
setSuppressIfBlank
in interfaceSubreportProperties
- Parameters:
suppress
- whether to suppress the display of this subreport if it is blank- See Also:
-
parseElement
public NodeParser parseElement(com.inet.report.parser.XMLTag group, String tag, Attributes atts, Map<String, Object> parserMap) throws FatalParserExceptionFOR INTERNAL USE ONLY FOR INTERNAL USE ONLY FOR INTERNAL USE ONLY FOR INTERNAL USE ONLY Internal method for reading report XMLParses an XML node with the given information, and returns either a sub-element which was created as a result, or null if no sub-element was created, i.e. the information was applied to the ReportComponent itself. Note that the parsing is highly tolerant, i.e. exceptions are intercepted and suppressed if at all possible.
- Specified by:
parseElement
in interfaceNodeParser
- Overrides:
parseElement
in classAbstractFontElement
- Parameters:
group
- XMLTag of the current node to be parsed, or null if there is no such current group. An XMLTag is a group of nodes bundled together, usually it is a Properties node such as CommonProperties, BorderProperties, etc.tag
- The XMLTag to be parsedatts
- The set of attributes in the current XMLTagparserMap
- The map of current Parser.- Returns:
- The NodeParser sub-element if one needed to be created, or null if none was created.
- Throws:
FatalParserException
- if an exception occurs which causes the report to not be able to be read: causes the abortion of the reading of the report.
-
parseText
FOR INTERNAL USE ONLY FOR INTERNAL USE ONLY FOR INTERNAL USE ONLY Internal method for reading report XMLThis method is called if text was encountered in the context of this node. (Examples would be a formula's text or a text element's text)
- Specified by:
parseText
in interfaceNodeParser
- Overrides:
parseText
in classElement
- Parameters:
textData
- text encountered and to be storedparserMap
- The map of current Parser.
-
parseEndElement
public void parseEndElement(com.inet.report.parser.XMLTag group, String tag, Map<String, Object> parserMap) throws FatalParserExceptionFOR INTERNAL USE ONLY Internal method for reading report XMLReceive notification of the end of an XML tag.
- Specified by:
parseEndElement
in interfaceNodeParser
- Overrides:
parseEndElement
in classReportComponent
- Parameters:
group
- XMLTag of the current node to be parsed, or null if there is no such current group.tag
- The XMLTag to be parsedparserMap
- The map of current Parser.- Throws:
FatalParserException
- if an exception occurs which causes the report to not be able to be read: causes the abortion of the reading of the report.
-
getSubComponents
Returns allReportComponent
s that are descendants of this one. E.G. this will return all Element of aSection
. But it's as well useful forCrossTab
s orText
elements which have additional elements. NOTE: This does not return anyReportComponent
of the sub-engine!- Specified by:
getSubComponents
in classReportComponent
- Returns:
- a list with all sub components which can be empty as well; will be
null
if the component has no descendants
-