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

FieldIf class

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

class FieldIf : public Aspose::Words::Fields::Field,
                public Aspose::Words::Fields::IMergeFieldSurrogate

Методы

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

Примечания

Сравнивает значения, указанные выражениями LeftExpression и RightExpression, используя оператор, указанный в ComparisonOperator.

Поле в следующем формате будет использоваться как источник слияния почты: { IF 0 = 0 “{PatientsNameFML}” "" * MERGEFORMAT }

Примеры

Показывает, как вставить поле IF.

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

builder->Write(u"Statement 1: ");
auto field = System::ExplicitCast<Aspose::Words::Fields::FieldIf>(builder->InsertField(Aspose::Words::Fields::FieldType::FieldIf, true));
field->set_LeftExpression(u"0");
field->set_ComparisonOperator(u"=");
field->set_RightExpression(u"1");

// Поле IF отобразит строку из свойства \"TrueText\",
// или свойства \"FalseText\", в зависимости от истинности построенного нами утверждения.
field->set_TrueText(u"True");
field->set_FalseText(u"False");
field->Update();

// В этом случае \"0 = 1\" неверно, поэтому отображаемый результат будет \"False\".
ASSERT_EQ(u" IF  0 = 1 True False", field->GetFieldCode());
ASSERT_EQ(Aspose::Words::Fields::FieldIfComparisonResult::False, field->EvaluateCondition());
ASSERT_EQ(u"False", field->get_Result());

builder->Write(u"\nStatement 2: ");
field = System::ExplicitCast<Aspose::Words::Fields::FieldIf>(builder->InsertField(Aspose::Words::Fields::FieldType::FieldIf, true));
field->set_LeftExpression(u"5");
field->set_ComparisonOperator(u"=");
field->set_RightExpression(u"2 + 3");
field->set_TrueText(u"True");
field->set_FalseText(u"False");
field->Update();

// В этот раз утверждение верно, поэтому отображаемый результат будет \"True\".
ASSERT_EQ(u" IF  5 = \"2 + 3\" True False", field->GetFieldCode());
ASSERT_EQ(Aspose::Words::Fields::FieldIfComparisonResult::True, field->EvaluateCondition());
ASSERT_EQ(u"True", field->get_Result());

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

См. также