Aspose::Words::Fields::FieldIf class
Contents
[
Hide
]FieldIf class
Implements the IF field. To learn more, visit the Working with Fields documentation article.
class FieldIf : public Aspose::Words::Fields::Field,
public Aspose::Words::Fields::IMergeFieldSurrogate
Methods
Method | Description |
---|---|
EvaluateCondition() | Evaluates the condition. |
get_ComparisonOperator() | Gets or sets the comparison operator. |
get_DisplayResult() | Gets the text that represents the displayed field result. |
get_End() override | Gets the node that represents the field end. |
get_End() const | Gets the node that represents the field end. |
get_FalseText() | Gets or sets the text displayed if the comparison expression is false. |
get_FieldEnd() const | Gets the node that represents the field end. |
get_FieldStart() const | Gets the node that represents the start of the field. |
get_Format() | Gets a FieldFormat object that provides typed access to field’s formatting. |
get_IsDirty() | Gets whether the current result of the field is no longer correct (stale) due to other modifications made to the document. |
get_IsLocked() | Gets or sets whether the field is locked (should not recalculate its result). |
get_LeftExpression() | Gets or sets the left part of the comparison expression. |
get_LocaleId() | Gets or sets the LCID of the field. |
get_Result() | Gets or sets text that is between the field separator and field end. |
get_RightExpression() | Gets or sets the right part of the comparison expression. |
get_Separator() override | Gets the node that represents the field separator. Can be null. |
get_Start() override | Gets the node that represents the start of the field. |
get_Start() const | Gets the node that represents the start of the field. |
get_TrueText() | Gets or sets the text displayed if the comparison expression is true. |
virtual get_Type() const | Gets the Microsoft Word field type. |
GetFieldCode() | Returns text between field start and field separator (or field end if there is no separator). Both field code and field result of child fields are included. |
GetFieldCode(bool) | Returns text between field start and field separator (or field end if there is no separator). |
GetType() const override | |
Is(const System::TypeInfo&) const override | |
Remove() | Removes the field from the document. Returns a node right after the field. If the field’s end is the last child of its parent node, returns its parent paragraph. If the field is already removed, returns null. |
set_ComparisonOperator(const System::String&) | Setter for Aspose::Words::Fields::FieldIf::get_ComparisonOperator. |
set_FalseText(const System::String&) | Setter for Aspose::Words::Fields::FieldIf::get_FalseText. |
set_IsDirty(bool) | Sets whether the current result of the field is no longer correct (stale) due to other modifications made to the document. |
set_IsLocked(bool) | Setter for Aspose::Words::Fields::Field::get_IsLocked. |
set_LeftExpression(const System::String&) | Setter for Aspose::Words::Fields::FieldIf::get_LeftExpression. |
set_LocaleId(int32_t) | Setter for Aspose::Words::Fields::Field::get_LocaleId. |
set_Result(const System::String&) | Setter for Aspose::Words::Fields::Field::get_Result. |
set_RightExpression(const System::String&) | Setter for Aspose::Words::Fields::FieldIf::get_RightExpression. |
set_TrueText(const System::String&) | Setter for Aspose::Words::Fields::FieldIf::get_TrueText. |
static Type() | |
Unlink() | Performs the field unlink. |
Update() | Performs the field update. Throws if the field is being updated already. |
Update(bool) | Performs a field update. Throws if the field is being updated already. |
Remarks
Compares the values designated by the expressions LeftExpression and RightExpression in comparison using the operator designated by ComparisonOperator.
A field in the following format will be used as a mail merge source: { IF 0 = 0 “{PatientsNameFML}” "" * MERGEFORMAT }
Examples
Shows how to insert an IF field.
auto doc = MakeObject<Document>();
auto builder = MakeObject<DocumentBuilder>(doc);
builder->Write(u"Statement 1: ");
auto field = System::ExplicitCast<FieldIf>(builder->InsertField(FieldType::FieldIf, true));
field->set_LeftExpression(u"0");
field->set_ComparisonOperator(u"=");
field->set_RightExpression(u"1");
// The IF field will display a string from either its "TrueText" property,
// or its "FalseText" property, depending on the truth of the statement that we have constructed.
field->set_TrueText(u"True");
field->set_FalseText(u"False");
field->Update();
// In this case, "0 = 1" is incorrect, so the displayed result will be "False".
ASSERT_EQ(u" IF 0 = 1 True False", field->GetFieldCode());
ASSERT_EQ(FieldIfComparisonResult::False, field->EvaluateCondition());
ASSERT_EQ(u"False", field->get_Result());
builder->Write(u"\nStatement 2: ");
field = System::ExplicitCast<FieldIf>(builder->InsertField(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();
// This time the statement is correct, so the displayed result will be "True".
ASSERT_EQ(u" IF 5 = \"2 + 3\" True False", field->GetFieldCode());
ASSERT_EQ(FieldIfComparisonResult::True, field->EvaluateCondition());
ASSERT_EQ(u"True", field->get_Result());
doc->UpdateFields();
doc->Save(ArtifactsDir + u"Field.IF.docx");
See Also
- Class Field
- Namespace Aspose::Words::Fields
- Library Aspose.Words for C++