Aspose::Words::Fields::FieldAutoNumLgl class
Contents
[
Hide
]FieldAutoNumLgl class
Implements the AUTONUMLGL field. To learn more, visit the Working with Fields documentation article.
class FieldAutoNumLgl : public Aspose::Words::Fields::Field,
public Aspose::Words::Fields::IFieldCodeTokenInfoProvider
Methods
Method | Description |
---|---|
get_DisplayResult() | Gets the text that represents the displayed field result. |
get_End() const | Gets the node that represents the field end. |
get_FieldEnd() const | Gets the node that represents the field end. |
get_FieldStart() const | Gets 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_RemoveTrailingPeriod() | Gets or sets whether to display the number without a trailing period. |
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_SeparatorCharacter() | Gets or sets the separator character to be used. |
get_Start() const | Gets the node that represents the start of the field. |
virtual get_Type() const | Gets the Microsoft Word field type. |
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_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_RemoveTrailingPeriod(bool) | Setter for Aspose::Words::Fields::FieldAutoNumLgl::get_RemoveTrailingPeriod. |
set_Result(const System::String&) | Setter for Aspose::Words::Fields::Field::get_Result. |
set_SeparatorCharacter(const System::String&) | Setter for Aspose::Words::Fields::FieldAutoNumLgl::get_SeparatorCharacter. |
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 organize a document using AUTONUMLGL fields.
void FieldAutoNumLgl_()
{
auto doc = MakeObject<Document>();
auto builder = MakeObject<DocumentBuilder>(doc);
const String fillerText =
String(u"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ") +
u"\nUt enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. ";
// AUTONUMLGL fields display a number that increments at each AUTONUMLGL field within its current heading level.
// These fields maintain a separate count for each heading level,
// and each field also displays the AUTONUMLGL field counts for all heading levels below its own.
// Changing the count for any heading level resets the counts for all levels above that level to 1.
// This allows us to organize our document in the form of an outline list.
// This is the first AUTONUMLGL field at a heading level of 1, displaying "1." in the document.
InsertNumberedClause(builder, u"\tHeading 1", fillerText, StyleIdentifier::Heading1);
// This is the second AUTONUMLGL field at a heading level of 1, so it will display "2.".
InsertNumberedClause(builder, u"\tHeading 2", fillerText, StyleIdentifier::Heading1);
// This is the first AUTONUMLGL field at a heading level of 2,
// and the AUTONUMLGL count for the heading level below it is "2", so it will display "2.1.".
InsertNumberedClause(builder, u"\tHeading 3", fillerText, StyleIdentifier::Heading2);
// This is the first AUTONUMLGL field at a heading level of 3.
// Working in the same way as the field above, it will display "2.1.1.".
InsertNumberedClause(builder, u"\tHeading 4", fillerText, StyleIdentifier::Heading3);
// This field is at a heading level of 2, and its respective AUTONUMLGL count is at 2, so the field will display "2.2.".
InsertNumberedClause(builder, u"\tHeading 5", fillerText, StyleIdentifier::Heading2);
// Incrementing the AUTONUMLGL count for a heading level below this one
// has reset the count for this level so that this field will display "2.2.1.".
InsertNumberedClause(builder, u"\tHeading 6", fillerText, StyleIdentifier::Heading3);
auto isAutoNumLegal = [](SharedPtr<Field> f)
{
return f->get_Type() == FieldType::FieldAutoNumLegal;
};
for (auto field : System::IterateOver<FieldAutoNumLgl>(doc->get_Range()->get_Fields()->LINQ_Where(isAutoNumLegal)))
{
// The separator character, which appears in the field result immediately after the number,
// is a full stop by default. If we leave this property null,
// our last AUTONUMLGL field will display "2.2.1." in the document.
ASSERT_TRUE(field->get_SeparatorCharacter() == nullptr);
// Setting a custom separator character and removing the trailing period
// will change that field's appearance from "2.2.1." to "2:2:1".
// We will apply this to all the fields that we have created.
field->set_SeparatorCharacter(u":");
field->set_RemoveTrailingPeriod(true);
ASSERT_EQ(u" AUTONUMLGL \\s : \\e", field->GetFieldCode());
}
doc->Save(ArtifactsDir + u"Field.AUTONUMLGL.docx");
}
static void InsertNumberedClause(SharedPtr<DocumentBuilder> builder, String heading, String contents, StyleIdentifier headingStyle)
{
builder->InsertField(FieldType::FieldAutoNumLegal, true);
builder->get_CurrentParagraph()->get_ParagraphFormat()->set_StyleIdentifier(headingStyle);
builder->Writeln(heading);
// This text will belong to the auto num legal field above it.
// It will collapse when we click the arrow next to the corresponding AUTONUMLGL field in Microsoft Word.
builder->get_CurrentParagraph()->get_ParagraphFormat()->set_StyleIdentifier(StyleIdentifier::BodyText);
builder->Writeln(contents);
}
See Also
- Class Field
- Namespace Aspose::Words::Fields
- Library Aspose.Words for C++