com.aspose.words
Class Field

java.lang.Object
    extended by com.aspose.words.Field
Direct Known Subclasses:
FieldAddIn, FieldAddressBlock, FieldAdvance, FieldAsk, FieldAuthor, FieldAutoNum, FieldAutoNumLgl, FieldAutoNumOut, FieldAutoText, FieldAutoTextList, FieldBarcode, FieldBibliography, FieldBidiOutline, FieldCitation, FieldComments, FieldCompare, FieldCreateDate, FieldData, FieldDatabase, FieldDate, FieldDde, FieldDdeAuto, FieldDisplayBarcode, FieldDocProperty, FieldDocVariable, FieldEditTime, FieldEmbed, FieldEQ, FieldFileName, FieldFileSize, FieldFillIn, FieldFootnoteRef, FieldFormCheckBox, FieldFormDropDown, FieldFormText, FieldFormula, FieldGlossary, FieldGoToButton, FieldGreetingLine, FieldHyperlink, FieldIf, FieldImport, FieldInclude, FieldIncludePicture, FieldIncludeText, FieldIndex, FieldInfo, FieldKeywords, FieldLastSavedBy, FieldLink, FieldListNum, FieldMacroButton, FieldMergeBarcode, FieldMergeField, FieldMergeRec, FieldMergeSeq, FieldNext, FieldNextIf, FieldNoteRef, FieldNumChars, FieldNumPages, FieldNumWords, FieldOcx, FieldPage, FieldPageRef, FieldPrint, FieldPrintDate, FieldPrivate, FieldQuote, FieldRD, FieldRef, FieldRevNum, FieldSaveDate, FieldSection, FieldSectionPages, FieldSeq, FieldSet, FieldShape, FieldSkipIf, FieldStyleRef, FieldSubject, FieldSymbol, FieldTA, FieldTC, FieldTemplate, FieldTime, FieldTitle, FieldToa, FieldToc, FieldUserAddress, FieldUserInitials, FieldUserName, FieldXE

public class Field 
extends java.lang.Object

Represents a Microsoft Word document field.

A field in a Word document is a complex structure consisting of multiple nodes that include field start, field code, field separator, field result and field end. Fields can be nested, contain rich content and span multiple paragraphs or sections in a document. The Field class is a "facade" object that provides properties and methods that allow to work with a field as a single object.

The Start, Separator and End properties point to the field start, separator and end nodes of the field respectively.

The content between the field start and separator is the field code. The content between the field separator and field end is the field result. The field code typically consists of one or more Run objects that specify instructions. The processing application is expected to execute the field code to calculate the field result.

The process of calculating field results is called the field update. Aspose.Words can update field results of most of the field types in exactly the same way as Microsoft Word does it. Most notably, Aspose.Words can calculate results of even the most complex formula fields. To calculate the field result of a single field use the update() method. To update fields in the whole document use Document.updateFields().

You can get the plain text version of the field code using the getFieldCode() method. You can get and set the plain text version of the field result using the Result property. Both the field code and field result can contain complex content, such as nested fields, paragraphs, shapes, tables and in this case you might want to work with the field nodes directly if you need more control.

You do not create instances of the Field class directly. To create a new field use the DocumentBuilder.insertField(java.lang.String) method.

Example:

Inserts a field into a document using DocumentBuilder.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Insert a simple Date field into the document.
// When we insert a field through the DocumentBuilder class we can get the
// special Field object which contains information about the field.
Field dateField = builder.insertField("DATE \\* MERGEFORMAT");

// Update this particular field in the document so we can get the FieldResult.
dateField.update();

// Display some information from this field.
// The field result is where the last evaluated value is stored. This is what is displayed in the document
// When field codes are not showing.
System.out.println(MessageFormat.format("FieldResult: {0}", dateField.getResult()));

// Display the field code which defines the behaviour of the field. This can been seen in Microsoft Word by pressing ALT+F9.
System.out.println(MessageFormat.format("FieldCode: {0}", dateField.getFieldCode()));

// The field type defines what type of field in the Document this is. In this case the type is "FieldDate"
System.out.println(MessageFormat.format("FieldType: {0}", dateField.getType()));

// Finally let's completely remove the field from the document. This can easily be done by invoking the Remove method on the object.
dateField.remove();

Property Getters/Setters Summary
FieldEndgetEnd()
           Gets the node that represents the field end.
FieldFormatgetFormat()
           Gets a FieldFormat object that provides typed access to field's formatting.
booleanisLocked()
voidisLocked(boolean value)
           Gets or sets whether the field is locked (should not recalculate its result).
java.lang.StringgetResult()
voidsetResult(java.lang.String value)
           Gets or sets text that is between the field separator and field end.
FieldSeparatorgetSeparator()
           Gets the node that represents the field separator. Can be null.
FieldStartgetStart()
           Gets the node that represents the start of the field.
intgetType()
           Gets the Microsoft Word field type. The value of the property is FieldType integer constant.
 
Method Summary
java.lang.StringgetFieldCode()
           Returns text between field start and field separator (or field end if there is no separator).
Noderemove()
           Removes the field from the document. Returns a node right after the field. If the field's end is the last child of its parent node, returns its parent paragraph. If the field is already removed, returns null.
voidupdate()
           Performs the field update. Throws if the field is being updated already.
 

Property Getters/Setters Detail

getEnd

public FieldEnd getEnd()
Gets the node that represents the field end.

getFormat

public FieldFormat getFormat()
Gets a FieldFormat object that provides typed access to field's formatting.

isLocked/isLocked

public boolean isLocked() / public void isLocked(boolean value)
Gets or sets whether the field is locked (should not recalculate its result).

getResult/setResult

public java.lang.String getResult() / public void setResult(java.lang.String value)
Gets or sets text that is between the field separator and field end.

Example:

Inserts a field into a document using DocumentBuilder.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Insert a simple Date field into the document.
// When we insert a field through the DocumentBuilder class we can get the
// special Field object which contains information about the field.
Field dateField = builder.insertField("DATE \\* MERGEFORMAT");

// Update this particular field in the document so we can get the FieldResult.
dateField.update();

// Display some information from this field.
// The field result is where the last evaluated value is stored. This is what is displayed in the document
// When field codes are not showing.
System.out.println(MessageFormat.format("FieldResult: {0}", dateField.getResult()));

// Display the field code which defines the behaviour of the field. This can been seen in Microsoft Word by pressing ALT+F9.
System.out.println(MessageFormat.format("FieldCode: {0}", dateField.getFieldCode()));

// The field type defines what type of field in the Document this is. In this case the type is "FieldDate"
System.out.println(MessageFormat.format("FieldType: {0}", dateField.getType()));

// Finally let's completely remove the field from the document. This can easily be done by invoking the Remove method on the object.
dateField.remove();

getSeparator

public FieldSeparator getSeparator()
Gets the node that represents the field separator. Can be null.

getStart

public FieldStart getStart()
Gets the node that represents the start of the field.

getType

public int getType()
Gets the Microsoft Word field type. The value of the property is FieldType integer constant.

Example:

Inserts a field into a document using DocumentBuilder.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Insert a simple Date field into the document.
// When we insert a field through the DocumentBuilder class we can get the
// special Field object which contains information about the field.
Field dateField = builder.insertField("DATE \\* MERGEFORMAT");

// Update this particular field in the document so we can get the FieldResult.
dateField.update();

// Display some information from this field.
// The field result is where the last evaluated value is stored. This is what is displayed in the document
// When field codes are not showing.
System.out.println(MessageFormat.format("FieldResult: {0}", dateField.getResult()));

// Display the field code which defines the behaviour of the field. This can been seen in Microsoft Word by pressing ALT+F9.
System.out.println(MessageFormat.format("FieldCode: {0}", dateField.getFieldCode()));

// The field type defines what type of field in the Document this is. In this case the type is "FieldDate"
System.out.println(MessageFormat.format("FieldType: {0}", dateField.getType()));

// Finally let's completely remove the field from the document. This can easily be done by invoking the Remove method on the object.
dateField.remove();

Method Detail

getFieldCode

public java.lang.String getFieldCode()
                   throws java.lang.Exception
Returns text between field start and field separator (or field end if there is no separator).

Example:

Inserts a field into a document using DocumentBuilder.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Insert a simple Date field into the document.
// When we insert a field through the DocumentBuilder class we can get the
// special Field object which contains information about the field.
Field dateField = builder.insertField("DATE \\* MERGEFORMAT");

// Update this particular field in the document so we can get the FieldResult.
dateField.update();

// Display some information from this field.
// The field result is where the last evaluated value is stored. This is what is displayed in the document
// When field codes are not showing.
System.out.println(MessageFormat.format("FieldResult: {0}", dateField.getResult()));

// Display the field code which defines the behaviour of the field. This can been seen in Microsoft Word by pressing ALT+F9.
System.out.println(MessageFormat.format("FieldCode: {0}", dateField.getFieldCode()));

// The field type defines what type of field in the Document this is. In this case the type is "FieldDate"
System.out.println(MessageFormat.format("FieldType: {0}", dateField.getType()));

// Finally let's completely remove the field from the document. This can easily be done by invoking the Remove method on the object.
dateField.remove();

remove

public Node remove()
           throws java.lang.Exception
Removes the field from the document. Returns a node right after the field. If the field's end is the last child of its parent node, returns its parent paragraph. If the field is already removed, returns null.

Example:

Inserts a field into a document using DocumentBuilder.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Insert a simple Date field into the document.
// When we insert a field through the DocumentBuilder class we can get the
// special Field object which contains information about the field.
Field dateField = builder.insertField("DATE \\* MERGEFORMAT");

// Update this particular field in the document so we can get the FieldResult.
dateField.update();

// Display some information from this field.
// The field result is where the last evaluated value is stored. This is what is displayed in the document
// When field codes are not showing.
System.out.println(MessageFormat.format("FieldResult: {0}", dateField.getResult()));

// Display the field code which defines the behaviour of the field. This can been seen in Microsoft Word by pressing ALT+F9.
System.out.println(MessageFormat.format("FieldCode: {0}", dateField.getFieldCode()));

// The field type defines what type of field in the Document this is. In this case the type is "FieldDate"
System.out.println(MessageFormat.format("FieldType: {0}", dateField.getType()));

// Finally let's completely remove the field from the document. This can easily be done by invoking the Remove method on the object.
dateField.remove();

update

public void update()
           throws java.lang.Exception
Performs the field update. Throws if the field is being updated already.

Example:

Inserts a field into a document using DocumentBuilder.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Insert a simple Date field into the document.
// When we insert a field through the DocumentBuilder class we can get the
// special Field object which contains information about the field.
Field dateField = builder.insertField("DATE \\* MERGEFORMAT");

// Update this particular field in the document so we can get the FieldResult.
dateField.update();

// Display some information from this field.
// The field result is where the last evaluated value is stored. This is what is displayed in the document
// When field codes are not showing.
System.out.println(MessageFormat.format("FieldResult: {0}", dateField.getResult()));

// Display the field code which defines the behaviour of the field. This can been seen in Microsoft Word by pressing ALT+F9.
System.out.println(MessageFormat.format("FieldCode: {0}", dateField.getFieldCode()));

// The field type defines what type of field in the Document this is. In this case the type is "FieldDate"
System.out.println(MessageFormat.format("FieldType: {0}", dateField.getType()));

// Finally let's completely remove the field from the document. This can easily be done by invoking the Remove method on the object.
dateField.remove();

See Also:
          Aspose.Words Documentation - the home page for the Aspose.Words Product Documentation.
          Aspose.Words Support Forum - our preferred method of support.