Your template can contain CONCATENATE functions. A CONCATENATE function combines two or more values to yield a single text value.

Your template can also contain Ampersand operators. An Ampersand operator is just a synonym for the CONCATENATE function. When you specify an Ampersand operator in an expression, we convert that portion of the expression into a CONCATENATE function. In other words, specifying an Ampersand operator is simply a compact way of specifying the CONCATENATE function. For example:

<<CONCATENATE("Time: ",[MeetingTime])>>

Is equivalent to:

<<"Time: "&[MeetingTime]>>

If you refer to a field in a CONCATENATE expression, the value of that field is not formatted. For example, if the CONCATENATE expression contains a "MeetingTime" Time field that specifies Ignore seconds "On", the time value is displayed in full. The Ignore seconds setting is not honored.

<<CONCATENATE("Time: ",[MeetingTime], " (Uses CONCATENATE)")>>
<<"Time: "&[MeetingTime]&" (Uses &)">>

Yields:

Time: 3:30:45 PM (Uses CONCATENATE)
Time: 3:30:45 PM (Uses &)


You can force a field value to be formatted by enclosing the field value in a TEXT function. For example:

<<CONCATENATE("Time: ",TEXT([MeetingTime]), " (Uses CONCATENATE)")>>
<<"Time: "&TEXT([MeetingTime])&" (Uses &)">>

Yields:

Time: 3:30 PM (Uses CONCATENATE)
Time: 3:30 PM (Uses &)

Why the CONCATENATE Function Works This Way

The CONCATENATE function works this way because we use the CONCATENATE function when combining two or more record key field values to yield the compound key value for the record. When we combine key fields in this way, the resulting key value must contain the entire unformatted value of each key field.

Did this answer your question?