Release 10.1A: OpenEdge Development:
Progress 4GL Reference

> ## + Concatenation operator

> Produces a character value by joining two character strings or expressions.

> #### Syntax

>     expression + expression

> ``expression``

> An expression whose value is a character string. If any expression is a LONGCHAR, the result is a LONGCHAR. Also, the result converts to the code page of the expression on the left.

> Example

> This procedure prints mailing labels. It uses the concatenation operator (+) to ensure that the third line of each label shows the city and state separated by a comma and a space. The FORMAT x(16) is specified to provide room for up to 16 characters in the result of the concatenation. If a FORMAT is not given, then Progress only displays the first eight characters of the result since x(8) is the default format for a character expression.

> r-conc.p
>     FOR EACH customer:
>       DISPLAY  SKIP(1) name SKIP address SKIP
>         city + ", " + state FORMAT "x(16)" country postal-code SKIP(2).
>     END.

> This is a label produced by this procedure:

> #### Note

> If any of the string values you concatenate is the Unknown value (`?`), then the result is the Unknown value (`?`). This might lead to unexpected results if a field used in an expression is not mandatory. For example, you might have fields for a person’s first name, last name, and middle initial. You might combine these into a full name with an expression like the following:

>     DISPLAY fname + " " + minit + " " + lname FORMAT "x(36)".

> If `minit` is not a mandatory field, it might be set to the Unknown value (`?`) in some records. If so, then those records are displayed as the Unknown value (`?`). You can avoid this by using conditional code. For example:

>     DISPLAY fname + " " + (IF minit <> ? THEN minit + ". " ELSE "") +
>     " " + lname FORMAT "x(36)".

Copyright © 2005 Progress Software Corporation www.progress.com Voice: (781) 280-4000 Fax: (781) 280-4095