i-net Clear Reports

com.inet.report
Class Field

java.lang.Object
  extended by com.inet.report.Field
All Implemented Interfaces:
NodeParser, com.inet.report.ReferencedObject, java.io.Serializable
Direct Known Subclasses:
DatabaseField, FormulaField, GroupField, PromptField, SQLField, SortField, SpecialField, SummaryField

public abstract class Field
extends java.lang.Object
implements java.io.Serializable, com.inet.report.ReferencedObject, NodeParser

Field is the superclass of the different types of fields which can be used in a report. It summarizes the properties shared by all fields. A field is dynamic content in a report, it will be evaluated at runtime and deliver static content (text, picture, ...) for each record to the element that uses the field. I.e. if you want to insert a dynamic label into your report, you have to use a FieldElement or a Text with a FieldPart. Both FieldElement and FieldPart get their content from a Field. For each kind of source there is a specialized subclass. There are SpecialField s for contents like 'page number' and 'current date/time', DatabaseField s for content that comes from a database, PromptField s for content that the user will be asked for at runtime, FormulaField s for content that is calculated by a formula, ... .
All fields are collected within the class Fields, so you can not create an instance of Field or subclasses.
If you want to instantiate a field by name, the name of the field should start with a special character:

This is different from just setting the name of a field, in which case you do not prepend the character.

See Also:
Fields, FieldElement, FieldPart, Serialized Form

Field Summary
static int BINARY
          The constant that identifies a Binary value.
static int BOOLEAN
          The constant that identifies a Boolean value.
static int CURRENCY
          The constant that identifies a Currency value.
static int CURSOR
          The constant that identifies a Cursor value.
static int DATABASE_FIELD
          Field is a database field.
static int DATE
          The constant that identifies a Date value.
static int DATETIME
          The constant that identifies a DateTime value.
static int FORMULA_FIELD
          Field is a formula field.
static int GROUP_NAME_FIELD
          Field is a group name field.
static int NUMBER
          The constant that identifies a Number value.
static int PARAMETER_FIELD
          Field is a parameter field.
static int SORT_FIELD
          Field is a sort field.
static int SPECIAL_FIELD
          Field is a special field.
static int SQL_FIELD
          Field is a sql field.
static int STRING
          The constant that identifies a String value.
static int SUMMARY_FIELD
          Field is a summary field.
static int TIME
          The constant that identifies a Time value.
static int UNKNOWN
          The constant that identifies an unspecific type.
 
Method Summary
 boolean checkNameExists(java.lang.String nameToCheck)
          Checks whether the string name is the property 'name' of the field.
 Field duplicate(java.lang.String name)
          Duplicates this field with all its settings and returns the created Field with the given name.
protected  void extractReference(org.xml.sax.Attributes atts)
          extracts the referenced field and sets it for this Field object
 Field getField()
          Gets the field definition element (for example, database field element, prompt field element).
 Group getGroup()
          Returns the group this field is associated with.
 java.lang.String getName()
          Returns the value of the property 'name'.
 java.lang.String getPlaceholderName()
          Returns the placeholder of this field including its brackets, required to use the field in formulas and sql statements.
 java.lang.String getRefName()
          Returns the value of the property 'name' with a type marker.
 int getType()
          Returns the value of the property 'type'.
 int getValueType()
          Returns the value type (or return type) of the field.
 int indexOf()
          Returns the index of the field in the fields set.
 java.lang.String paramString()
          Returns a prettified output of this field's name and type.
 void setField(Field newField)
          Sets the field definition element (for example, DatabaseField element, prompt field element).
 void setGroup(Group group)
          Sets the group this field should associated with.
abstract  void setName(java.lang.String newValue)
          Sets the value of the property 'name'.
 void setValueType(int newValue)
          Sets the value of the property 'value type'.
protected  java.lang.String trimAwayBrackets(java.lang.String refname)
          trims away "{" before and after string, e.g.
 
Methods inherited from interface com.inet.report.parser.NodeParser
isDOMParser, parseDOM, parseElement, parseEndElement, parseText
 

Field Detail

NUMBER

public static final int NUMBER
The constant that identifies a Number value.

See Also:
Constant Field Values

CURRENCY

public static final int CURRENCY
The constant that identifies a Currency value.

See Also:
Constant Field Values

BOOLEAN

public static final int BOOLEAN
The constant that identifies a Boolean value.

See Also:
Constant Field Values

DATE

public static final int DATE
The constant that identifies a Date value.

See Also:
Constant Field Values

TIME

public static final int TIME
The constant that identifies a Time value.

See Also:
Constant Field Values

STRING

public static final int STRING
The constant that identifies a String value.

See Also:
Constant Field Values

BINARY

public static final int BINARY
The constant that identifies a Binary value.

See Also:
Constant Field Values

DATETIME

public static final int DATETIME
The constant that identifies a DateTime value.

See Also:
Constant Field Values

CURSOR

public static final int CURSOR
The constant that identifies a Cursor value.

See Also:
Constant Field Values

UNKNOWN

public static final int UNKNOWN
The constant that identifies an unspecific type.

See Also:
Constant Field Values

DATABASE_FIELD

public static final int DATABASE_FIELD
Field is a database field.

See Also:
Constant Field Values

FORMULA_FIELD

public static final int FORMULA_FIELD
Field is a formula field.

See Also:
Constant Field Values

SUMMARY_FIELD

public static final int SUMMARY_FIELD
Field is a summary field.

See Also:
Constant Field Values

SPECIAL_FIELD

public static final int SPECIAL_FIELD
Field is a special field.

See Also:
Constant Field Values

GROUP_NAME_FIELD

public static final int GROUP_NAME_FIELD
Field is a group name field.

See Also:
Constant Field Values

PARAMETER_FIELD

public static final int PARAMETER_FIELD
Field is a parameter field.

See Also:
Constant Field Values

SORT_FIELD

public static final int SORT_FIELD
Field is a sort field.

See Also:
Constant Field Values

SQL_FIELD

public static final int SQL_FIELD
Field is a sql field.

See Also:
Constant Field Values
Method Detail

paramString

public java.lang.String paramString()
Returns a prettified output of this field's name and type.

Returns:
Prettified output of this field's name and type.

getPlaceholderName

public java.lang.String getPlaceholderName()
Returns the placeholder of this field including its brackets, required to use the field in formulas and sql statements. To use a field in a formula or in a sql statement, it is necessary to put the placeholder of this field in it.

Returns:
The placeholder of this field with its brackets, e.g. "{#mySummary}"

getName

public java.lang.String getName()
Returns the value of the property 'name'.

Returns:
The value of the property 'name'.
See Also:
setName(java.lang.String), getRefName()

setName

public abstract void setName(java.lang.String newValue)
                      throws ReportException
Sets the value of the property 'name'.

Parameters:
newValue - newValue The new value of the property 'name'.
Throws:
ReportException - will thrown if the name already exists or is not allowed.

getRefName

public java.lang.String getRefName()
Returns the value of the property 'name' with a type marker. This is the name that is used in formulas. For example for the formula 'abc' is the return value '@abc'.

Returns:
The reference name.
See Also:
getName(), getType()

getField

public Field getField()
Gets the field definition element (for example, database field element, prompt field element).

Returns:
Field The current value of the 'field' property.

setField

public void setField(Field newField)
Sets the field definition element (for example, DatabaseField element, prompt field element).

Parameters:
newField - The new field element of the property 'field'.

getType

public int getType()
Returns the value of the property 'type'.

Returns:
The value of the property 'type'.
See Also:
DATABASE_FIELD, FORMULA_FIELD, SUMMARY_FIELD, SPECIAL_FIELD, GROUP_NAME_FIELD, PARAMETER_FIELD, SORT_FIELD, SQL_FIELD, DatabaseField, FormulaField, SummaryField, SpecialField, GroupField, PromptField, SortField, SQLField

getGroup

public Group getGroup()
Returns the group this field is associated with.

Returns:
Returns the group based on this field if there is one, else null.
See Also:
SummaryField, GroupField, Group

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.

Parameters:
group - The reference to the group of this field.
See Also:
SummaryField, GroupField, Group

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.

Returns:
The value of the property 'value type'.
Throws:
java.lang.IllegalStateException - if the field is in a state where the value type can not be determined
See Also:
NUMBER, CURRENCY, BOOLEAN, DATE, TIME, STRING, DATETIME

setValueType

public void setValueType(int newValue)
Sets the value of the property 'value type'.

Parameters:
newValue - The new value of the property 'value type'.
Throws:
java.lang.IllegalArgumentException - If newValue is not one of the types below (NUMBER, CURRENCY, ...):
See Also:
NUMBER, CURRENCY, BOOLEAN, DATE, TIME, STRING, DATETIME, CURSOR, BINARY

indexOf

public int indexOf()
Returns the index of the field in the fields set. For each field type there is a separate list (DatabaseField, FormulaField, PromptField, SummaryField, SQLField, SortField, GroupField).
Note: Do not call this method for FormulaFields which are either record selection formula, group selection formula or property formulas. If the field was already removed from Engine this will return -1.

Returns:
The index of the field in the field set of this engine or -1 if the field was already removed from the engine.
See Also:
Fields.removeDatabaseField(int), Fields.removeFormulaField(int), Fields.removePromptField(int), Fields.removeSummaryField(int), Fields.removeSQLField(int), Fields.removeSortField(int), Fields.getDatabaseField(int), Fields.getFormulaField(int), Fields.getPromptField(int), Fields.getSummaryField(int), Fields.getSQLExpressionField(int), Fields.getSortField(int)

checkNameExists

public boolean checkNameExists(java.lang.String nameToCheck)
Checks whether the string name is the property 'name' of the field.

Parameters:
nameToCheck - Name to be checked
Returns:
true if name equals the field's property 'name'

extractReference

protected void extractReference(org.xml.sax.Attributes atts)
                         throws ReportException
extracts the referenced field and sets it for this Field object

Parameters:
atts - XML attributes containing "name" and "value"
Throws:
ReportException - If there are problems setting the field
Since:
8.0

trimAwayBrackets

protected java.lang.String trimAwayBrackets(java.lang.String refname)
trims away "{" before and after string, e.g. {abc} => abc

Parameters:
refname - name to trim
Returns:
trimmed string
Since:
8.0

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.

Parameters:
name - the name the created field should have.
Returns:
the duplicated field.
Throws:
java.lang.IllegalArgumentException - if an field with the given name already exists .
java.lang.UnsupportedOperationException - if a field which is not a FormulaField, PromptField, SQLField, or SummaryField is attempted to be duplicated
Since:
9.0

i-net Clear Reports

Copyright © 1999-2011 by i-net software GmbH