i-net Clear Reports

com.inet.report
Class SummaryField

java.lang.Object
  extended by com.inet.report.Field
      extended by com.inet.report.SummaryField
All Implemented Interfaces:
NodeParser, com.inet.report.ReferencedObject, com.inet.report.ReferenceHolder, Validatable, java.io.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:
Fields.addSummaryField(Field, Field, int, String), Fields.addSummaryField(Field, int, String), Fields.getSummaryFieldsCount(), Fields.getSummaryField(int), Fields.removeSummaryField(int), FieldElement, FieldPart, Serialized Form

Field Summary
static int AVERAGE
          SummaryField calculates average.
static int CORRELATION
          SummaryField calculates correlation.
static int COUNT
          SummaryField calculates count.
static int COVARIANCE
          SummaryField calculates covariance.
static int DISTINCT_COUNT
          SummaryField calculates distinct count.
static int MAXIMUM
          SummaryField calculates maximum.
static int MEDIAN
          SummaryField calculates median.
static int MINIMUM
          SummaryField calculates minimum.
static int MODE
          SummaryField calculates mode.
static int NO_SUMMARY_OPERATION
          SummaryField calculates no operation, data will returned originally.
static int NTH_LARGEST
          SummaryField calculates Nth lagest.
static int NTH_MOST_FREQUENT
          SummaryField calculates Nth most frequent.
static int NTH_SMALLEST
          SummaryField calculates Nth smallest.
static int PERCENTAGE
          SummaryField calculates percentage.
static int PERCENTILE
          SummaryField calculates percentile.
static int POP_STANDARD_DEVIATION
          SummaryField calculates population standard deviation.
static int POP_VARIANCE
          SummaryField calculates population variance.
static int SAMPLE_STANDARD_DEVIATION
          SummaryField calculates sample standard deviation.
static int SAMPLE_VARIANCE
          SummaryField calculates sample varianz.
static int SUM
          SummaryField calculates sum.
static int SUMMARY_CHART
          Indicates that this summary field belongs to the chart object
static int SUMMARY_CROSSTAB
          Indicates that this summary field belongs to the crosstab column object
static int SUMMARY_REPORT
          Indicates that this summary field belongs to the report object
static int WEIGHTED_AVERAGE
          SummaryField calculates weigted average.
protected  com.inet.report.DefaultReferenceHolder defaultHolder
          contains referenced objects
 
Fields inherited from class com.inet.report.Field
BINARY, BOOLEAN, CURRENCY, CURSOR, DATABASE_FIELD, DATE, DATETIME, FORMULA_FIELD, GROUP_NAME_FIELD, NUMBER, PARAMETER_FIELD, SORT_FIELD, SPECIAL_FIELD, SQL_FIELD, STRING, SUMMARY_FIELD, TIME, UNKNOWN
 
Method Summary
 Field duplicate(java.lang.String name)
          Duplicates this field with all its settings and returns the created Field with the given name.
 boolean equals(java.lang.Object obj)
          Indicates whether some other SummaryField is "equal to" this one.
static java.lang.String generateName(java.lang.String field, java.lang.String group, int sumType)
          Generates the name of a summary field, i.e.
static java.lang.String generateName(java.lang.String field, java.lang.String group, int sumType, java.lang.String field2)
          Generates the name of a summary field, i.e.
 Field getChangeField()
          Running total changes if this field value was changed.
 Field getField2nd()
          Some Summaries need two fields for calculation, i.e. weighted average, correlation etc.
static java.lang.String getOperationName(int operation)
          Returns the name of the operation by id.
 Field getResetField()
          Running total is reset if this field value was changed.
 boolean getRunningTotal()
          Returns the running total property of this SummaryField.
 boolean getShowPercentVal()
          How result of summary operation is shown.
 int getSummaryFieldType()
          Indicates to which object this summary field belongs.
 int getSummaryNth()
          Returns the Nth value in Nth-functions.
 int getSummaryOperation()
          Returns the value of the property 'summary operation'.
static int getSummaryOperation(java.lang.String operation)
          Returns the operation constant according to the name
 int getValueType()
          Returns the value type (or return type) of the field.
 java.lang.String paramString()
          Returns a prettified output of this field's name and type.
 NodeParser parseElement(com.inet.report.parser.XMLTag group, java.lang.String tag, org.xml.sax.Attributes atts, java.util.Map parserMap)
          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.
protected  void saveFieldXML2(java.io.PrintWriter pw, int depth)
          Saves SummaryField attributes
 void setChangeField(Field changeField)
          Running total changes if this field value was changed.
 void setField(Field newField)
          Sets the field witch values will be used by result calculating of this summary field.
 void setField2nd(Field field2nd)
          Sets the second field.
 void setGroup(Group group)
          Sets the group this field should associated with.
 void setName(java.lang.String name)
          Sets the name of the summary field.
 void setResetField(Field rstField)
          Running total Field reset if this field value was changed.
 void setRunningTotal(boolean isRunningTotal)
          Sets the running total property of this SummaryField.
 void setShowPercentVal(boolean newValue)
          Sets how the result of summary operation is shown.
 void setSummaryFieldType(int type)
          Sets to which object this summary field belongs.
 void setSummaryNth(int summaryNth)
          Sets the Nth value in Nth-functions.
 void setSummaryOperation(int operation)
          Sets the value of the property 'summary operation'.
 Validity validate()
          Check if the object is valid and returns the state and details of possible errors.
 
Methods inherited from class com.inet.report.Field
checkNameExists, extractReference, getField, getGroup, getName, getPlaceholderName, getRefName, getType, indexOf, setValueType, trimAwayBrackets
 
Methods inherited from interface com.inet.report.parser.NodeParser
isDOMParser, parseDOM, parseEndElement, parseText
 

Field Detail

SUM

public static final int SUM
SummaryField calculates sum.

See Also:
Constant Field Values

AVERAGE

public static final int AVERAGE
SummaryField calculates average.

Since:
6.0
See Also:
Constant Field Values

SAMPLE_VARIANCE

public static final int SAMPLE_VARIANCE
SummaryField calculates sample varianz.

Since:
6.0
See Also:
Constant Field Values

SAMPLE_STANDARD_DEVIATION

public static final int SAMPLE_STANDARD_DEVIATION
SummaryField calculates sample standard deviation.

Since:
6.0
See Also:
Constant Field Values

MAXIMUM

public static final int MAXIMUM
SummaryField calculates maximum.

Since:
6.0
See Also:
Constant Field Values

MINIMUM

public static final int MINIMUM
SummaryField calculates minimum.

Since:
6.0
See Also:
Constant Field Values

COUNT

public static final int COUNT
SummaryField calculates count.

Since:
6.0
See Also:
Constant Field Values

POP_VARIANCE

public static final int POP_VARIANCE
SummaryField calculates population variance.

Since:
6.0
See Also:
Constant Field Values

POP_STANDARD_DEVIATION

public static final int POP_STANDARD_DEVIATION
SummaryField calculates population standard deviation.

Since:
6.0
See Also:
Constant Field Values

DISTINCT_COUNT

public static final int DISTINCT_COUNT
SummaryField calculates distinct count.

Since:
6.0
See Also:
Constant Field Values

CORRELATION

public static final int CORRELATION
SummaryField calculates correlation.

Since:
6.0
See Also:
Constant Field Values

COVARIANCE

public static final int COVARIANCE
SummaryField calculates covariance.

Since:
6.0
See Also:
Constant Field Values

WEIGHTED_AVERAGE

public static final int WEIGHTED_AVERAGE
SummaryField calculates weigted average.

Since:
6.0
See Also:
Constant Field Values

MEDIAN

public static final int MEDIAN
SummaryField calculates median.

Since:
6.0
See Also:
Constant Field Values

PERCENTILE

public static final int PERCENTILE
SummaryField calculates percentile.

Since:
6.0
See Also:
Constant Field Values

NTH_LARGEST

public static final int NTH_LARGEST
SummaryField calculates Nth lagest.

Since:
6.0
See Also:
Constant Field Values

NTH_SMALLEST

public static final int NTH_SMALLEST
SummaryField calculates Nth smallest.

Since:
6.0
See Also:
Constant Field Values

MODE

public static final int MODE
SummaryField calculates mode.

Since:
6.0
See Also:
Constant Field Values

NTH_MOST_FREQUENT

public static final int NTH_MOST_FREQUENT
SummaryField calculates Nth most frequent.

Since:
6.0
See Also:
Constant Field Values

PERCENTAGE

public static final int PERCENTAGE
SummaryField calculates percentage.

Since:
6.0
See Also:
Constant Field Values

NO_SUMMARY_OPERATION

public static final int NO_SUMMARY_OPERATION
SummaryField calculates no operation, data will returned originally.

Since:
6.0
See Also:
Constant Field Values

SUMMARY_REPORT

public static final int SUMMARY_REPORT
Indicates that this summary field belongs to the report object

See Also:
Constant Field Values

SUMMARY_CROSSTAB

public static final int SUMMARY_CROSSTAB
Indicates that this summary field belongs to the crosstab column object

See Also:
Constant Field Values

SUMMARY_CHART

public static final int SUMMARY_CHART
Indicates that this summary field belongs to the chart object

See Also:
Constant Field Values

defaultHolder

protected com.inet.report.DefaultReferenceHolder defaultHolder
contains referenced objects

Method Detail

setName

public void setName(java.lang.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:
java.lang.IllegalArgumentException - will thrown if the name already exists or if the name is null or empty.

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:
SUM, AVERAGE, SAMPLE_VARIANCE, SAMPLE_STANDARD_DEVIATION, MAXIMUM, MINIMUM, COUNT, POP_VARIANCE, POP_STANDARD_DEVIATION, DISTINCT_COUNT, CORRELATION, COVARIANCE, WEIGHTED_AVERAGE, MEDIAN, PERCENTILE, NTH_LARGEST, NTH_SMALLEST, MODE, NTH_MOST_FREQUENT, PERCENTAGE, NO_SUMMARY_OPERATION

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:
SUM, AVERAGE, SAMPLE_VARIANCE, SAMPLE_STANDARD_DEVIATION, MAXIMUM, MINIMUM, COUNT, POP_VARIANCE, POP_STANDARD_DEVIATION, DISTINCT_COUNT, CORRELATION, COVARIANCE, WEIGHTED_AVERAGE, MEDIAN, PERCENTILE, NTH_LARGEST, NTH_SMALLEST, MODE, NTH_MOST_FREQUENT, PERCENTAGE, NO_SUMMARY_OPERATION

getOperationName

public static final java.lang.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()

getSummaryOperation

public static final int getSummaryOperation(java.lang.String operation)
Returns the operation constant according to the name

Parameters:
operation - Operation name
Returns:
operation constant
Since:
8.1
See Also:
SUM, AVERAGE, SAMPLE_VARIANCE, SAMPLE_STANDARD_DEVIATION, MAXIMUM, MINIMUM, COUNT, POP_VARIANCE, POP_STANDARD_DEVIATION, DISTINCT_COUNT, CORRELATION, COVARIANCE, WEIGHTED_AVERAGE, MEDIAN, PERCENTILE, NTH_LARGEST, NTH_SMALLEST, MODE, NTH_MOST_FREQUENT, PERCENTAGE, NO_SUMMARY_OPERATION

getSummaryFieldType

public int getSummaryFieldType()
Indicates to which object this summary field belongs.

Returns:
The summary type
See Also:
SUMMARY_REPORT, SUMMARY_CROSSTAB, SUMMARY_CHART

setSummaryFieldType

public void setSummaryFieldType(int type)
Sets to which object this summary field belongs.

Parameters:
type - the type of parent element.
See Also:
SUMMARY_REPORT, SUMMARY_CROSSTAB, SUMMARY_CHART

getResetField

public Field getResetField()
Running total is reset if this field value was changed.

Returns:
  • null
  • a FormulaField
  • a DatabaseField
  • a GroupField
Throws:
java.lang.IllegalStateException - will thrown if changeType is unknown.

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:
java.lang.IllegalArgumentException - will thrown if rstField is a GroupField and does not match a group.

getChangeField

public Field getChangeField()
Running total changes if this field value was changed.

Returns:
  • null
  • a FormulaField
  • a DatabaseField
  • a GroupField
Throws:
java.lang.IllegalStateException - will be thrown if changeType has unknown value;
See Also:
setChangeField(com.inet.report.Field)

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:
java.lang.IllegalArgumentException - will be thrown if changeField is a GroupField and does not match a group.
See Also:
setResetField(com.inet.report.Field)

getSummaryNth

public int getSummaryNth()
Returns the Nth value in Nth-functions.

Returns:
value of nth property.

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.
See Also:
getSummaryNth(), setSummaryOperation(int)

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.

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.

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.
See Also:
setRunningTotal(boolean)

setRunningTotal

public void setRunningTotal(boolean isRunningTotal)
Sets the running total property of this SummaryField.

Parameters:
isRunningTotal - the value of the running total property.
See Also:
getRunningTotal()

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:
Field.NUMBER, Field.CURRENCY, Field.BOOLEAN, Field.DATE, Field.TIME, Field.STRING, Field.DATETIME

paramString

public java.lang.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 java.lang.String generateName(java.lang.String field,
                                            java.lang.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
See Also:
generateName(String, String, int, String)

generateName

public static java.lang.String generateName(java.lang.String field,
                                            java.lang.String group,
                                            int sumType,
                                            java.lang.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
See Also:
generateName(String, String, int)

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

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.
See Also:
getField2nd(), setField(Field), setSummaryOperation(int)

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.
See Also:
Field.getField(), setSummaryOperation(int), Field.getValueType()

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:
SummaryField, GroupField, Group

equals

public boolean equals(java.lang.Object obj)
Indicates whether some other SummaryField is "equal to" this one.

Overrides:
equals in class java.lang.Object
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,
                               java.lang.String tag,
                               org.xml.sax.Attributes atts,
                               java.util.Map 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.

saveFieldXML2

protected void saveFieldXML2(java.io.PrintWriter pw,
                             int depth)
Saves SummaryField attributes

Parameters:
pw - the printwriter.
depth - the current depth.
Since:
8.1

duplicate

public Field duplicate(java.lang.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.

i-net Clear Reports

Copyright © 1999-2011 by i-net software GmbH