The combined fields we’re using are customer name, city, state and zip. If we were to list the combined fields like this:
the report would view like this:
The name, city, state and zip would be jammed together — which would work great if you were combining “dead” and “beat” or “egg” and “head” or “high” and “brow” — not so good for a name and address. Concatenation prints the fields exactly as as you enter them on the pad. The required space between fields doesn’t count. Most of the time you will separate the fields with arguments or separators.
- Between the name field and the city field, we enter a literal — a value enclosed with quotation marks. In this case: ” — “ (A literal can also be a dictionary item).
- Between the city and state fields we introduce a mask with the using reserved word. The mask allows us to make the literal separator conditional. If the city field is not blank for a customer then use the mask. The asterisk means to replace the value of city where the asterisk is. If we just used another literal here, like “, ” (comma space) then a blank city field for a customer would leave an orphan comma.between the name and the state.
- The final separator between state and zip is a literal of four spaces.
- The label keyword names the column in the report.
- The size keyword sets the maximum width of the combined fields. Its argument is a literal of number of characters.
Any of these literals can be defined as dictionary items. Dictionary literals don’t need the quotation marks. So the size would read: size 50 (where 50 is the name and value of a dictionary literal).
The report then views like this:
The Customer number 1 doesn’t have a city — no mask, no comma.