This document discusses the use of those Natural profile and/or session parameters which you can use to control the output format of fields.
The following topics are covered:
Natural provides several profile and/or session parameters you can use to control the format in which fields are output:
Parameter | Function |
---|---|
LC ,
IC and
TC
|
With these session parameters, you can specify characters that are to be displayed before or after a field or before a field value. |
LCU ,
ICU and
TCU
|
With these session parameters, you can specify characters in Unicode format that are to be displayed before or after a field or before a field value. |
AL and
NL
|
With these session parameters, you can increase or reduce the output length of fields. |
DL
|
With this session parameter, you can specify the default output length for an alphanumeric map field of format U. |
SG
|
With this session parameter, you can determine whether negative values are to be displayed with or without a minus sign. |
IS
|
With this session parameter, you can suppress the display of subsequent identical field values. |
ZP
|
With this profile and session parameter, you can
determine whether field values of 0 are to be displayed or
not.
|
ES
|
With this session parameter, you can suppress the
display of empty lines generated by a DISPLAY or
WRITE
statement.
|
These parameters are discussed in the following sections.
With the session parameter LC
, you can specify
leading characters that are to be displayed immediately before a field
that is output with a DISPLAY
statement. The width of
the output column is enlarged accordingly. You can specify 1 to 10
characters.
By default, values are displayed left-justified in alphanumeric
fields and right-justified in numeric fields. (These defaults can be changed
with the AD
parameter; see the
Parameter
Reference). When a leading character is specified for an
alphanumeric field, the character is therefore displayed immediately before the
field value; for a numeric field, a number of spaces may occur between the
leading character and the field value.
The LC
parameter can be
used with the following statements:
The LC
parameter can be set at statement
level and at element level.
The session parameter LCU
is identical to
the session parameter LC
. The difference
is that the leading characters are always stored in Unicode format.
This allows you to specify leading characters with mixed characters from different code pages, and assures that always the correct character is displayed independent of the installed system code page.
For further information, see Unicode and Code Page Support in the Natural Programming Language, Session Parameters, section EMU, ICU, LCU, TCU versus EM, IC, LC, TC.
The parameters LCU
and
ICU
cannot both be applied to one field.
With the session parameter IC
, you specify the
characters to be inserted in the column immediately preceding the value of
a field that is output with a DISPLAY
statement. You can
specify 1 to 10 characters.
For a numeric field, the insertion characters will be placed
immediately before the first significant digit that is output, with no
intervening spaces between the specified character and the field value. For
alphanumeric fields, the effect of the IC
parameter is
the same as that of the LC
parameter.
The parameters LC
and
IC
cannot
both be applied to one field.
The IC
parameter can be
used with the following statements:
The IC
parameter can be set at statement
level and at element level.
The session parameter ICU
is identical to
the session parameter IC
. The difference
is that the insertion characters are always stored in Unicode format.
This allows you to specify insertion characters with mixed characters from different code pages, and assures that always the correct character is displayed independent of the installed system code page.
For further information, see Unicode and Code Page Support in the Natural Programming Language, Session Parameters, section EMU, ICU, LCU, TCU versus EM, IC, LC, TC.
The parameters LCU
and
ICU
cannot both be applied to one field.
With the session parameter TC
, you can specify
trailing characters that are to be displayed immediately to the right of a
field that is output with a DISPLAY
statement. The width of
the output column is enlarged accordingly. You can specify 1 to 10
characters.
The TC
parameter can be
used with the following statements:
The TC
parameter can be set at statement
level and at element level.
The session parameter TCU
is identical to
the session parameter TC
. The difference
is that the trailing characters are always stored in Unicode format.
This allows you to specify trailing characters with mixed characters from different code pages, and assures that always the correct character is displayed independent of the installed system code page.
For further information, see Unicode and Code Page Support in the Natural Programming Language, Session Parameters, section EMU, ICU, LCU, TCU versus EM, IC, LC, TC.
With the session parameter AL
, you can specify
the output length for an alphanumeric field; with the
NL
parameter, you can specify the output length for a numeric field. This
determines the length of a field as it will be output, which may be shorter or
longer than the actual length of the field (as defined in the DDM for a
database field, or in the DEFINE
DATA
statement for a user-defined variable).
Both parameters can be used with the following statements:
Both parameters can be set at statement level and at element level.
Note:
If an edit mask is specified, it overrides an
NL
or
AL
specification. Edit masks are
described in Edit Masks - EM
Parameter.
Note:
You should use the Web I/O Interface to make use of
the full functionality of the DL
parameter. When using
the terminal emulation, it is not possible, for example, to scroll in a field
when the value defined with DL
is smaller than the field
length.
With the session parameter DL
, you can specify
the display length for a field of format A or U, since the display
width of a Unicode string can be twice the length of the string, and the user
must be able to display the whole string. The default will be the length, for
example, for a format/length U10, the display length can be 10 to 20, whereas
the default length (when DL
is not specified) is 10.
The session parameter DL
can be used with the
following statements:
The session parameter DL
can be set at
statement level and at element level.
The difference between the session parameters
AL
and
DL
is that
AL
defines the data length of a field whereas
DL
defines the number of columns which are used on the
screen for displaying the field. The user can scroll in input fields to view
the entire content of a field if the value specified with the
DL
session parameter is less than the length of the
field data.
Using the DL
parameter with a
length that is smaller than the length of the field is only recommended with
the Web I/O Interface. When running Natural in a terminal emulation, scrolling
in a field is not possible and so the effect is the same as using the
AL
parameter. Moreover, when changing the field
contents, all characters which are beyond the display length will be lost.
Note:DL
is allowed for A-format fields as well.
In conjunction with the Web I/O Interface,
this would allow making the edit control
size smaller than the content of a field.
DEFINE DATA LOCAL 1 #U1 (U10) 1 #U2 (U10) END-DEFINE * #U1 := U'latintxt00' #U2 := U'' * INPUT (AD=M) #U1 #U2 END
The above program produces the following output where the content of
the field #U2
is incomplete:
#U1 latintxt00 #U2
When the session parameter DL
is used with
the field #U2
and is specified accordingly, the content of this
field will be displayed correctly:
DEFINE DATA LOCAL 1 #U1 (U10) 1 #U2 (U10) END-DEFINE * #U1 := U'latintxt00' #U2 := U'' * INPUT (AD=M) #U1 #U2 (DL=20) END
Result:
#U1 latintxt00 #U2
With the session parameter SG
, you can
determine whether or not a sign position is to be allocated for numeric
fields.
By default, SG=ON
applies, which means
that a sign position is allocated for numeric fields.
If you specify SG=OFF
, negative values in
numeric fields will be output without a minus sign (-).
The SG
parameter can be used with the
following statements:
The SG
parameter can be set at both statement
level and element level.
Note:
If an edit mask is specified, it overrides an
SG
specification. Edit masks are
described in Edit Masks - EM
Parameter.
** Example 'FORMAX03': FORMAT (without FORMAT and compare with FORMAX04) ************************************************************************ DEFINE DATA LOCAL 1 VIEWEMP VIEW OF EMPLOYEES 2 NAME 2 FIRST-NAME 2 SALARY (1:1) 2 BONUS (1:1,1:1) END-DEFINE * READ (5) VIEWEMP BY NAME STARTING FROM 'JONES' DISPLAY NAME FIRST-NAME SALARY (1:1) BONUS (1:1,1:1) END-READ END
The above program contains no parameter settings and produces the following output:
Page 1 04-11-11 11:11:11 NAME FIRST-NAME ANNUAL BONUS SALARY -------------------- -------------------- ---------- ---------- JONES VIRGINIA 46000 9000 JONES MARSHA 50000 0 JONES ROBERT 31000 0 JONES LILLY 24000 0 JONES EDWARD 37600 0
In this example, the session parameters
AL
,
NL
,
LC
,
IC
and
TC
are
used.
** Example 'FORMAX04': FORMAT (with parameters AL, NL, LC, TC, IC and ** compare with FORMAX03) ************************************************************************ DEFINE DATA LOCAL 1 VIEWEMP VIEW OF EMPLOYEES 2 NAME 2 FIRST-NAME 2 SALARY (1:1) 2 BONUS (1:1,1:1) END-DEFINE * FORMAT AL=10 NL=6 * READ (5) VIEWEMP BY NAME STARTING FROM 'JONES' DISPLAY NAME (LC=*) FIRST-NAME (TC=*) SALARY (1:1) (IC=$) BONUS (1:1,1:1) (LC=>) END-READ END
The above program produces the following output. Compare the layout of this output with that of the previous program to see the effect of the individual parameters:
Page 1 04-11-11 11:11:11 NAME FIRST-NAME ANNUAL BONUS SALARY ----------- ----------- -------- -------- *JONES VIRGINIA * $46000 > 9000 *JONES MARSHA * $50000 > 0 *JONES ROBERT * $31000 > 0 *JONES LILLY * $24000 > 0 *JONES EDWARD * $37600 > 0
As you can see in the above example, any output length you specify
with the AL
or
NL
parameter does not include any characters specified with the
LC
,
IC
and
TC
parameters: the width of the NAME
column, for example, is 11
characters - 10 for the field value (AL=10
) plus 1 leading
character.
The width of the SALARY
and BONUS
columns is 8 characters - 6 for the field value (NL=6
), plus 1 leading/inserted
character, plus 1 sign position (because SG=ON
applies).
With the session parameter IS
, you can suppress
the display of identical information in successive lines created by a
WRITE
or
DISPLAY
statement.
By default, IS=OFF
applies, which means that
identical field values will be displayed.
If IS=ON
is specified, a value which is identical
to the previous value of that field will not be displayed.
The IS
parameter can be specified
with a FORMAT
statement to apply to the
whole report, or
in a DISPLAY
or
WRITE
statement at both
statement level and element level.
The effect of the parameter IS=ON
can be
suspended for one record by using the statement
SUSPEND IDENTICAL
SUPPRESS
; see the Statements
documentation for details.
Compare the output of the following two example programs to see the
effect of the IS
parameter. In the second one, the
display of identical values in the NAME
field is suppressed.
** Example 'FORMAX05': FORMAT (without parameter IS ** and compare with FORMAX06) ************************************************************************ DEFINE DATA LOCAL 1 VIEWEMP VIEW OF EMPLOYEES 2 NAME 2 FIRST-NAME END-DEFINE * READ (3) VIEWEMP BY NAME STARTING FROM 'JONES' DISPLAY NAME FIRST-NAME END-READ END
The above program produces the following output:
Page 1 04-11-11 11:11:11 NAME FIRST-NAME -------------------- -------------------- JONES VIRGINIA JONES MARSHA JONES ROBERT
** Example 'FORMAX06': FORMAT (with parameter IS ** and compare with FORMAX05) ************************************************************************ DEFINE DATA LOCAL 1 VIEWEMP VIEW OF EMPLOYEES 2 NAME 2 FIRST-NAME END-DEFINE * FORMAT IS=ON * READ (3) VIEWEMP BY NAME STARTING FROM 'JONES' DISPLAY NAME FIRST-NAME END-READ END
The above program produces the following output:
Page 1 04-11-11 11:54:01 NAME FIRST-NAME -------------------- -------------------- JONES VIRGINIA MARSHA ROBERT
With the profile and session parameter
ZP
, you
determine how a field value of zero is to be displayed.
By default, ZP=ON
applies, which means that one
0
(for numeric fields) or all zeros (for time fields) will be
displayed for each field value that is zero.
If you specify ZP=OFF
, the display of each field
value which is zero will be suppressed.
The ZP
parameter can be
specified
with a FORMAT
statement to apply to the
whole report, or
in a DISPLAY
or
WRITE
statement at both
statement level and element level.
Compare the output of the following two
example programs to see the effect
of the parameters ZP
and
ES
.
With the session parameter ES
, you can suppress
the output of empty lines created by a DISPLAY
or
WRITE
statement.
By default, ES=OFF
applies, which means that lines
containing all blank values will be displayed.
If ES=ON
is specified, a line resulting from a
DISPLAY
or
WRITE
statement which
contains all blank values will not be displayed. This is particularly useful
when displaying multiple-value fields or fields which are part of a periodic
group if a large number of empty lines are likely to be produced.
The ES
parameter can be
specified
with a FORMAT
statement to apply to the
whole report, or
Note:
To achieve empty suppression for numeric values, in addition to
ES=ON
the parameter ZP=OFF
must also be set for the
fields concerned in order to have null values turned into blanks and thus not
output either.
Compare the output of the following two example programs to see the
effect of the parameters ZP
and
ES
.
** Example 'FORMAX07': FORMAT (without parameter ES and ZP ** and compare with FORMAX08) ************************************************************************ DEFINE DATA LOCAL 1 VIEWEMP VIEW OF EMPLOYEES 2 NAME 2 FIRST-NAME 2 BONUS (1:2,1:1) END-DEFINE * READ (4) VIEWEMP BY NAME STARTING FROM 'JONES' DISPLAY NAME FIRST-NAME BONUS (1:2,1:1) END-READ END
The above program produces the following output:
Page 1 04-11-11 11:58:23 NAME FIRST-NAME BONUS -------------------- -------------------- ---------- JONES VIRGINIA 9000 6750 JONES MARSHA 0 0 JONES ROBERT 0 0 JONES LILLY 0 0
** Example 'FORMAX08': FORMAT (with parameters ES and ZP ** and compare with FORMAX07) ************************************************************************ DEFINE DATA LOCAL 1 VIEWEMP VIEW OF EMPLOYEES 2 NAME 2 FIRST-NAME 2 BONUS (1:2,1:1) END-DEFINE * FORMAT ES=ON * READ (4) VIEWEMP BY NAME STARTING FROM 'JONES' DISPLAY NAME FIRST-NAME BONUS (1:2,1:1)(ZP=OFF) END-READ END
The above program produces the following output:
Page 1 04-11-11 11:59:09 NAME FIRST-NAME BONUS -------------------- -------------------- ---------- JONES VIRGINIA 9000 6750 JONES MARSHA JONES ROBERT JONES LILLY
For further examples of the parameters
LC
,
IC
,
TC
,
AL
,
NL
,
IS
,
ZP
and
ES
, and
the SUSPEND IDENTICAL
SUPPRESS
statement, see the following example programs: