Aspose::Words::Fields::FieldTC class

FieldTC class

Implements the TC field. To learn more, visit the Working with Fields documentation article.

class FieldTC : public Aspose::Words::Fields::Field,
                public Aspose::Words::Fields::IFieldCodeTokenInfoProvider,
                public Aspose::Words::Fields::ITocEntry

Methods

MethodDescription
FieldTC()
get_DisplayResult()Gets the text that represents the displayed field result.
get_End() constGets the node that represents the field end.
get_EntryLevel()Gets or sets the level of the entry.
get_FieldEnd() constGets the node that represents the field end.
get_FieldStart() constGets the node that represents the start of the field.
get_Format()Gets a FieldFormat object that provides typed access to field’s formatting.
get_IsDirty()Gets whether the current result of the field is no longer correct (stale) due to other modifications made to the document.
get_IsLocked()Gets or sets whether the field is locked (should not recalculate its result).
get_LocaleId()Gets or sets the LCID of the field.
get_OmitPageNumber() overrideGets or sets whether page number in TOC should be omitted for this field.
get_Result()Gets or sets text that is between the field separator and field end.
get_Separator()Gets the node that represents the field separator. Can be null.
get_Start() constGets the node that represents the start of the field.
get_Text()Gets or sets the text of the entry.
virtual get_Type() constGets the Microsoft Word field type.
get_TypeIdentifier()Gets or sets a type identifier for this field (which is typically a letter).
GetFieldCode()Returns text between field start and field separator (or field end if there is no separator). Both field code and field result of child fields are included.
GetFieldCode(bool)Returns text between field start and field separator (or field end if there is no separator).
GetType() const override
Is(const System::TypeInfo&) const override
Remove()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.
set_EntryLevel(const System::String&)Setter for Aspose::Words::Fields::FieldTC::get_EntryLevel.
set_IsDirty(bool)Sets whether the current result of the field is no longer correct (stale) due to other modifications made to the document.
set_IsLocked(bool)Setter for Aspose::Words::Fields::Field::get_IsLocked.
set_LocaleId(int32_t)Setter for Aspose::Words::Fields::Field::get_LocaleId.
set_OmitPageNumber(bool)Setter for Aspose::Words::Fields::FieldTC::get_OmitPageNumber.
set_Result(const System::String&)Setter for Aspose::Words::Fields::Field::get_Result.
set_Text(const System::String&)Setter for Aspose::Words::Fields::FieldTC::get_Text.
set_TypeIdentifier(const System::String&)Setter for Aspose::Words::Fields::FieldTC::get_TypeIdentifier.
static Type()
Unlink()Performs the field unlink.
Update()Performs the field update. Throws if the field is being updated already.
Update(bool)Performs a field update. Throws if the field is being updated already.

Examples

Shows how to insert a TOC field, and filter which TC fields end up as entries.

void FieldTocEntryIdentifier()
{
    auto doc = MakeObject<Document>();
    auto builder = MakeObject<DocumentBuilder>(doc);

    // Insert a TOC field, which will compile all TC fields into a table of contents.
    auto fieldToc = System::ExplicitCast<FieldToc>(builder->InsertField(FieldType::FieldTOC, true));

    // Configure the field only to pick up TC entries of the "A" type, and an entry-level between 1 and 3.
    fieldToc->set_EntryIdentifier(u"A");
    fieldToc->set_EntryLevelRange(u"1-3");

    ASSERT_EQ(u" TOC  \\f A \\l 1-3", fieldToc->GetFieldCode());

    // These two entries will appear in the table.
    builder->InsertBreak(BreakType::PageBreak);
    InsertTocEntry(builder, u"TC field 1", u"A", u"1");
    InsertTocEntry(builder, u"TC field 2", u"A", u"2");

    ASSERT_EQ(u" TC  \"TC field 1\" \\n \\f A \\l 1", doc->get_Range()->get_Fields()->idx_get(1)->GetFieldCode());

    // This entry will be omitted from the table because it has a different type from "A".
    InsertTocEntry(builder, u"TC field 3", u"B", u"1");

    // This entry will be omitted from the table because it has an entry-level outside of the 1-3 range.
    InsertTocEntry(builder, u"TC field 4", u"A", u"5");

    doc->UpdateFields();
    doc->Save(ArtifactsDir + u"Field.TC.docx");
}

void InsertTocEntry(SharedPtr<DocumentBuilder> builder, String text, String typeIdentifier, String entryLevel)
{
    auto fieldTc = System::ExplicitCast<FieldTC>(builder->InsertField(FieldType::FieldTOCEntry, true));
    fieldTc->set_OmitPageNumber(true);
    fieldTc->set_Text(text);
    fieldTc->set_TypeIdentifier(typeIdentifier);
    fieldTc->set_EntryLevel(entryLevel);
}

See Also