Class Group

java.lang.Object
com.inet.report.Group
All Implemented Interfaces:
NodeParser, com.inet.report.ReferencedObject, com.inet.report.ReferenceHolder, Serializable, Cloneable

public class Group extends Object implements Serializable, com.inet.report.ReferenceHolder, com.inet.report.ReferencedObject, NodeParser, Cloneable
This class represents a grouping and disposes references to group header- and group footer areas. Note that this class represents groupings only, not the standard page-, report- and detail- area pairs (header and footer areas). If you need to set the properties of a grouping, i.e. the field for sorting, use the methods of this class.

This class is part of the RDC.
See Also:
  • Field Details

    • SORT_ASCENDING_ORDER

      public static final int SORT_ASCENDING_ORDER
      Constant for ascending order sort direction.
      See Also:
    • SORT_DESCENDING_ORDER

      public static final int SORT_DESCENDING_ORDER
      Constant for descending order sort direction.
      See Also:
    • SORT_ORIGINAL_ORDER

      public static final int SORT_ORIGINAL_ORDER
      Constant for original order sort direction. This sort order keeps the same values together.
      See Also:
    • SORT_SPECIFIED_ORDER

      public static final int SORT_SPECIFIED_ORDER
      Constant for specified order sort direction.
      See Also:
    • SORT_SUMMARY_ORDER

      public static final int SORT_SUMMARY_ORDER
      Constant for sort by summaries order sort direction.
      See Also:
    • SORT_ORIGINAL_ORDER_2

      public static final int SORT_ORIGINAL_ORDER_2
      Constant for really original order sort direction. This collect only the same values located nearby, and begins a new group whenever the value changes in the group field.
      See Also:
    • SORT_ASCENDING_ORDER_ALPHA_NUMERIC

      public static final int SORT_ASCENDING_ORDER_ALPHA_NUMERIC
      Constant for ascending order sort direction, numeric parts will be sorted by their number value rather than alphabetical.
      See Also:
    • SORT_DESCENDING_ORDER_ALPHA_NUMERIC

      public static final int SORT_DESCENDING_ORDER_ALPHA_NUMERIC
      Constant for descending order sort direction, numeric parts will be sorted by their number value rather than alphabetical
      See Also:
    • CUSTOMIZE_GROUP_NAME_FIELD_DISABLED

      public static final int CUSTOMIZE_GROUP_NAME_FIELD_DISABLED
      Constant for 'disable customize group name field'.
      See Also:
    • CUSTOMIZE_GROUP_NAME_FIELD_ENABLED

      public static final int CUSTOMIZE_GROUP_NAME_FIELD_ENABLED
      Constant for 'enable customize group name field' and choose from existing field.
      See Also:
    • CUSTOMIZE_GROUP_NAME_FIELD_ENABLED_WITH_FM

      public static final int CUSTOMIZE_GROUP_NAME_FIELD_ENABLED_WITH_FM
      Constant for 'enable customize group name field' and use a formula as group name.
      See Also:
    • GROUP_TYPE_REPORT

      public static final int GROUP_TYPE_REPORT
      FOR INTERNAL USE ONLY
      Since:
      6.0
      See Also:
    • GROUP_TYPE_CHART

      public static final int GROUP_TYPE_CHART
      FOR INTERNAL USE ONLY
      Since:
      6.0
      See Also:
    • GROUP_TYPE_CROSS_TAB

      public static final int GROUP_TYPE_CROSS_TAB
      FOR INTERNAL USE ONLY
      Since:
      6.0
      See Also:
  • Method Details

    • toString

      public String toString()
      Returns a string representation of this Group. The returned String will contain the type of this group, the sort order and group field name.
      Overrides:
      toString in class Object
      Returns:
      a String representation of this Group.
      Since:
      4.0
    • getHeader

      public Area getHeader()
      Returns the group header area. The header area is the first area of records collected in a group.
      Returns:
      The group header area.
      Since:
      6.0
      See Also:
    • getFooter

      public Area getFooter()
      Returns the group footer area. The header area is the last area of records collected in a group.
      Returns:
      The group footer area.
      Since:
      6.0
      See Also:
    • setSort

      public void setSort(int sortType)
      The Method setSort sets the type of sorting of the data in this group.
      Parameters:
      sortType - The new value of the property sort type.
      Throws:
      IllegalArgumentException - will thrown if sort type is unknown.
      Since:
      6.0
      See Also:
    • setGroupDirectionFormula

      public void setGroupDirectionFormula(FormulaField formula) throws ReportException
      Sets the formula of sort direction of current group. This formula must be of type FormulaField.FORMULA_PROPERTY and must return a positive int value. Allowed range of values 0 for SORT_ASCENDING_ORDER, 1 for SORT_DESCENDING_ORDER, 2 for SORT_ORIGINAL_ORDER. Other formula will be ignored.
      Parameters:
      formula - for sort direction or null to remove the sort direction formula.
      Throws:
      ReportException - Wrong formula, formula type or return value of formula
      Since:
      6.0
      See Also:
    • getGroupDirectionFormula

      public FormulaField getGroupDirectionFormula()
      Returns the formula of sort direction for this group.
      Returns:
      sort direction formula of this group
      Since:
      6.0
      See Also:
    • getSort

      public int getSort()
      The Method getSort returns the type of sorting of the data of this group.
      Returns:
      The value of the property 'sort type'.
      Since:
      6.0
      See Also:
    • getField

      public Field getField()
      Gets the field definition element.
      Returns:
      Field The current value of the 'field' property.
      Since:
      6.0
    • setField

      public void setField(Field newField)
      Sets the field definition element.
      Parameters:
      newField - The new field element of the property 'field'.
      Throws:
      IllegalArgumentException - is thrown when newField is null.
      Since:
      6.0
    • setKeepTogether

      public void setKeepTogether(int keepGroupTogether)
      Use this property to specify the number of records to keep together in this group. For example: Set this value to 3 to make sure that the first 3 records in this group are displayed on the same page.
      Parameters:
      keepGroupTogether - The number of record to keep together in this group. Use the value '-1' to keep all records of this group together.
      Since:
      6.0
      See Also:
    • getKeepTogether

      public int getKeepTogether()
      Returns the number of records that are kept together in this group.
      Returns:
      The number of records that are kept together in this group.
      Since:
      6.0
      See Also:
    • setRepeatGroupHeader

      public void setRepeatGroupHeader(boolean value)
      Use this property to specify whether the group should be repeated on each new page (true) or not (false).
      Parameters:
      value - The new value of the property 'repeat group header'. Set to true if the group header should be repeated on each new page, else set to false.
      Since:
      6.0
      See Also:
    • getRepeatGroupHeader

      public boolean getRepeatGroupHeader()
      Use this property to specify whether the group should be repeated on each new page (true) or not (false).
      Returns:
      The value of the property 'repeat group header'. Returns true if the group header should be repeated on each new page, else returns false.
      Since:
      6.0
      See Also:
    • setRepeatGroupHeaderWithinFooter

      public void setRepeatGroupHeaderWithinFooter(boolean value)
      Repeat the group header on a new page even when the group display is currently in its footer. By default a group header will only be repeated on a new page when the end of the page is inside the detail data of the group – this causes this behavior to be overridden. This option only has an effect in combination with the option RepeatGroupHeader.
      Parameters:
      value - The new value of the option.
      Since:
      6.0
      See Also:
    • getRepeatGroupHeaderWithinFooter

      public boolean getRepeatGroupHeaderWithinFooter()
      Get the RepeatGroupHeaderWithinFooter flag.
      Returns:
      a boolean.
      Since:
      6.0
      See Also:
    • setSectionWillBePrinted

      public void setSectionWillBePrinted(int value)
      Use this property to specify for what kind of values the group section should be printed, i.e. 'for each day' prints the record with the same day together. This property is only available for date, datetime and boolean.
      Parameters:
      value - The new value of the property 'section will be printed'.
      Throws:
      IllegalArgumentException - if value is no valid property value
      Since:
      6.0
      See Also:
    • getSectionWillBePrinted

      public int getSectionWillBePrinted()
      Returns for what kind of values the group section should be printed, i.e. 'for each day' prints the record with the same day together. This property is only available for date, datetime and boolean.
      Returns:
      the 'change of' type.
      Since:
      6.0
      See Also:
    • setCustomizeGroupNameField

      public void setCustomizeGroupNameField(int value)
      Use this property to customize the group name field. Possibilities are 'disabled', 'choose from field' and 'set with formula'. If property is disabled the group name is the name of the groups underlaying database field. If the property is not set to CUSTOMIZE_GROUP_NAME_FIELD_DISABLED, check that the corresponding field is not set to null.
      Parameters:
      value - The new value of the property.
      Throws:
      IllegalArgumentException - if value is no valid property value
      Since:
      6.0
      See Also:
    • getCustomizeGroupNameField

      public int getCustomizeGroupNameField()
      Returns the kind of the customization of the group name field.
      Returns:
      The value of the property.
      Since:
      6.0
      See Also:
    • setGroupNameFormula

      public void setGroupNameFormula(FormulaField fm)
      If property 'customize groupname field' is set to CUSTOMIZE_GROUP_NAME_FIELD_ENABLED_WITH_FM a formula is needed for rendering. Set the formula with this method.
      Parameters:
      fm - The formula field which specify the name of the group.
      Since:
      6.0
      See Also:
    • getGroupNameFormula

      public FormulaField getGroupNameFormula()
      Returns the formula which specify the name of the group.
      Returns:
      The formula field for specifying the groupname.
      Since:
      6.0
      See Also:
    • setGroupNameDbField

      public void setGroupNameDbField(DatabaseField dbField)
      If property 'customize groupname field' is set to CUSTOMIZE_GROUP_NAME_FIELD_ENABLED a databasefield is needed for rendering. Set the database field with this method.
      Parameters:
      dbField - The database field which specify the name of the group
      Since:
      6.0
      See Also:
    • getGroupNameDbField

      public DatabaseField getGroupNameDbField()
      Returns the database field which specify the name of the group.
      Returns:
      The database field for specifying the groupname.
      Since:
      6.0
      See Also:
    • setHierarchicalGrouping

      public void setHierarchicalGrouping(boolean enabled, Field parentField, int indentation) throws ReportException
      Enable or disable the property 'hierarchical grouping' with this method. Hierarchical grouping arranges your data in the report to show hierarchical relationships. All data stay in the table but indentations of groups of data displays the relationsships between them. Use parentField and indentation for individual arrangement of the hierarchy.
      Parameters:
      enabled - true if hierarchical grouping should be enabled, else false.
      parentField - The field which should be the reference for grouping of this group. Note that the field of this group and parantId field should have the same type. The value is ignored if parameter enabled is false.
      indentation - The depth of the indent of groups of data in twips. The value is ignored if parameter enabled is false.
      Throws:
      ReportException - if parent field is null or the field of this group and parent field not on the same type.
      Since:
      6.0
    • getHierarchicalGrouping

      public boolean getHierarchicalGrouping()
      Returns if the property 'hierarchical grouping' is enabled or disabled.
      Returns:
      true if this group has a hierarchical sorting otherwise false.
      Since:
      6.0
    • setIndentation

      public void setIndentation(int indentation)
      Sets the depth of the indentation of the data groups.
      Parameters:
      indentation - The depth of the indent of groups of data in twips.
      Throws:
      IllegalArgumentException - if indentation is negative
      Since:
      6.0
    • getIndentation

      public int getIndentation()
      Returns the depth of the indentation of the data groups.
      Returns:
      The depth in twips.
      Since:
      6.0
    • getParentField

      public Field getParentField()
      Returns the reference field for grouping of the instanceId field.
      Returns:
      The field which should be the reference for grouping of the instanceId field.
      Since:
      6.0
    • isGroup

      public boolean isGroup()
      Returns true if this group is a GroupAreaPair and false if this group is a Detail-, Page- or ReportAreaPair.
      Returns:
      true if this is a group, false if this is the report header/footer.
      Since:
      6.0
    • indexOf

      public int indexOf()
      Returns the position of this group in report group set.
      Returns:
      the 1-based index.
      Since:
      6.0
    • getGroupNameField

      public GroupField getGroupNameField()
      Returns the group name field of this group. This field complies the group name and can be used by FieldElement to display the group name.
      Returns:
      the group name field.
      Since:
      6.0
    • getSpecifiedOrder

      public SpecifiedOrder getSpecifiedOrder()
      Returns the specified sorting order for this group. Specified sorting allows you to specify a condition for each group, which values are to be added to this group.
      Returns:
      SpecifiedOrder contains the grouping conditions.
      Since:
      6.0
      See Also:
    • setSpecifiedOrder

      public void setSpecifiedOrder(SpecifiedOrder order)
      Set specified sorting order for this group. Specified sorting allows you to specify a condition for each group, which values are to be added to this group.
      Parameters:
      order - is SpecifiedOrder Object contains the grouping conditions for this group.
      Since:
      6.0
      See Also:
    • getBySummaryOrder

      public BySummaryOrder getBySummaryOrder()
      Returns the BySummary sorting order for this group BySummary sorting allows you to sort the groups by our values of aggregate function.
      Returns:
      BySummaryOrder Object contains SummaryField of aggregate function and sort direction.
      Since:
      6.0
      See Also:
    • setBySummaryOrder

      public void setBySummaryOrder(BySummaryOrder order)
      Set BySummary sorting order for this group. BySummary sorting allows you to sort the groups by our values of aggregate function.
      Parameters:
      order - is BySummaryOrder Object contains SummaryField of aggregate function and sort direction.
      Since:
      6.0
      See Also:
    • addReferenceHolder

      public final void addReferenceHolder(com.inet.report.ReferenceHolder holder)
      FOR INTERNAL USE ONLY
      Specified by:
      addReferenceHolder in interface com.inet.report.ReferencedObject
      Since:
      6.0
    • getReferenceHolders

      public final com.inet.report.ReferenceHolder[] getReferenceHolders()
      FOR INTERNAL USE ONLY
      Specified by:
      getReferenceHolders in interface com.inet.report.ReferencedObject
    • getReferenceHolderCount

      public final int getReferenceHolderCount()
      FOR INTERNAL USE ONLY
      Specified by:
      getReferenceHolderCount in interface com.inet.report.ReferencedObject
    • getRealReferenceCount

      public final int getRealReferenceCount()
      FOR INTERNAL USE ONLY
      Specified by:
      getRealReferenceCount in interface com.inet.report.ReferencedObject
    • removeReferenceHolder

      public final void removeReferenceHolder(com.inet.report.ReferenceHolder holder)
      FOR INTERNAL USE ONLY
      Specified by:
      removeReferenceHolder in interface com.inet.report.ReferencedObject
      Since:
      6.0
    • addReferencedObject

      public final void addReferencedObject(com.inet.report.ReferencedObject reference)
      FOR INTERNAL USE ONLY
      Specified by:
      addReferencedObject in interface com.inet.report.ReferenceHolder
      Since:
      6.0
    • getReferencedObjects

      public final com.inet.report.ReferencedObject[] getReferencedObjects()
      FOR INTERNAL USE ONLY
      Specified by:
      getReferencedObjects in interface com.inet.report.ReferenceHolder
    • getRealReferencedObjectCount

      public final int getRealReferencedObjectCount()
      FOR INTERNAL USE ONLY
      Specified by:
      getRealReferencedObjectCount in interface com.inet.report.ReferenceHolder
      Since:
      6.0
    • getReferencedObjectCount

      public final int getReferencedObjectCount()
      FOR INTERNAL USE ONLY
      Specified by:
      getReferencedObjectCount in interface com.inet.report.ReferenceHolder
    • removeReferencedObject

      public final void removeReferencedObject(com.inet.report.ReferencedObject reference)
      FOR INTERNAL USE ONLY
      Specified by:
      removeReferencedObject in interface com.inet.report.ReferenceHolder
      Since:
      6.0
    • resetReferences

      public void resetReferences()
      FOR INTERNAL USE ONLY
      Specified by:
      resetReferences in interface com.inet.report.ReferenceHolder
    • setReferences

      public void setReferences()
      FOR INTERNAL USE ONLY
      Specified by:
      setReferences in interface com.inet.report.ReferenceHolder
    • setGroupType

      public void setGroupType(int groupType)
      FOR INTERNAL USE ONLY Setzt den Typ der Gruppe. Handelt es sich um eine normale Gruppe des Berichtes oder um eine "lokale" Gruppe im Chart oder in der Crosstab.
      Parameters:
      groupType - der Typ der Gruppe
      Since:
      6.0
      See Also:
    • getGroupType

      public int getGroupType()
      FOR INTERNAL USE ONLY Gibt den Typ der Gruppe zurück. Handelt es sich um eine normale Gruppe des Berichtes oder um eine "lokale" Gruppe im Chart oder in der Crosstab.
      Returns:
      den Typ der Gruppe
      Since:
      6.0
      See Also:
    • parseElement

      public NodeParser parseElement(com.inet.report.parser.XMLTag group, String tag, Attributes atts, Map<String,Object> parserMap) throws FatalParserException
      FOR INTERNAL USE ONLY Internal method for reading report XML

      Parses 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 interface NodeParser
      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 parsed
      atts - The set of attributes in the current XMLTag
      parserMap - 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

      public void parseText(String text, Map<String,Object> parserMap)
      FOR INTERNAL USE ONLY Internal method for reading report XML

      This 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 interface NodeParser
      Parameters:
      text - text encountered and to be stored
      parserMap - The map of current Parser.
    • parseEndElement

      public void parseEndElement(com.inet.report.parser.XMLTag group, String tag, Map<String,Object> parserMap) throws FatalParserException
      FOR INTERNAL USE ONLY Internal method for reading report XML

      Receive notification of the end of an XML tag.

      Specified by:
      parseEndElement in interface NodeParser
      Parameters:
      group - XMLTag of the current node to be parsed, or null if there is no such current group.
      tag - The XMLTag to be parsed
      parserMap - 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.
    • isDOMParser

      public boolean isDOMParser()
      FOR INTERNAL USE ONLY Internal method for reading report XML

      Returns whether this node is to be read via a DOM parser.

      Specified by:
      isDOMParser in interface NodeParser
      Returns:
      true if this node is to be read via a DOM parser, false otherwise.
    • parseDOM

      public void parseDOM(Node node, Map<String,Object> parserMap) throws FatalParserException
      FOR INTERNAL USE ONLY Internal method for reading report XML

      Parses the node.

      Specified by:
      parseDOM in interface NodeParser
      Parameters:
      node - the node
      parserMap - 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.