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

FieldXE class

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

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

Методы

МетодОписание
get_DisplayResult()Получает текст, представляющий отображаемый результат поля.
get_End() constПолучает узел, представляющий конец поля.
get_EntryType()Получает или задает тип записи индекса.
get_FieldEnd() constПолучает узел, представляющий конец поля.
get_FieldStart() constПолучает узел, представляющий начало поля.
get_Format()Получает объект FieldFormat, который предоставляет типизированный доступ к форматированию поля.
get_IsBold()Получает или задает, применять ли полужирное форматирование к номеру страницы записи.
get_IsDirty()Получает или задает, является ли текущий результат поля более некорректным (устаревшим) из‑за других изменений, внесённых в документ.
get_IsItalic()Получает или задает, применять ли курсивное форматирование к номеру страницы записи.
get_IsLocked()Получает или задает, заблокировано ли поле (не должно пересчитывать свой результат).
get_LocaleId()Получает или задает LCID поля.
get_PageNumberReplacement()Получает или задает текст, используемый вместо номера страницы.
get_PageRangeBookmarkName()Получает или задает имя закладки, обозначающей диапазон страниц, который вставляется как номер страницы записи.
get_Result()Получает или задает текст, находящийся между разделителем поля и его концом.
get_Separator()Получает узел, представляющий разделитель поля. Может быть null.
get_Start() constПолучает узел, представляющий начало поля.
get_Text()Получает или задает текст записи.
virtual get_Type() constПолучает тип поля Microsoft Word.
get_Yomi()Получает или задает йоми (первый фонетический символ для сортировки индексов) для записи индекса.
GetFieldCode()Возвращает текст между началом поля и разделителем поля (или концом поля, если разделитель отсутствует). Включены как код поля, так и результат дочерних полей.
GetFieldCode(bool)Возвращает текст между началом поля и разделителем поля (или концом поля, если разделитель отсутствует).
GetType() const override
Is(const System::TypeInfo&) const override
virtual Remove()Удаляет поле из документа. Возвращает узел сразу после поля. Если конец поля является последним дочерним элементом его родительского узла, возвращает родительский абзац. Если поле уже удалено, возвращает null.
set_EntryType(const System::String&)Сеттер для Aspose::Words::Fields::FieldXE::get_EntryType.
set_IsBold(bool)Сеттер для Aspose::Words::Fields::FieldXE::get_IsBold.
set_IsDirty(bool)Сеттер для Aspose::Words::Fields::Field::get_IsDirty.
set_IsItalic(bool)Сеттер для Aspose::Words::Fields::FieldXE::get_IsItalic.
set_IsLocked(bool)Сеттер для Aspose::Words::Fields::Field::get_IsLocked.
set_LocaleId(int32_t)Сеттер для Aspose::Words::Fields::Field::get_LocaleId.
set_PageNumberReplacement(const System::String&)Сеттер для Aspose::Words::Fields::FieldXE::get_PageNumberReplacement.
set_PageRangeBookmarkName(const System::String&)Сеттер для Aspose::Words::Fields::FieldXE::get_PageRangeBookmarkName.
set_Result(const System::String&)Сеттер для Aspose::Words::Fields::Field::get_Result.
set_Text(const System::String&)Сеттер для Aspose::Words::Fields::FieldXE::get_Text.
set_Yomi(const System::String&)Сеттер для Aspose::Words::Fields::FieldXE::get_Yomi.
static Type()
Unlink()Выполняет отсоединение поля.
Update()Выполняет обновление поля. Вызывает исключение, если поле уже обновляется.
Update(bool)Выполняет обновление поля. Выбрасывает исключение, если поле уже обновляется.

Примеры

Показывает, как создать поле INDEX и затем использовать поля XE для заполнения его записями.

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

// Создайте поле INDEX, которое будет отображать запись для каждого найденного в документе поля XE.
// Каждая запись будет отображать значение свойства Text поля XE слева
// и страницу, содержащую поле XE, справа.
// Если у полей XE одинаковое значение в их свойстве "Text",
// поле INDEX сгруппирует их в одну запись.
auto index = System::ExplicitCast<Aspose::Words::Fields::FieldIndex>(builder->InsertField(Aspose::Words::Fields::FieldType::FieldIndex, true));

// Настройте поле INDEX так, чтобы оно отображало только поля XE, находящиеся в пределах
// закладки с именем "MainBookmark" и у которых свойство "EntryType" имеет значение "A".
// Для полей INDEX и XE свойство "EntryType" использует только первый символ строкового значения.
index->set_BookmarkName(u"MainBookmark");
index->set_EntryType(u"A");

ASSERT_EQ(u" INDEX  \\b MainBookmark \\f A", index->GetFieldCode());

// На новой странице начните закладку с именем, соответствующим значению
// свойства "BookmarkName" поля INDEX.
builder->InsertBreak(Aspose::Words::BreakType::PageBreak);
builder->StartBookmark(u"MainBookmark");

// Поле INDEX подхватит эту запись, потому что она находится внутри закладки,
// и её тип записи также соответствует типу записи поля INDEX.
auto indexEntry = System::ExplicitCast<Aspose::Words::Fields::FieldXE>(builder->InsertField(Aspose::Words::Fields::FieldType::FieldIndexEntry, true));
indexEntry->set_Text(u"Index entry 1");
indexEntry->set_EntryType(u"A");

ASSERT_EQ(u" XE  \"Index entry 1\" \\f A", indexEntry->GetFieldCode());

// Вставьте поле XE, которое не появится в INDEX, потому что типы записей не совпадают.
builder->InsertBreak(Aspose::Words::BreakType::PageBreak);
indexEntry = System::ExplicitCast<Aspose::Words::Fields::FieldXE>(builder->InsertField(Aspose::Words::Fields::FieldType::FieldIndexEntry, true));
indexEntry->set_Text(u"Index entry 2");
indexEntry->set_EntryType(u"B");

// Закончите закладку и вставьте поле XE после неё.
// Оно того же типа, что и поле INDEX, но не появится
// поскольку находится за пределами границ закладки.
builder->EndBookmark(u"MainBookmark");
builder->InsertBreak(Aspose::Words::BreakType::PageBreak);
indexEntry = System::ExplicitCast<Aspose::Words::Fields::FieldXE>(builder->InsertField(Aspose::Words::Fields::FieldType::FieldIndexEntry, true));
indexEntry->set_Text(u"Index entry 3");
indexEntry->set_EntryType(u"A");

doc->UpdatePageLayout();
doc->UpdateFields();
doc->Save(get_ArtifactsDir() + u"Field.INDEX.XE.Filtering.docx");

Показывает, как заполнить поле INDEX записями с помощью полей XE и также изменить его внешний вид.

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

// Создайте поле INDEX, которое будет отображать запись для каждого найденного в документе поля XE.
// Каждая запись будет отображать значение свойства Text поля XE слева,
// а номер страницы, содержащей поле XE, — справа.
// Если у полей XE одинаковое значение в их свойстве "Text",
// поле INDEX сгруппирует их в одну запись.
auto index = System::ExplicitCast<Aspose::Words::Fields::FieldIndex>(builder->InsertField(Aspose::Words::Fields::FieldType::FieldIndex, true));
index->set_LanguageId(u"1033");

// Установка значения этого свойства в "A" сгруппирует все записи по первой букве,
// и разместит эту букву в верхнем регистре над каждой группой.
index->set_Heading(u"A");

// Установите, чтобы таблица, созданная полем INDEX, охватывала 2 столбца.
index->set_NumberOfColumns(u"2");

// Установите, чтобы любые записи, начинающиеся с букв вне диапазона "a-c", были опущены.
index->set_LetterRange(u"a-c");

ASSERT_EQ(u" INDEX  \\z 1033 \\h A \\c 2 \\p a-c", index->GetFieldCode());

// Следующие два поля XE появятся под заголовком "A",
// при этом их соответствующее форматирование текста также будет применено к номерам страниц.
builder->InsertBreak(Aspose::Words::BreakType::PageBreak);
auto indexEntry = System::ExplicitCast<Aspose::Words::Fields::FieldXE>(builder->InsertField(Aspose::Words::Fields::FieldType::FieldIndexEntry, true));
indexEntry->set_Text(u"Apple");
indexEntry->set_IsItalic(true);

ASSERT_EQ(u" XE  Apple \\i", indexEntry->GetFieldCode());

builder->InsertBreak(Aspose::Words::BreakType::PageBreak);
indexEntry = System::ExplicitCast<Aspose::Words::Fields::FieldXE>(builder->InsertField(Aspose::Words::Fields::FieldType::FieldIndexEntry, true));
indexEntry->set_Text(u"Apricot");
indexEntry->set_IsBold(true);

ASSERT_EQ(u" XE  Apricot \\b", indexEntry->GetFieldCode());

// Оба следующих поля XE будут под заголовками "B" и "C" в содержании таблицы полей INDEX.
builder->InsertBreak(Aspose::Words::BreakType::PageBreak);
indexEntry = System::ExplicitCast<Aspose::Words::Fields::FieldXE>(builder->InsertField(Aspose::Words::Fields::FieldType::FieldIndexEntry, true));
indexEntry->set_Text(u"Banana");

builder->InsertBreak(Aspose::Words::BreakType::PageBreak);
indexEntry = System::ExplicitCast<Aspose::Words::Fields::FieldXE>(builder->InsertField(Aspose::Words::Fields::FieldType::FieldIndexEntry, true));
indexEntry->set_Text(u"Cherry");

// Поля INDEX сортируют все записи в алфавитном порядке, поэтому эта запись появится под "A" вместе с другими двумя.
builder->InsertBreak(Aspose::Words::BreakType::PageBreak);
indexEntry = System::ExplicitCast<Aspose::Words::Fields::FieldXE>(builder->InsertField(Aspose::Words::Fields::FieldType::FieldIndexEntry, true));
indexEntry->set_Text(u"Avocado");

// Эта запись не появится, потому что она начинается с буквы "D",
// что находится вне диапазона символов "a-c", определяемого свойством LetterRange поля INDEX.
builder->InsertBreak(Aspose::Words::BreakType::PageBreak);
indexEntry = System::ExplicitCast<Aspose::Words::Fields::FieldXE>(builder->InsertField(Aspose::Words::Fields::FieldType::FieldIndexEntry, true));
indexEntry->set_Text(u"Durian");

doc->UpdatePageLayout();
doc->UpdateFields();
doc->Save(get_ArtifactsDir() + u"Field.INDEX.XE.Formatting.docx");

См. также