Ask different:
Why do two distinct forms of string concatenation exist? 1st: ',' and 2nd: '||'
Answer:
The first form of string concatenation is a statement:
LET string-variable = expr ( ',' expr )...
Read as: "LET string-variable = comma separated expression list"
The second form of string concatenation is an expression:
This is a fragment of the expression grammar:
expr := expr '||' expr
The concatenation result can directly be used wherever 4gl accepts expressions (example: function parameters).
Another remark:
The first form of the string concatenation produces a formatted string: numeric, date, date-time, interval and char() operands will be formatted with a fix width. See the print statement of reports. The first form of the string concatenation has the same semantics as the print statement.