FieldListNum

FieldListNum class

Реализует поле LISTNUM.

public class FieldListNum : Field

Конструкторы

Имя Описание
FieldListNum() Конструктор по умолчанию.

Характеристики

Имя Описание
DisplayResult { get; } Получает текст, представляющий результат отображаемого поля.
End { get; } Получает узел, представляющий конец поля.
Format { get; } ПолучаетFieldFormat объект, предоставляющий типизированный доступ к форматированию поля.
HasListName { get; } Возвращает значение, указывающее, предоставлено ли имя определения абстрактной нумерации кодом поля.
IsDirty { get; set; } Получает или устанавливает, является ли текущий результат поля более неверным (устаревшим) из-за других изменений, внесенных в документ.
IsLocked { get; set; } Получает или задает, заблокировано ли поле (не следует пересчитывать его результат).
ListLevel { get; set; } Получает или задает уровень в списке, переопределяя поведение поля по умолчанию.
ListName { get; set; } Получает или задает имя определения абстрактной нумерации, используемого для нумерации.
LocaleId { get; set; } Получает или задает LCID поля.
Result { get; set; } Получает или задает текст, который находится между разделителем поля и концом поля.
Separator { get; } Получает узел, представляющий разделитель полей. Может быть нулевым.
Start { get; } Получает узел, представляющий начало поля.
StartingNumber { get; set; } Получает или задает начальное значение для этого поля.
virtual Type { get; } Получает тип поля Microsoft Word.

Методы

Имя Описание
GetFieldCode() Возвращает текст между началом поля и разделителем поля (или концом поля, если разделителя нет). Включены как код поля, так и результат поля дочерних полей.
GetFieldCode(bool) Возвращает текст между началом поля и разделителем полей (или концом поля, если разделителя нет).
Remove() Удаляет поле из документа. Возвращает узел сразу после поля. Если конец поля является последним child его родительского узла, возвращает его родительский абзац. Если поле уже удалено, возвращает нулевой .
Unlink() Выполняет развязку поля.
Update() Выполняет обновление поля. Выдает, если поле уже обновляется.
Update(bool) Выполняет обновление поля. Выдает, если поле уже обновляется.

Примеры

Показывает, как нумеровать абзацы с полями LISTNUM.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// В полях LISTNUM отображается число, которое увеличивается в каждом поле LISTNUM.
// Эти поля также имеют различные параметры, которые позволяют нам использовать их для эмуляции нумерованных списков.
FieldListNum field = (FieldListNum)builder.InsertField(FieldType.FieldListNum, true);

// По умолчанию списки начинают считать с 1, но мы можем установить для этого числа другое значение, например 0.
// В этом поле будет отображаться «0)».
field.StartingNumber = "0";
builder.Writeln("Paragraph 1");

Assert.AreEqual(" LISTNUM  \\s 0", field.GetFieldCode());

 // Поля LISTNUM поддерживают отдельные счетчики для каждого уровня списка.
// Вставка поля LISTNUM в тот же абзац, что и другое поле LISTNUM
// увеличивает уровень списка вместо количества.
// Следующее поле продолжит счет, который мы начали выше, и отобразит значение «1» на уровне списка 1.
builder.InsertField(FieldType.FieldListNum, true);

// Это поле начнет отсчет на уровне списка 2. Оно будет отображать значение «1».
builder.InsertField(FieldType.FieldListNum, true);

// Это поле начнет отсчет на уровне списка 3. Оно будет отображать значение «1».
// Разные уровни списка имеют разное форматирование,
// таким образом, эти поля вместе будут отображать значение "1)a)i)".
builder.InsertField(FieldType.FieldListNum, true);
builder.Writeln("Paragraph 2");

// Следующее поле LISTNUM, которое мы вставляем, продолжит подсчет на уровне списка
// что предыдущее поле LISTNUM было включено.
// Мы можем использовать свойство "ListLevel" для перехода на другой уровень списка.
// Если бы это поле LISTNUM оставалось на уровне списка 3, оно отображало бы "ii)",
// но поскольку мы переместили его на уровень списка 2, он продолжает считать на этом уровне и отображает "b)".
field = (FieldListNum)builder.InsertField(FieldType.FieldListNum, true);
field.ListLevel = "2";
builder.Writeln("Paragraph 3");

Assert.AreEqual(" LISTNUM  \\l 2", field.GetFieldCode());

// Мы можем установить свойство ListName, чтобы заставить поле эмулировать другой тип поля AUTONUM.
// "NumberDefault" эмулирует AUTONUM, "OutlineDefault" эмулирует AUTONUMOUT,
// и «LegalDefault» эмулирует поля AUTONUMLGL.
// Имя списка "OutlineDefault" с 1 в качестве начального номера приведет к отображению "I.".
field = (FieldListNum)builder.InsertField(FieldType.FieldListNum, true);
field.StartingNumber = "1";
field.ListName = "OutlineDefault";
builder.Writeln("Paragraph 4");

Assert.IsTrue(field.HasListName);
Assert.AreEqual(" LISTNUM  OutlineDefault \\s 1", field.GetFieldCode());

// Имя списка не переносится из предыдущего поля, поэтому нам нужно будет устанавливать его для каждого нового поля.
// Это поле продолжает счет с другим именем списка и отображает «II.».
field = (FieldListNum)builder.InsertField(FieldType.FieldListNum, true);
field.ListName = "OutlineDefault";
builder.Writeln("Paragraph 5");

doc.UpdateFields();
doc.Save(ArtifactsDir + "Field.LISTNUM.docx");

Смотрите также