FORMAT
Specifies the format of information displayed by the OUTPUT verb or by an
unformatted DISPLAY verb.
Syntax
FORMAT display-list;
FORMAT specifies the format of a display and the inclusion of any
character strings to enhance the display. You use it in conjunction with
the OUTPUT verb or an unformatted DISPLAY verb. Use the FORMAT/OUTPUT
statement combination when you want to generate a display from more than
one entry in a particular data set or file.
The FORMAT statement must precede the DISPLAY or OUTPUT statement it
formats. A FORMAT statement in PERFORM procedure associated with an
OUTPUT statement does not format that OUTPUT, though it may format
another OUTPUT or DISPLAY statement within the PERFORM= procedure.
The specifications in a FORMAT statement are used by the next OUTPUT
statement or by the next unformatted DISPLAY statement. The FORMAT
specifications cannot be re-used unless program control passes through
that FORMAT statement again. Format specifications are reset to default
values after each FORMAT statement is used by the OUTPUT or DISPLAY
statement.
When native language support is used, the decimal and thousands
indicators are language sensitive. As indicated below, some of the EDIT=
mask characters are also language sensitive. (See Appendix E, "Native
Language Support," for more information.)
The default format is:
* Displays the values in the order in which they appear in the data
register.
* Accompanies each value with a heading consisting of:
* the heading specified for that value in a HEAD= option of a
DEFINE(ITEM) statement,
* the heading taken from a data dictionary definition of the
item, or
* the associated data item name in the list register.
* Each value is displayed in a field whose length is either the data
item size or the heading length, whichever is longer.
* A single blank character separates each value field from the next.
If a field cannot fit on the current display line, then the field
begins on a new line.
Statement Parts
display-list The display list contains one or more display fields and
their formatting parameters separated by a colon. The
fields are separated from their formatting parameters by
commas as shown below:
display-field[,format-parameter]...
[:display-field[,format-parameter]...]...
If you omit display-list, the display is formatted
according to the default format described earlier in this
verb description.
display- The following options can be used for display
field fields:
* A reference to a data item name in the
list register (the item name may be
subscripted if an array item is being
referenced).
* A child item name whose parent item is
in the list register, or
* A character string delimited by
quotation marks.
If the requested item cannot be found in the
list register, then Transact generates an
error at execution time.
Five system variables can also be used as
display fields. As noted, some are affected
by native language support. (See Appendix E,
"Native Language Support," for more
information.)
$CPU displays the cumulative amount
of CPU time used by the
Transact program, in
milliseconds.
$DATELINE displays the current date and
time in the form Tue, Apr 14,
1992, 3:07 P.M. The format is
affected by native language
support.
$PAGE displays the current page
number.
$TIME displays the current time; the
default format is HH:MM AA (for
example, 03:07 PM). The format
is affected by native language
support.
$TODAY displays the current date; the
default format is MM/DD/YY (for
example, 04/14/92). The format
is affected by native language
support.
format- parameters One or more of the following formatting parameters
can follow the display field name:
CCTL=number Issues a carriage control code
of number (decimal
representation) for the display
line containing the associated
display field. Carriage
control codes (octal
representation) are found in
the MPE Intrinsics Manual.
Note that the use of
CCTL=number and LINE, NOCLRF,
or ROW, may affect output due
to conflicting values.
CENTER Centers a display field on a
line. The entire field,
including leading or trailing
blanks, is centered.
COL=number Starts the display field in the
absolute column position
specified by number. The first
column position is 1.
If the display is already at a
column position equal to or
greater than the line width of
the display device, the field
is truncated if:
* it is a character field,
or
* pound signs are
displayed for a numeric
field.
If no part of the field fits,
it is not displayed.
EDIT= Characters that designate edit
"edit-string" masks. The following
characters have special
meanings when used in the
edit-string:
^ Inserts the character
from the source data
field into this position
in the display field.
Z Suppresses leading zeros.
Note that you must use an
uppercase Z.
$ Adds business (single
character) currency
symbol. If the language
defined currency symbol
precedes, then the symbol
is floated. If the
symbol succeeds, then it
follows the last
character of the number
and the edit mask is
shifted left one
character to leave room.
If the symbol imbeds, it
replaces the radix
(decimal point or
equivalent). If no
business currency symbol
is defined for the
current language, then
"$" edit characters are
treated the same as
"other" edit characters,
explained below.
________________________
NOTE The number of
digits available
for the source
number depends on
the type of
currency symbol.
Thus, the same
value might cause a
field overflow in
some languages and
not in others.
________________________
* Fills field with leading
asterisks.
. Aligns the implied
decimal point as
specified in a data
dictionary or in a
DEFINE(ITEM) definition
statement with this edit
character in the edit
mask and output the
language defined radix
character.
! Ignores the implied
decimal place and
replaces this character
with a language defined
decimal character.
' Outputs the language
defined thousands
separator character
(numeric only).
( Surrounds negative values
with parentheses (must be
last character in the
edit mask).
All "other" characters, which
means any character not defined
above in the list of special
characters, are treated as
insert characters. For
example:
EDIT="@@@@@@.@@"
displays entered data as:
@@@@@@.@@
To denote numeric data type 9,
Z, P, I, J, K, R, or E negative
values with a trailing "-",
"CR", or "DR", add a trailing
"-", "CR", or "DR" to the edit
string. Some edit-string
examples follow:
Number Edit String Result
1234 $$,$$$!^^ $l2.34
123456 $$,$$$!^^ $1,234.56
123456 ***,**$!^^ *$1,234.56
000009 ZZZZ!^^ .09
475.49 XXX,XXX.XX XXX,XXX.XX
-123456 $$,$$$!^^CR $1,234.56CR
-123456 Z,ZZZ!^^- $1,234.56-
230479 ^^/^^/^^ 23/04/79
System variables (except
$DATELINE) can also be edited.
The edit mask characters just
defined can be used for $CPU
and $PAGE. Special editing
characters are used for $TIME
and $TODAY.
For $TIME, characters in the
edit mask string are processed
as follows:
H Displays the hour with
no leading blank or
zero if hour < 10.
ZH Displays the hour with
leading blank if hour <
10.
HH Displays the hour with
leading zero if hour <
10.
24 Displays the hour as
expressed on a 24-hour
clock; used as a prefix
to H.
M Displays the minute
with no leading blank
or zero if minute < 10.
ZM Displays the minute
with leading blank if
minute < 10.
MM Displays the minute
with leading zero if
minute < 10.
S Displays the second
with no leading blank
or zero if second < 10.
ZS Displays the second
with leading blank if
second < 10.
SS Displays the second
with leading zero if
second < 10. idx|S and
SS edit characters|
T Displays the tenth of a
second.
A Displays the next
letter in the AM or PM
sequence in uppercase.
a Displays the next
letter in the AM or PM
sequence in lowercase.
AA Displays both letters
in the AM or PM
sequence in uppercase.
aa Displays both letters
in the AM or PM
sequence in lowercase.
Except for "a", all other $TIME
edit mask characters must be in
uppercase. All characters
other than edit mask characters
are inserted on a character by
character basis.
Here are some examples of how
edit masks change the format of
the $TIME value 3:07:32 PM:
Edit Mask Displayed Time
HH:MM:SS 03:07:32
24H:M:S 15:7:32
H:MM:SS a.a 3:07:32 p.m.
ZH:ZM:SS AA 3: 7:32 PM
For $TODAY, characters in the
edit mask string are processed
as follows:
D Displays the day of the
month with no leading
blank or zero if day <
10.
ZD Displays the day of the
month with leading
blank if day < 10.
DD Displays the day of the
month with leading zero
if day of the month <
10.
DDD Displays the Julian day
of year.
M Displays the month with
no leading blank or
zero if month < 10.
ZM Displays the month with
leading blank if month
< 10.
MM Displays the month with
leading zero if month <
10.
nM Displays the first n
letters of month name
in uppercase; if n >
number of letters in
month name, trailing
blanks are not
inserted.
nm Displays the first n
letters of month name
in lowercase except for
the first letter, which
appears in uppercase.
YY Displays the last two
digits in current year.
YYYY Displays the current
year.
nW Displays the first n
letters of day of week
in uppercase; if n >
length of the week
name, no trailing
blanks are inserted.
nw Displays the first n
letters of day of week
in lowercase except for
the first letter, which
appears in uppercase.
All edit string characters must
be in uppercase, except for "m"
and "w". All characters not
defined as an edit string
character are inserted on a
character by character basis.
Various edit masks applied to
the $TODAY date April 14, 1992,
make it appear as follows:
Edit Mask Displayed Date
3w. 3m DD, YYYY Tue. Apr 14, 1992
DD 3M, YY 14 APR 92
M-DD-YY 4-14-92
MM/DD/YY 04/14/92
DDD, YYYY 105, 1992
______________________________
NOTE When a numeric value to
be printed is too large
for the edit mask, a
series of pound signs (#)
are printed in place of
the value, to indicate an
overflow.
______________________________
HEAD= "character- Uses the character-string as
string" the heading rather than the
default, which is the heading
from a data dictionary, the
heading from DEFINE(ITEM), or
the item or system variable
name.
JOIN[=number] Places this number of spaces
between the last non-blank
character of the current line
and the first character of the
current display field. To
concatenate the character
strings, use JOIN=0. The
default is 1.
LEFT Left-justifies the data item
value in the display field.
This is the default
specification.
LINE[=number] Starts the display field on a
new line or on a line after a
line skip count specified by
number. If the print device
being used can over print and
you want it to do so, you
should specify LINE=0. Line=
gives a carriage return but no
line feed. The default is 1.
LNG=number Truncates the display field to
this number of characters. If
this option refers to a
compound item, then that item
is displayed within a display
field length of number. If
necessary, new lines are
generated.
NEED= number Prints the current line at the
top of the next page if there
are fewer than the specified
number of lines between the
current line and the bottom of
the page. If you are grouping
a set of items together on a
single line, the NEED= must
appear with the first item on
the page.
NOCRLF Does not issue a carriage
return and line feed for the
display line containing the
display field. NOCRLF is
processed when a listing goes
to the terminal or printer. If
the listing is sent to a disk
file, the option is ignored.
NOHEAD Suppresses the default heading
for this item reference.
NOSIGN Allows no sign position in the
display field. If a negative
value occurs, the display field
contains a string of minus
signs (-).
PAGE[= number] Starts the display field on a
new page or on a page after a
page skip count specified by
number. The default is 1.
RIGHT Right-justifies the data item
value in the display field.
ROW=number Places the display field at
absolute line location number.
The first line position is 1.
If the display is already at a
line position greater than
number, then LINE=1 is in
effect.
SPACE[=number] Places this number of spaces
between the end of the previous
display field and the start of
the current display field. To
concatenate fields, use
SPACE=0. Default=1.
TITLE Displays the associated display
field and any preceding display
fields only at the start of
each new page for which this
statement applies.
TRUNCATE Truncates this display field if
a character field overflows the
end of the display line;
display pound signs if field is
numeric.
ZERO[E]S Right-justifies a numeric data
value in the display field and
inserts leading zeros.
Examples
The following example uses an OUTPUT statement to retrieve information
from a data set DETAIL and then display it in a format set up by the
preceding FORMAT statement. All headings are suppressed by the first
SET(OPTION) statement, rather than by NOHEAD options for individual
items. The final RESET(OPTION) statement resets the NOHEAD option for
subsequent displays.
SET(OPTION) NOHEAD;
FORMAT "Mailing List:",COL=15:
" ",LINE=3,TITLE:
FIRST-NAME,COL=5,LINE:
ADDRESS,COL=5,LINE:
CITY,COL=5,LINE:
",",JOIN=0:
STATE:
ZIP,COL=30;
OUTPUT(SERIAL) DETAIL;
RESET(OPTION) NOHEAD;
This code produces the following:
Mailing List:
Harry Swartz
1 Main St.
Anywhere, CA 12345