Skip to main content
Version: 20 R5

Boolean

A boolean field, variable or expression can be either TRUE or FALSE.

Boolean functions

4D provides the Boolean functions True, False, and Not in the dedicated Boolean theme. For more information, see the descriptions of these commands.

Example

This example sets a Boolean variable based on the value of a button. It returns True in myBoolean if the myButton button was clicked and False if the button was not clicked. When a button is clicked, the button variable is set to 1.

 If(myButton=1) //If the button was clicked
myBoolean:=True //myBoolean is set to True
Else //If the button was not clicked,
myBoolean:=False //myBoolean is set to False
End if

The previous example can be simplified into one line.

myBoolean:=(myButton=1)

Logical operators

4D supports two logical operators that work on Boolean expressions: conjunction (AND) and inclusive disjunction (OR). A logical AND returns TRUE if both expressions are TRUE. A logical OR returns TRUE if at least one of the expressions is TRUE. The following table shows the logical operators:

OperationSyntaxReturnsExpressionValue
ANDBoolean & BooleanBoolean("A" = "A") & (15 # 3)True
("A" = "B") & (15 # 3)False
("A" = "B") & (15 = 3)False
ORBoolean | BooleanBoolean("A" = "A") | (15 # 3)True
("A" = "B") | (15 # 3)True
("A" = "B") | (15 = 3)False

The following is the truth table for the AND logical operator:

Expr1Expr2Expr1 & Expr2
TrueTrueTrue
TrueFalseFalse
FalseTrueFalse
FalseFalseFalse

The following is the truth table for the OR logical operator:

Expr1Expr2Expr1 | Expr2
TrueTrueTrue
TrueFalseTrue
FalseTrueTrue
FalseFalseFalse

Tip: If you need to calculate the exclusive disjunction between Expr1 and Expr2, evaluate:

 (Expr1|Expr2) & Not(Expr1 & Expr2)  

In boolean contexts, the 4D language also supports short-circuit operators (&& and ||) and the truthy and falsy concept.