FieldIf
Contents
[
Hide
]FieldIf class
Implements the IF field.
To learn more, visit the Working with Fields documentation article.
public class FieldIf : Field
Constructors
Name | Description |
---|---|
FieldIf() | The default constructor. |
Properties
Name | Description |
---|---|
ComparisonOperator { get; set; } | Gets or sets the comparison operator. |
DisplayResult { get; } | Gets the text that represents the displayed field result. |
End { get; } | Gets the node that represents the field end. |
FalseText { get; set; } | Gets or sets the text displayed if the comparison expression is false . |
Format { get; } | Gets a FieldFormat object that provides typed access to field’s formatting. |
IsDirty { get; set; } | Gets or sets whether the current result of the field is no longer correct (stale) due to other modifications made to the document. |
IsLocked { get; set; } | Gets or sets whether the field is locked (should not recalculate its result). |
LeftExpression { get; set; } | Gets or sets the left part of the comparison expression. |
LocaleId { get; set; } | Gets or sets the LCID of the field. |
Result { get; set; } | Gets or sets text that is between the field separator and field end. |
RightExpression { get; set; } | Gets or sets the right part of the comparison expression. |
Separator { get; } | Gets the node that represents the field separator. Can be null . |
Start { get; } | Gets the node that represents the start of the field. |
TrueText { get; set; } | Gets or sets the text displayed if the comparison expression is true. |
virtual Type { get; } | Gets the Microsoft Word field type. |
Methods
Name | Description |
---|---|
EvaluateCondition() | Evaluates the condition. |
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). |
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 . |
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.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.Write("Statement 1: ");
FieldIf field = (FieldIf)builder.InsertField(FieldType.FieldIf, true);
field.LeftExpression = "0";
field.ComparisonOperator = "=";
field.RightExpression = "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.TrueText = "True";
field.FalseText = "False";
field.Update();
// In this case, "0 = 1" is incorrect, so the displayed result will be "False".
Assert.AreEqual(" IF 0 = 1 True False", field.GetFieldCode());
Assert.AreEqual(FieldIfComparisonResult.False, field.EvaluateCondition());
Assert.AreEqual("False", field.Result);
builder.Write("\nStatement 2: ");
field = (FieldIf)builder.InsertField(FieldType.FieldIf, true);
field.LeftExpression = "5";
field.ComparisonOperator = "=";
field.RightExpression = "2 + 3";
field.TrueText = "True";
field.FalseText = "False";
field.Update();
// This time the statement is correct, so the displayed result will be "True".
Assert.AreEqual(" IF 5 = \"2 + 3\" True False", field.GetFieldCode());
Assert.AreEqual(FieldIfComparisonResult.True, field.EvaluateCondition());
Assert.AreEqual("True", field.Result);
doc.UpdateFields();
doc.Save(ArtifactsDir + "Field.IF.docx");
See Also
- class Field
- namespace Aspose.Words.Fields
- assembly Aspose.Words