FieldAutoNumLgl Class
Implements the AUTONUMLGL field.
Inheritance Hierarchy
SystemObject
  Aspose.Words.FieldsField
    Aspose.Words.FieldsFieldAutoNumLgl

Namespace: Aspose.Words.Fields
Assembly: Aspose.Words (in Aspose.Words.dll) Version: 19.11
Syntax
public class FieldAutoNumLgl : Field

The FieldAutoNumLgl type exposes the following members.

Constructors
  NameDescription
Public methodFieldAutoNumLgl
Initializes a new instance of the FieldAutoNumLgl class
Properties
  NameDescription
Public propertyCode exampleDisplayResult
Gets the text that represents the displayed field result.
(Inherited from Field.)
Public propertyCode exampleEnd
Gets the node that represents the field end.
(Inherited from Field.)
Public propertyCode exampleFormat
Gets a FieldFormat object that provides typed access to field's formatting.
(Inherited from Field.)
Public propertyCode exampleIsDirty
Gets or sets whether the current result of the field is no longer correct (stale) due to other modifications made to the document.
(Inherited from Field.)
Public propertyCode exampleIsLocked
Gets or sets whether the field is locked (should not recalculate its result).
(Inherited from Field.)
Public propertyCode exampleLocaleId
Gets or sets the LCID of the field.
(Inherited from Field.)
Public propertyCode exampleRemoveTrailingPeriod
Gets or sets whether to display the number without a trailing period.
Public propertyCode exampleResult
Gets or sets text that is between the field separator and field end.
(Inherited from Field.)
Public propertyCode exampleSeparator
Gets the node that represents the field separator. Can be null.
(Inherited from Field.)
Public propertyCode exampleSeparatorCharacter
Gets or sets the separator character to be used.
Public propertyCode exampleStart
Gets the node that represents the start of the field.
(Inherited from Field.)
Public propertyCode exampleType
Gets the Microsoft Word field type.
(Inherited from Field.)
Methods
  NameDescription
Public methodEquals (Inherited from Object.)
Protected methodFinalize (Inherited from Object.)
Public methodCode exampleGetFieldCode
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.
(Inherited from Field.)
Public methodCode exampleGetFieldCode(Boolean)
Returns text between field start and field separator (or field end if there is no separator).
(Inherited from Field.)
Public methodGetHashCode (Inherited from Object.)
Public methodGetType (Inherited from Object.)
Protected methodMemberwiseClone (Inherited from Object.)
Protected methodNeedStoreOldResultNodes (Inherited from Field.)
Public methodCode exampleRemove
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.
(Inherited from Field.)
Public methodToString (Inherited from Object.)
Public methodCode exampleUnlink
Performs the field unlink.
(Inherited from Field.)
Public methodCode exampleUpdate
Performs the field update. Throws if the field is being updated already.
(Inherited from Field.)
Public methodCode exampleUpdate(Boolean)
Performs a field update. Throws if the field is being updated already.
(Inherited from Field.)
Remarks
Inserts an automatic number in legal format.
Examples
Shows how to organize a document using autonum legal fields
public void FieldAutoNumLgl()
{
    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);

    // This string will be our paragraph text that
    string loremIpsum =
        "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. " +
        "\nUt enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. ";

    // In this case our autonum legal field will number our first paragraph as "1."
    InsertNumberedClause(builder, "\tHeading 1", loremIpsum, StyleIdentifier.Heading1);

    // Our heading style number will be 1 again, so this field will keep counting headings at a heading level of 1
    InsertNumberedClause(builder, "\tHeading 2", loremIpsum, StyleIdentifier.Heading1);

    // Our heading style is 2, setting the paragraph numbering depth to 2, setting this field's value to "2.1."
    InsertNumberedClause(builder, "\tHeading 3", loremIpsum, StyleIdentifier.Heading2);

    // Our heading style is 3, so we are going deeper again to "2.1.1."
    InsertNumberedClause(builder, "\tHeading 4", loremIpsum, StyleIdentifier.Heading3);

    // Our heading style is 2, and the next field number at that level is "2.2."
    InsertNumberedClause(builder, "\tHeading 5", loremIpsum, StyleIdentifier.Heading2);

    foreach (Field field in doc.Range.Fields)
    {
        if (field.Type == FieldType.FieldAutoNumLegal)
        {
            // By default the separator will appear as "." in the document but here it is null
            Assert.IsNull(((FieldAutoNumLgl)field).SeparatorCharacter);

            // Change the separator character and remove trailing separators
            ((FieldAutoNumLgl)field).SeparatorCharacter = ":";
            ((FieldAutoNumLgl)field).RemoveTrailingPeriod = true;
            Assert.AreEqual(" AUTONUMLGL  \\s : \\e", field.GetFieldCode());
        }
    }

    doc.Save(ArtifactsDir + "Field.AutoNumLegal.docx");
}

/// <summary>
/// Get a document builder to insert a clause numbered by an autonum legal field
/// </summary>
private void InsertNumberedClause(DocumentBuilder builder, string heading, string contents, StyleIdentifier headingStyle)
{
    // This legal field will automatically number our clauses, taking heading style level into account
    builder.InsertField(FieldType.FieldAutoNumLegal, true);
    builder.CurrentParagraph.ParagraphFormat.StyleIdentifier = headingStyle;
    builder.Writeln(heading);

    // This text will belong to the auto num legal field above it
    // It will collapse when the arrow next to the corresponding autonum legal field is clicked in MS Word
    builder.CurrentParagraph.ParagraphFormat.StyleIdentifier = StyleIdentifier.BodyText;
    builder.Writeln(contents);
}
See Also