Aspose::Words::Fields::Field class
Field class
Представляет поле документа Microsoft Word. Чтобы узнать больше, посетите статью документации.
class Field : public virtual System::Object
Методы
| Метод | Описание |
|---|---|
| get_DisplayResult() | Получает текст, представляющий отображаемый результат поля. |
| get_End() const | Получает узел, представляющий конец поля. |
| get_FieldEnd() const | Получает узел, представляющий конец поля. |
| get_FieldStart() const | Получает узел, представляющий начало поля. |
| get_Format() | Получает объект FieldFormat, который предоставляет типизированный доступ к форматированию поля. |
| get_IsDirty() | Получает или задает, является ли текущий результат поля более некорректным (устаревшим) из‑за других изменений, внесённых в документ. |
| get_IsLocked() | Получает или задает, заблокировано ли поле (не должно пересчитывать свой результат). |
| get_LocaleId() | Получает или задает LCID поля. |
| get_Result() | Получает или задает текст, находящийся между разделителем поля и его концом. |
| get_Separator() | Получает узел, представляющий разделитель поля. Может быть null. |
| get_Start() const | Получает узел, представляющий начало поля. |
| virtual get_Type() const | Получает тип поля Microsoft Word. |
| GetFieldCode() | Возвращает текст между началом поля и разделителем поля (или концом поля, если разделитель отсутствует). Включены как код поля, так и результат дочерних полей. |
| GetFieldCode(bool) | Возвращает текст между началом поля и разделителем поля (или концом поля, если разделитель отсутствует). |
| GetType() const override | |
| Is(const System::TypeInfo&) const override | |
| virtual Remove() | Удаляет поле из документа. Возвращает узел сразу после поля. Если конец поля является последним дочерним элементом его родительского узла, возвращает родительский абзац. Если поле уже удалено, возвращает null. |
| set_IsDirty(bool) | Сеттер для Aspose::Words::Fields::Field::get_IsDirty. |
| set_IsLocked(bool) | Сеттер для Aspose::Words::Fields::Field::get_IsLocked. |
| set_LocaleId(int32_t) | Сеттер для Aspose::Words::Fields::Field::get_LocaleId. |
| set_Result(const System::String&) | Сеттер для Aspose::Words::Fields::Field::get_Result. |
| static Type() | |
| Unlink() | Выполняет отсоединение поля. |
| Update() | Выполняет обновление поля. Вызывает исключение, если поле уже обновляется. |
| Update(bool) | Выполняет обновление поля. Выбрасывает исключение, если поле уже обновляется. |
Примечания
Поле в документе Word — это сложная структура, состоящая из нескольких узлов, включающих начало поля, код поля, разделитель поля, результат поля и конец поля. Fields могут быть вложенными, содержать богатый контент и охватывать несколько абзацев или разделов в документе. Класс Field является объектом‑"фасадом", предоставляющим свойства и методы, позволяющие работать с полем как с единым объектом.
Свойства Start, Separator и End указывают соответственно на узлы начала, разделителя и конца поля.
Содержание между началом поля и разделителем является кодом поля. Содержание между разделителем поля и концом поля является результатом поля. Код поля обычно состоит из одного или нескольких объектов Run, задающих инструкции. Ожидается, что обрабатывающее приложение выполнит код поля для вычисления результата.
Процесс вычисления результатов полей называется обновлением полей. Aspose.Words может обновлять результаты полей большинства типов полей точно так же, как это делает Microsoft Word. Особенно важно, что Aspose.Words может вычислять результаты даже самых сложных формульных полей. Чтобы вычислить результат отдельного поля, используйте метод Update. Чтобы обновить поля во всём документе, используйте UpdateFields.
Вы можете получить текстовую версию кода поля, используя метод GetFieldCode(). Вы можете получить и установить текстовую версию результата поля, используя свойство Result. Как код поля, так и результат могут содержать сложный контент, такой как вложенные поля, абзацы, фигуры, таблицы, и в этом случае вы можете захотеть работать напрямую с узлами поля, если требуется больший контроль.
Вы не создаёте экземпляры класса Field напрямую. Чтобы создать новое поле, используйте метод InsertField().
Примеры
Показывает, как вставить поле в документ, используя код поля.
auto doc = System::MakeObject<Aspose::Words::Document>();
auto builder = System::MakeObject<Aspose::Words::DocumentBuilder>(doc);
System::SharedPtr<Aspose::Words::Fields::Field> field = builder->InsertField(u"DATE \\@ \"dddd, MMMM dd, yyyy\"");
ASSERT_EQ(Aspose::Words::Fields::FieldType::FieldDate, field->get_Type());
ASSERT_EQ(u"DATE \\@ \"dddd, MMMM dd, yyyy\"", field->GetFieldCode());
// Эта перегрузка метода InsertField автоматически обновляет вставленные поля.
ASSERT_TRUE((System::DateTime::get_Today() - System::DateTime::Parse(field->get_Result())).get_Days() <= 1);
См. также
- Namespace Aspose::Words::Fields
- Library Aspose.Words for C++