Class SummaryField

java.lang.Object
com.inet.report.Field
com.inet.report.SummaryField
All Implemented Interfaces:
NodeParser, com.inet.report.ReferencedObject, com.inet.report.ReferenceHolder, Validatable, Serializable

public class SummaryField extends Field implements com.inet.report.ReferenceHolder, Validatable
A summary field summarizes data of other fields in the report. You can print out the summary with a FieldElement or a FieldPart. To create a new SummaryField use the method Fields.addSummaryField(Field, int, String) in class Fields and give the field which data should summarized and the kind of the summary using the constants.

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

    • SUM

      public static final int SUM
      SummaryField calculates sum.
      See Also:
    • AVERAGE

      public static final int AVERAGE
      SummaryField calculates average.
      Since:
      6.0
      See Also:
    • SAMPLE_VARIANCE

      public static final int SAMPLE_VARIANCE
      SummaryField calculates sample varianz.
      Since:
      6.0
      See Also:
    • SAMPLE_STANDARD_DEVIATION

      public static final int SAMPLE_STANDARD_DEVIATION
      SummaryField calculates sample standard deviation.
      Since:
      6.0
      See Also:
    • MAXIMUM

      public static final int MAXIMUM
      SummaryField calculates maximum.
      Since:
      6.0
      See Also:
    • MINIMUM

      public static final int MINIMUM
      SummaryField calculates minimum.
      Since:
      6.0
      See Also:
    • COUNT

      public static final int COUNT
      SummaryField calculates count.
      Since:
      6.0
      See Also:
    • POP_VARIANCE

      public static final int POP_VARIANCE
      SummaryField calculates population variance.
      Since:
      6.0
      See Also:
    • POP_STANDARD_DEVIATION

      public static final int POP_STANDARD_DEVIATION
      SummaryField calculates population standard deviation.
      Since:
      6.0
      See Also:
    • DISTINCT_COUNT

      public static final int DISTINCT_COUNT
      SummaryField calculates distinct count.
      Since:
      6.0
      See Also:
    • CORRELATION

      public static final int CORRELATION
      SummaryField calculates correlation.
      Since:
      6.0
      See Also:
    • COVARIANCE

      public static final int COVARIANCE
      SummaryField calculates covariance.
      Since:
      6.0
      See Also:
    • WEIGHTED_AVERAGE

      public static final int WEIGHTED_AVERAGE
      SummaryField calculates weigted average.
      Since:
      6.0
      See Also:
    • MEDIAN

      public static final int MEDIAN
      SummaryField calculates median.
      Since:
      6.0
      See Also:
    • PERCENTILE

      public static final int PERCENTILE
      SummaryField calculates percentile.
      Since:
      6.0
      See Also:
    • NTH_LARGEST

      public static final int NTH_LARGEST
      SummaryField calculates Nth lagest.
      Since:
      6.0
      See Also:
    • NTH_SMALLEST

      public static final int NTH_SMALLEST
      SummaryField calculates Nth smallest.
      Since:
      6.0
      See Also:
    • MODE

      public static final int MODE
      SummaryField calculates mode.
      Since:
      6.0
      See Also:
    • NTH_MOST_FREQUENT

      public static final int NTH_MOST_FREQUENT
      SummaryField calculates Nth most frequent.
      Since:
      6.0
      See Also:
    • PERCENTAGE

      public static final int PERCENTAGE
      SummaryField calculates percentage.
      Since:
      6.0
      See Also:
    • NO_SUMMARY_OPERATION

      public static final int NO_SUMMARY_OPERATION
      SummaryField calculates no operation, data will returned originally.
      Since:
      6.0
      See Also:
    • SUMMARY_REPORT

      public static final int SUMMARY_REPORT
      Indicates that this summary field belongs to the report object
      See Also:
    • SUMMARY_CROSSTAB

      public static final int SUMMARY_CROSSTAB
      Indicates that this summary field belongs to the crosstab column object
      See Also:
    • SUMMARY_CHART

      public static final int SUMMARY_CHART
      Indicates that this summary field belongs to the chart object
      See Also:
    • defaultHolder

      protected com.inet.report.DefaultReferenceHolder defaultHolder
      contains referenced objects
  • Constructor Details

    • SummaryField

      protected SummaryField(com.inet.report.RendererBase ren)
      FOR INTERNAL USE ONLY
  • Method Details

    • setName

      public void setName(String name)
      Sets the name of the summary field. The name is a unique identifier of this field.
      Specified by:
      setName in class Field
      Parameters:
      name - the name for this summary field.
      Throws:
      IllegalArgumentException - will thrown if the name already exists or if the name is null or empty.
      Since:
      6.0
    • setSummaryOperation

      public final void setSummaryOperation(int operation)
      Sets the value of the property 'summary operation'.
      Parameters:
      operation - The new value of the property 'summary operation'.
      Since:
      6.0
      See Also:
    • getSummaryOperation

      public int getSummaryOperation()
      Returns the value of the property 'summary operation'.
      Returns:
      The current value of the property 'summary operation'.
      Since:
      6.0
      See Also:
    • getOperationName

      public static final String getOperationName(int operation)
      Returns the name of the operation by id.
      Parameters:
      operation - the value of the summary operation property.
      Returns:
      String The name of the summary operation
      Since:
      6.0
      See Also:
    • getSummaryOperation

      public static final int getSummaryOperation(String operation)
      Returns the operation constant according to the name
      Parameters:
      operation - Operation name
      Returns:
      operation constant
      Since:
      8.1
      See Also:
    • getSummaryFieldType

      public int getSummaryFieldType()
      Indicates to which object this summary field belongs.
      Returns:
      The summary type
      Since:
      6.0
      See Also:
    • setSummaryFieldType

      public void setSummaryFieldType(int type)
      Sets to which object this summary field belongs.
      Parameters:
      type - the type of parent element.
      Since:
      6.0
      See Also:
    • getResetField

      public Field getResetField()
      Running total is reset if this field value was changed.
      Returns:
      • null
      • a FormulaField
      • a DatabaseField
      • a GroupField
      Throws:
      IllegalStateException - will thrown if changeType is unknown.
      Since:
      6.0
    • setResetField

      public void setResetField(Field rstField)
      Running total Field reset if this field value was changed.
      Parameters:
      rstField -
      • no field is needed, summary will reset on each record
      • resetField have to be an instance of FormulaField
      • resetField have to be an instance of DatabaseField
      • resetField have to be an instance of GroupField
      Throws:
      IllegalArgumentException - will thrown if rstField is a GroupField and does not match a group.
      Since:
      6.0
    • getChangeField

      public Field getChangeField()
      Running total changes if this field value was changed.
      Returns:
      • null
      • a FormulaField
      • a DatabaseField
      • a GroupField
      Throws:
      IllegalStateException - will be thrown if changeType has unknown value;
      Since:
      6.0
      See Also:
    • setChangeField

      public void setChangeField(Field changeField)
      Running total changes if this field value was changed.
      Parameters:
      changeField -
      • no field is needed, summary will be changed on each record
      • changeField have to be an instance of FormulaField
      • changeField have to be an instance of DatabaseField
      • changeField have to be an instance of GroupField
      Throws:
      IllegalArgumentException - will be thrown if changeField is a GroupField and does not match a group.
      Since:
      6.0
      See Also:
    • getSummaryNth

      public int getSummaryNth()
      Returns the Nth value in Nth-functions.
      Returns:
      value of nth property.
      Since:
      6.0
    • setSummaryNth

      public void setSummaryNth(int summaryNth)
      Sets the Nth value in Nth-functions.
      Following operations needs the 'nth' parameter:
      NTH_LARGEST
      NTH_SMALLEST
      NTH_MOST_FREQUENT
      PERCENTILE
      Parameters:
      summaryNth - value of nth property.
      Since:
      6.0
      See Also:
    • setShowPercentVal

      public void setShowPercentVal(boolean newValue)
      Sets how the result of summary operation is shown.
      Parameters:
      newValue - true when the value of this summary field is shown as percent value.
      Since:
      6.0
    • getShowPercentVal

      public boolean getShowPercentVal()
      How result of summary operation is shown.
      Returns:
      true when the value of this summary field is shown as percent value.
      Since:
      6.0
    • getRunningTotal

      public boolean getRunningTotal()
      Returns the running total property of this SummaryField. If it not the running total then it can have a group field, only. A running total SummaryField can change its value for each row. If it is not a running total Field then the value is identical for all rows in one group.
      Returns:
      true if this is a running total.
      Since:
      6.0
      See Also:
    • setRunningTotal

      public void setRunningTotal(boolean isRunningTotal)
      Sets the running total property of this SummaryField.
      Parameters:
      isRunningTotal - the value of the running total property.
      Since:
      6.0
      See Also:
    • getValueType

      public int getValueType()
      Returns the value type (or return type) of the field.
      NOTE:If DefaultAttribute is used within the formula it has to be set before calling this method. A null-value will cause an exception here. If you don't know the exact value of the DefaultAttribute you may use a dummy-value for getValueType. The reason is that getValueType only regards the type of object not their value.
      Overrides:
      getValueType in class Field
      Returns:
      The value of the property 'value type'.
      See Also:
    • paramString

      public String paramString()
      Returns a prettified output of this field's name and type.
      Overrides:
      paramString in class Field
      Returns:
      Prettified output of this field's name and type.
    • generateName

      public static String generateName(String field, String group, int sumType)
      Generates the name of a summary field, i.e. "Count of OrderID".
      For summary functions like "Weighted Average" you can use the method generateName with 4 parameters.
      Parameters:
      field - - name of the field with values to summarizes
      group - - name of the field the values are grouped by
      sumType - - the type of summary function
      Returns:
      String - the generated name
      Since:
      6.0
      See Also:
    • generateName

      public static String generateName(String field, String group, int sumType, String field2)
      Generates the name of a summary field, i.e. "Count of OrderID, CustomerID".
      Use this method for summary functions like "Weighted Average" or "Correlation" etc.
      Parameters:
      field - - name of the field with numeric values to summarizes
      field2 - - name of the second field, e.g. for Weighted Average
      group - - name of the field that contains the values are grouped by
      sumType - - the type of summary function
      Returns:
      String - the generated name
      Since:
      6.0
      See Also:
    • getField2nd

      public Field getField2nd()
      Some Summaries need two fields for calculation, i.e. weighted average, correlation etc. Returns the 2nd field used for weights in weighted average, correlation between the field returned by getField() and the field returned by this function.
      Returns:
      Field
      Since:
      6.0
    • setField2nd

      public void setField2nd(Field field2nd)
      Sets the second field. The second field is used as weights in weighted average or as correlation between the field and second field. Only Field.CURRENCY and Field.NUMBER are as value type of this field supported.
      Following summary operations needs first and second fields for calculation:
      CORRELATION
      COVARIANCE
      WEIGHTED_AVERAGE
      All others ignore this property.
      Parameters:
      field2nd - the second field.
      Since:
      6.0
      See Also:
    • changeAliasName

      public void changeAliasName(String oldAlias, String newAlias)
      FOR INTERNAL USE ONLY
    • 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
    • setReferences

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

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

      public void setField(Field newField)
      Sets the field witch values will be used by result calculating of this summary field.
      Note: some summary operations supports only specific value type of field.
      Following operations supports all value types:
      MAXIMUM
      MINIMUM
      MODE
      NTH_LARGEST
      NTH_MOST_FREQUENT
      NTH_SMALLEST
      COUNT
      DISTINCT_COUNT

      Following operations supports only Field.CURRENCY and Field.NUMBER as value type:
      AVERAGE
      SUM
      MEDIAN
      PERCENTILE
      POP_STANDARD_DEVIATION
      POP_VARIANCE
      SAMPLE_STANDARD_DEVIATION
      SAMPLE_VARIANCE
      CORRELATION
      COVARIANCE
      WEIGHTED_AVERAGE
      Overrides:
      setField in class Field
      Parameters:
      newField - the base field for this summary operation.
      Since:
      6.0
      See Also:
    • setGroup

      public void setGroup(Group group)
      Sets the group this field should associated with. Use this method for setting the group in summary field. GroupFields are generated and initialised automatically at group creation time. You do not need to change the group reference of this fields.
      Overrides:
      setGroup in class Field
      Parameters:
      group - The reference to the group of this field.
      See Also:
    • equals

      public boolean equals(Object obj)
      Indicates whether some other SummaryField is "equal to" this one.
      Overrides:
      equals in class Field
      Parameters:
      obj - Object to compare
      Returns:
      true if this SummaryField is the same as the SummaryField argument; false otherwise.
      Since:
      6.0
    • parseElement

      public NodeParser parseElement(com.inet.report.parser.XMLTag group, String tag, Attributes atts, Map<String,Object> parserMap) throws FatalParserException
      FOR INTERNAL USE ONLY 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
      Overrides:
      parseElement in class Field
      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.
    • saveFieldXML2

      protected void saveFieldXML2(PrintWriter pw, int depth)
      Saves SummaryField attributes
      Specified by:
      saveFieldXML2 in class Field
      Parameters:
      pw - the printwriter.
      depth - the current depth.
      Since:
      8.1
    • duplicate

      public Field duplicate(String name)
      Duplicates this field with all its settings and returns the created Field with the given name. Note that the new formula field will not initially be referenced by any other report objects. If you duplicate a property formula, you will have to set the new formula as a separate property formula.
      Overrides:
      duplicate in class Field
      Parameters:
      name - the name the created field should have.
      Returns:
      the duplicated field.
    • validate

      public Validity validate()
      Check if the object is valid and returns the state and details of possible errors.
      Specified by:
      validate in interface Validatable
      Returns:
      the current state, never null.
    • isInternalField

      public boolean isInternalField()
      FOR INTERNAL USE ONLY Returns whether this is an internal (not editable) summary field
      Returns:
      whether this is an internal (not editable) summary field