Try OpenEdge Now
skip to main content
ABL Reference
ABL Syntax Reference : LOGICAL function
 

LOGICAL function

Converts any data type into the LOGICAL data type.

Syntax

LOGICAL ( expression [ , char-expression-format ] )
expression
An expression in the data type that you want to convert to logical.
char-expression-format
A character expression that evaluates to a valid logical format, such as "si/no", or "da/nyet". This argument is ignored unless expression is of CHARACTER type. Also, this argument is only needed if expression evaluates to something other than the usual TRUE or FALSE, or YES or NO values.

Example

The following code fragment illustrates the Logical function:
DEFINE VARIABLE mychar AS CHARACTER NO-UNDO.
DEFINE VARIABLE v-log  AS LOGICAL   NO-UNDO.

mychar = "si".

v-log = LOGICAL(mychar, "si/no")
/* v-log is TRUE */

Notes

*If the value of expression is the Unknown value (?), the LOGICAL function returns the Unknown value (?).
*If expression is of type DECIMAL, INTEGER, INT64, DATE, DATETIME, DATTIME-TZ, or HANDLE, the function returns TRUE if the value of expression is nonzero. If the value of expression is 0, it returns FALSE. The second argument is ignored if present.
*If expression is of type LONGCHAR or CHARACTER, it returns TRUE or FALSE depending on the value in the expression and the format used. Whether or not char-expression-format is given, the case-insensitive values TRUE, FALSE, YES, NO, abbreviated to 1 character, are always accepted. For example, a "Y" is interpreted as TRUE.
*If char-expression-format is given, it is validated. If it is not valid, an error message appears and the Unknown value (?) is returned. Otherwise, the format is used to interpret the character string if it is not one of the following: TRUE, FALSE, YES, or NO. For example, LOGICAL ("si", "si/no" ) returns TRUE.
*Data types such as RAW, MEMPTR, LVARBINARY, and so on return the Unknown value (?), but this is not considered an error.

See also

STRING function, INTEGER function, DATE function