i-net Clear Reports

com.inet.report
Class SortField

java.lang.Object
  extended by com.inet.report.Field
      extended by com.inet.report.SortField
All Implemented Interfaces:
NodeParser, com.inet.report.ReferencedObject, com.inet.report.ReferenceHolder, Validatable, java.io.Serializable

public class SortField
extends Field
implements com.inet.report.ReferenceHolder, Validatable

With this field you can only set the sorting of the report data. This field can not be displayed with a FieldElement.

This class is part of the RDC.

See Also:
Fields.addSortField(String, int), Fields.getSortFieldsCount(), Fields.getSortField(int), Fields.removeSortField(int), FieldElement, FieldPart, Serialized Form

Field Summary
static int ASCENDING_ORDER
          Sort records ascending.
static int DESCENDING_ORDER
          Sort records descending.
static int ORIGINAL_ORDER
          Do not sort records, let it unsorted.
 
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
 boolean equals(java.lang.Object obj)
          Indicates whether some other SortField is "equal to" this one.
 int getSort()
          Returns the value of the property 'sort direction'.
 FormulaField getSortDirectionFormula()
          Returns the formula of sort direction for this sort field.
 int getValueType()
          Returns the value type (or return type) of the field.
 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)
          XML2: FOR INTERNAL USE ONLY
 void setName(java.lang.String name)
          Sets the name of the sort field.
 void setSort(int newValue)
          Sets the value of the property 'sort direction'.
 void setSortDirectionFormula(FormulaField formula)
          Sets the formula of sort direction.
 void updateName()
          Updates the field's ref name.
 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, duplicate, extractReference, getField, getGroup, getName, getPlaceholderName, getRefName, getType, indexOf, paramString, setField, setGroup, setValueType, trimAwayBrackets
 
Methods inherited from interface com.inet.report.parser.NodeParser
isDOMParser, parseDOM, parseEndElement, parseText
 

Field Detail

ASCENDING_ORDER

public static final int ASCENDING_ORDER
Sort records ascending.

See Also:
Constant Field Values

DESCENDING_ORDER

public static final int DESCENDING_ORDER
Sort records descending.

See Also:
Constant Field Values

ORIGINAL_ORDER

public static final int ORIGINAL_ORDER
Do not sort records, let it unsorted.

See Also:
Constant Field Values
Method Detail

setName

public void setName(java.lang.String name)
             throws ReportException
Sets the name of the sort field. The name must be the name of the database field, which should be the sort criterion. The name of the field should start with a special character for instanciation:
This is different to the naming of a field, where you do not concatenate the character, because you give the field only a name. Here you want to instanciate an existing field with its name.

Specified by:
setName in class Field
Parameters:
name - The name of the sort field for example, Users.UserID
Throws:
ReportException - if no database field with this name exists
java.lang.IllegalArgumentException - if a sort field with name equals name already exists

setSort

public void setSort(int newValue)
Sets the value of the property 'sort direction'. The sort direction determines the order of the fetched data in the presented list. It can be ascending, descending or original order.

Parameters:
newValue - The new value of the property 'sort direction'.
See Also:
setSortDirectionFormula(FormulaField formula), ASCENDING_ORDER, DESCENDING_ORDER, ORIGINAL_ORDER

getSort

public int getSort()
Returns the value of the property 'sort direction'.

Returns:
The current value of the property 'sort direction'.
See Also:
ASCENDING_ORDER, DESCENDING_ORDER, ORIGINAL_ORDER, setSort(int)

setSortDirectionFormula

public void setSortDirectionFormula(FormulaField formula)
                             throws ReportException
Sets the formula of sort direction. This formula must be of type FormulaField.FORMULA_PROPERTY and must return a positive int value. Allowed range of values 0 for ASCENDING_ORDER, 1 for DESCENDING_ORDER, 2 for ORIGINAL_ORDER (data stays unsorted). 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

getSortDirectionFormula

public FormulaField getSortDirectionFormula()
Returns the formula of sort direction for this sort field.

Returns:
sort direction formula
See Also:
setSortDirectionFormula(FormulaField formula)

saveFieldXML2

protected void saveFieldXML2(java.io.PrintWriter pw,
                             int depth)
XML2: FOR INTERNAL USE ONLY

Parameters:
pw - the print writer
depth - the current depth

equals

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

Overrides:
equals in class java.lang.Object
Parameters:
obj - the reference SortField with which to compare.
Returns:
true if this SortField is the same as the SortField argument; false otherwise.
Since:
6.0

getValueType

public int getValueType()
Returns the value type (or return type) of the field.

Overrides:
getValueType in class Field
Returns:
The value of the property 'value type'. Will be Field.UNKNOWN if the current value of the 'field' property is not set. Use validate() to check this.
Since:
6.1
See Also:
Field.NUMBER, Field.CURRENCY, Field.BOOLEAN, Field.DATE, Field.TIME, Field.STRING, Field.DATETIME

updateName

public void updateName()
Updates the field's ref name. Note that this method simply updates the name of this SortField by calling {FieldField.getRefName().

See Also:
Field.getRefName()

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.

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