Package com.inet.report
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
A summary field summarizes data of other fields in the report. You can print out the
summary with a
This class is part of the RDC.
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.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic enum
FOR INTERNAL USE ONLYstatic enum
FOR INTERNAL USE ONLYNested classes/interfaces inherited from class com.inet.report.Field
Field.FieldAttributeTag
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
SummaryField calculates average.static final int
SummaryField calculates correlation.static final int
SummaryField calculates count.static final int
SummaryField calculates covariance.protected com.inet.report.DefaultReferenceHolder
contains referenced objectsstatic final int
SummaryField calculates distinct count.static final int
SummaryField calculates maximum.static final int
SummaryField calculates median.static final int
SummaryField calculates minimum.static final int
SummaryField calculates mode.static final int
SummaryField calculates no operation, data will returned originally.static final int
SummaryField calculates Nth lagest.static final int
SummaryField calculates Nth most frequent.static final int
SummaryField calculates Nth smallest.static final int
SummaryField calculates percentage.static final int
SummaryField calculates percentile.static final int
SummaryField calculates population standard deviation.static final int
SummaryField calculates population variance.static final int
SummaryField calculates sample standard deviation.static final int
SummaryField calculates sample varianz.static final int
SummaryField calculates sum.static final int
Indicates that this summary field belongs to the chart objectstatic final int
Indicates that this summary field belongs to the crosstab column objectstatic final int
Indicates that this summary field belongs to the report objectstatic final int
SummaryField calculates weigted average.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
-
Constructor Summary
ModifierConstructorDescriptionprotected
SummaryField
(com.inet.report.RendererBase ren) FOR INTERNAL USE ONLY -
Method Summary
Modifier and TypeMethodDescriptionfinal void
addReferencedObject
(com.inet.report.ReferencedObject reference) FOR INTERNAL USE ONLYvoid
changeAliasName
(String oldAlias, String newAlias) FOR INTERNAL USE ONLYDuplicates this field with all its settings and returns the created Field with the given name.boolean
Indicates whether some otherSummaryField
is "equal to" this one.static String
generateName
(String field, String group, int sumType) Generates the name of a summary field, i.e.static String
generateName
(String field, String group, int sumType, String field2) Generates the name of a summary field, i.e.Running total changes if this field value was changed.Some Summaries need two fields for calculation, i.e. weighted average, correlation etc.static final String
getOperationName
(int operation) Returns the name of the operation by id.final int
FOR INTERNAL USE ONLYfinal int
FOR INTERNAL USE ONLYfinal com.inet.report.ReferencedObject[]
FOR INTERNAL USE ONLYRunning total is reset if this field value was changed.boolean
Returns the running total property of this SummaryField.boolean
How result of summary operation is shown.int
Indicates to which object this summary field belongs.int
Returns the Nth value in Nth-functions.int
Returns the value of the property 'summary operation'.static final int
getSummaryOperation
(String operation) Returns the operation constant according to the nameint
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.boolean
FOR INTERNAL USE ONLY Returns whether this is an internal (not editable) summary fieldReturns a prettified output of this field's name and type.parseElement
(com.inet.report.parser.XMLTag group, String tag, Attributes atts, Map<String, Object> parserMap) FOR INTERNAL USE ONLY FOR INTERNAL USE ONLY Internal method for reading report XMLfinal void
removeReferencedObject
(com.inet.report.ReferencedObject reference) FOR INTERNAL USE ONLYvoid
FOR INTERNAL USE ONLYprotected void
saveFieldXML2
(PrintWriter pw, int depth) Saves SummaryField attributesvoid
setChangeField
(Field changeField) Running total changes if this field value was changed.void
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 onlyField.CURRENCY
andField.NUMBER
as value type:
AVERAGE
SUM
MEDIAN
PERCENTILE
POP_STANDARD_DEVIATION
POP_VARIANCE
SAMPLE_STANDARD_DEVIATION
SAMPLE_VARIANCE
CORRELATION
COVARIANCE
WEIGHTED_AVERAGE
void
setField2nd
(Field field2nd) Sets the second field.void
Sets the group this field should associated with.void
Sets the name of the summary field.void
FOR INTERNAL USE ONLYvoid
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.
Following operations needs the 'nth' parameter:
NTH_LARGEST
NTH_SMALLEST
NTH_MOST_FREQUENT
PERCENTILE
final void
setSummaryOperation
(int operation) Sets the value of the property 'summary operation'.validate()
Check if the object is valid and returns the state and details of possible errors.Methods inherited from class com.inet.report.Field
addReferenceHolder, checkNameExists, extractReference, getField, getGroup, getName, getPlaceholderName, getRealReferenceCount, getReferenceHolderCount, getReferenceHolders, getRefName, getType, indexOf, isDOMParser, isUsed, parseDOM, parseEndElement, parseText, removeReferenceHolder, rename, setValueType, trimAwayBrackets
-
Field Details
-
SUM
public static final int SUMSummaryField calculates sum.- See Also:
-
AVERAGE
public static final int AVERAGESummaryField calculates average.- Since:
- 6.0
- See Also:
-
SAMPLE_VARIANCE
public static final int SAMPLE_VARIANCESummaryField calculates sample varianz.- Since:
- 6.0
- See Also:
-
SAMPLE_STANDARD_DEVIATION
public static final int SAMPLE_STANDARD_DEVIATIONSummaryField calculates sample standard deviation.- Since:
- 6.0
- See Also:
-
MAXIMUM
public static final int MAXIMUMSummaryField calculates maximum.- Since:
- 6.0
- See Also:
-
MINIMUM
public static final int MINIMUMSummaryField calculates minimum.- Since:
- 6.0
- See Also:
-
COUNT
public static final int COUNTSummaryField calculates count.- Since:
- 6.0
- See Also:
-
POP_VARIANCE
public static final int POP_VARIANCESummaryField calculates population variance.- Since:
- 6.0
- See Also:
-
POP_STANDARD_DEVIATION
public static final int POP_STANDARD_DEVIATIONSummaryField calculates population standard deviation.- Since:
- 6.0
- See Also:
-
DISTINCT_COUNT
public static final int DISTINCT_COUNTSummaryField calculates distinct count.- Since:
- 6.0
- See Also:
-
CORRELATION
public static final int CORRELATIONSummaryField calculates correlation.- Since:
- 6.0
- See Also:
-
COVARIANCE
public static final int COVARIANCESummaryField calculates covariance.- Since:
- 6.0
- See Also:
-
WEIGHTED_AVERAGE
public static final int WEIGHTED_AVERAGESummaryField calculates weigted average.- Since:
- 6.0
- See Also:
-
MEDIAN
public static final int MEDIANSummaryField calculates median.- Since:
- 6.0
- See Also:
-
PERCENTILE
public static final int PERCENTILESummaryField calculates percentile.- Since:
- 6.0
- See Also:
-
NTH_LARGEST
public static final int NTH_LARGESTSummaryField calculates Nth lagest.- Since:
- 6.0
- See Also:
-
NTH_SMALLEST
public static final int NTH_SMALLESTSummaryField calculates Nth smallest.- Since:
- 6.0
- See Also:
-
MODE
public static final int MODESummaryField calculates mode.- Since:
- 6.0
- See Also:
-
NTH_MOST_FREQUENT
public static final int NTH_MOST_FREQUENTSummaryField calculates Nth most frequent.- Since:
- 6.0
- See Also:
-
PERCENTAGE
public static final int PERCENTAGESummaryField calculates percentage.- Since:
- 6.0
- See Also:
-
NO_SUMMARY_OPERATION
public static final int NO_SUMMARY_OPERATIONSummaryField calculates no operation, data will returned originally.- Since:
- 6.0
- See Also:
-
SUMMARY_REPORT
public static final int SUMMARY_REPORTIndicates that this summary field belongs to the report object- See Also:
-
SUMMARY_CROSSTAB
public static final int SUMMARY_CROSSTABIndicates that this summary field belongs to the crosstab column object- See Also:
-
SUMMARY_CHART
public static final int SUMMARY_CHARTIndicates that this summary field belongs to the chart object- See Also:
-
defaultHolder
protected com.inet.report.DefaultReferenceHolder defaultHoldercontains referenced objects
-
-
Constructor Details
-
SummaryField
protected SummaryField(com.inet.report.RendererBase ren) FOR INTERNAL USE ONLY
-
-
Method Details
-
setName
Sets the name of the summary field. The name is a unique identifier of this field.- Specified by:
setName
in classField
- Parameters:
name
- the name for this summary field.- Throws:
IllegalArgumentException
- will thrown if the name already exists or if the name isnull
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
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
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
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
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
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
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 classField
- Returns:
- The value of the property 'value type'.
- See Also:
-
paramString
Returns a prettified output of this field's name and type.- Overrides:
paramString
in classField
- Returns:
- Prettified output of this field's name and type.
-
generateName
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 summarizesgroup
- - name of the field the values are grouped bysumType
- - the type of summary function- Returns:
- String - the generated name
- Since:
- 6.0
- See Also:
-
generateName
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 summarizesfield2
- - name of the second field, e.g. for Weighted Averagegroup
- - name of the field that contains the values are grouped bysumType
- - the type of summary function- Returns:
- String - the generated name
- Since:
- 6.0
- See Also:
-
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
Sets the second field. The second field is used as weights in weighted average or as correlation between the field and second field. OnlyField.CURRENCY
andField.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
FOR INTERNAL USE ONLY -
addReferencedObject
public final void addReferencedObject(com.inet.report.ReferencedObject reference) FOR INTERNAL USE ONLY- Specified by:
addReferencedObject
in interfacecom.inet.report.ReferenceHolder
- Since:
- 6.0
-
getReferencedObjects
public final com.inet.report.ReferencedObject[] getReferencedObjects()FOR INTERNAL USE ONLY- Specified by:
getReferencedObjects
in interfacecom.inet.report.ReferenceHolder
-
getRealReferencedObjectCount
public final int getRealReferencedObjectCount()FOR INTERNAL USE ONLY- Specified by:
getRealReferencedObjectCount
in interfacecom.inet.report.ReferenceHolder
- Since:
- 6.0
-
getReferencedObjectCount
public final int getReferencedObjectCount()FOR INTERNAL USE ONLY- Specified by:
getReferencedObjectCount
in interfacecom.inet.report.ReferenceHolder
-
removeReferencedObject
public final void removeReferencedObject(com.inet.report.ReferencedObject reference) FOR INTERNAL USE ONLY- Specified by:
removeReferencedObject
in interfacecom.inet.report.ReferenceHolder
- Since:
- 6.0
-
setReferences
public void setReferences()FOR INTERNAL USE ONLY- Specified by:
setReferences
in interfacecom.inet.report.ReferenceHolder
-
resetReferences
public void resetReferences()FOR INTERNAL USE ONLY- Specified by:
resetReferences
in interfacecom.inet.report.ReferenceHolder
-
setField
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 onlyField.CURRENCY
andField.NUMBER
as value type:
AVERAGE
SUM
MEDIAN
PERCENTILE
POP_STANDARD_DEVIATION
POP_VARIANCE
SAMPLE_STANDARD_DEVIATION
SAMPLE_VARIANCE
CORRELATION
COVARIANCE
WEIGHTED_AVERAGE
-
setGroup
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. -
equals
Indicates whether some otherSummaryField
is "equal to" this one. -
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 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 classField
- 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.
-
saveFieldXML2
Saves SummaryField attributes- Specified by:
saveFieldXML2
in classField
- Parameters:
pw
- the printwriter.depth
- the current depth.- Since:
- 8.1
-
duplicate
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. -
validate
Check if the object is valid and returns the state and details of possible errors.- Specified by:
validate
in interfaceValidatable
- 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
-