Aspose::Words::Fields::FieldListNum класс

FieldListNum class

Реализует поле LISTNUM. Чтобы узнать больше, посетите статью документации Working with Fields.

class FieldListNum : public Aspose::Words::Fields::Field,
                     public Aspose::Words::Fields::IFieldCodeTokenInfoProvider

Методы

МетодОписание
get_DisplayResult()Получает текст, представляющий отображаемый результат поля.
get_End() constПолучает узел, представляющий конец поля.
get_FieldEnd() constПолучает узел, представляющий конец поля.
get_FieldStart() constПолучает узел, представляющий начало поля.
get_Format()Получает объект FieldFormat, который предоставляет типизированный доступ к форматированию поля.
get_HasListName()Возвращает значение, указывающее, предоставлено ли имя определения абстрактной нумерации в коде поля.
get_IsDirty()Получает или задает, является ли текущий результат поля более некорректным (устаревшим) из‑за других изменений, внесённых в документ.
get_IsLocked()Получает или задает, заблокировано ли поле (не должно пересчитывать свой результат).
get_ListLevel()Получает или задает уровень в списке, переопределяя поведение поля по умолчанию.
get_ListName()Получает или задает имя определения абстрактной нумерации, используемого для нумерации.
get_LocaleId()Получает или задает LCID поля.
get_Result()Получает или задает текст, находящийся между разделителем поля и его концом.
get_Separator()Получает узел, представляющий разделитель поля. Может быть null.
get_Start() constПолучает узел, представляющий начало поля.
get_StartingNumber()Получает или задает начальное значение для этого поля.
virtual get_Type() constПолучает тип поля Microsoft Word.
GetFieldCode()Возвращает текст между началом поля и разделителем поля (или концом поля, если разделитель отсутствует). Включены как код поля, так и результат дочерних полей.
GetFieldCode(bool)Возвращает текст между началом поля и разделителем поля (или концом поля, если разделитель отсутствует).
GetType() const override
Is(const System::TypeInfo&) const override
Remove() overrideУдаляет поле из документа. Возвращает узел сразу после поля. Если конец поля является последним дочерним элементом его родительского узла, возвращает родительский абзац. Если поле уже удалено, возвращает null.
set_IsDirty(bool)Сеттер для Aspose::Words::Fields::Field::get_IsDirty.
set_IsLocked(bool)Сеттер для Aspose::Words::Fields::Field::get_IsLocked.
set_ListLevel(const System::String&)Сеттер для Aspose::Words::Fields::FieldListNum::get_ListLevel.
set_ListName(const System::String&)Сеттер для Aspose::Words::Fields::FieldListNum::get_ListName.
set_LocaleId(int32_t)Сеттер для Aspose::Words::Fields::Field::get_LocaleId.
set_Result(const System::String&)Сеттер для Aspose::Words::Fields::Field::get_Result.
set_StartingNumber(const System::String&)Сеттер для Aspose::Words::Fields::FieldListNum::get_StartingNumber.
static Type()
Unlink()Выполняет отсоединение поля.
Update()Выполняет обновление поля. Вызывает исключение, если поле уже обновляется.
Update(bool)Выполняет обновление поля. Выбрасывает исключение, если поле уже обновляется.

Примеры

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

auto doc = System::MakeObject<Aspose::Words::Document>();
auto builder = System::MakeObject<Aspose::Words::DocumentBuilder>(doc);

// Поля LISTNUM отображают число, которое увеличивается в каждом поле LISTNUM.
// Эти поля также имеют разнообразные параметры, позволяющие использовать их для имитации нумерованных списков.
auto field = System::ExplicitCast<Aspose::Words::Fields::FieldListNum>(builder->InsertField(Aspose::Words::Fields::FieldType::FieldListNum, true));

// Списки по умолчанию начинают счёт с 1, но мы можем задать другое значение, например 0.
// Это поле отобразит "0)".
field->set_StartingNumber(u"0");
builder->Writeln(u"Paragraph 1");

ASSERT_EQ(u" LISTNUM  \\s 0", field->GetFieldCode());

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

// Это поле начнёт счёт на уровне списка 2. Оно отобразит значение "1".
builder->InsertField(Aspose::Words::Fields::FieldType::FieldListNum, true);

// Это поле начнёт счёт на уровне списка 3. Оно отобразит значение "1".
// Разные уровни списка имеют разное форматирование,
// поэтому эти поля вместе отобразят значение "1)a)i)".
builder->InsertField(Aspose::Words::Fields::FieldType::FieldListNum, true);
builder->Writeln(u"Paragraph 2");

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

ASSERT_EQ(u" LISTNUM  \\l 2", field->GetFieldCode());

// Мы можем задать свойство ListName, чтобы поле имитировало другой тип поля AUTONUM.
// "NumberDefault" имитирует AUTONUM, "OutlineDefault" имитирует AUTONUMOUT,
// а "LegalDefault" имитирует поля AUTONUMLGL.
// Имя списка "OutlineDefault" с 1 в качестве начального номера приведет к отображению "I.".
field = System::ExplicitCast<Aspose::Words::Fields::FieldListNum>(builder->InsertField(Aspose::Words::Fields::FieldType::FieldListNum, true));
field->set_StartingNumber(u"1");
field->set_ListName(u"OutlineDefault");
builder->Writeln(u"Paragraph 4");

ASSERT_TRUE(field->get_HasListName());
ASSERT_EQ(u" LISTNUM  OutlineDefault \\s 1", field->GetFieldCode());

// Имя списка ListName не переносится из предыдущего поля, поэтому нам потребуется установить его для каждого нового поля.
// Это поле продолжает счет с другим именем списка и отображает "II.".
field = System::ExplicitCast<Aspose::Words::Fields::FieldListNum>(builder->InsertField(Aspose::Words::Fields::FieldType::FieldListNum, true));
field->set_ListName(u"OutlineDefault");
builder->Writeln(u"Paragraph 5");

doc->UpdateFields();
doc->Save(get_ArtifactsDir() + u"Field.LISTNUM.docx");

См. также