Compaq COBOL
Reference Manual
5.3.22 FILE STATUS
Function
The FILE STATUS clause specifies a data item to contain the status of 
an input/output operation.
file-stat
is the data-name of a two-character alphanumeric Working-Storage 
Section, or Linkage Section data item. file-stat is the file's 
FILE STATUS data item.
Syntax Rules
  - file-stat can be qualified.
  
 - The FILE STATUS clause can be in the file's SELECT clause or in its 
  file description entry. However, it cannot be in both the SELECT clause 
  and the file description entry for the same file.
  
 - If the FILE STATUS clause is associated with an external file 
  connector, file-stat must reference the same data item in all 
  programs in the run unit.
 
General Rule
After the execution of every I-O statement that refers to the specified 
file, a value is moved to file-stat. This value indicates the 
file's I-O status after the execution of the I-O statement.
Additional References
5.3.23 FOREGROUND-COLOR
Function
The FOREGROUND-COLOR clause specifies the foreground color for a screen 
item.
color-num
is an integer in the range 0--7 specifying a color as follows:
  
    | Color  | 
    Color Value  | 
    Color  | 
    Color Value  | 
  
  
    | 
      Black
     | 
    
      0
     | 
    
      Red
     | 
    
      4
     | 
  
  
    | 
      Blue
     | 
    
      1
     | 
    
      Magenta
     | 
    
      5
     | 
  
  
    | 
      Green
     | 
    
      2
     | 
    
      Yellow/Brown
     | 
    
      6
     | 
  
  
    | 
      Cyan
     | 
    
      3
     | 
    
      White
     | 
    
      7
     | 
  
Syntax Rule
The FOREGROUND-COLOR clause can be specified in any screen description 
entry.
General Rules
  - The FOREGROUND-COLOR clause is effective only with color screens.
  
 - If the FOREGROUND-COLOR clause is omitted, the initial default 
  foreground color is white.
  
 - If the clause is specified at group level, it applies to all 
  subordinate screen items.
  
 -  If the BLANK SCREEN clause is specified and the FOREGROUND-COLOR 
  clause is specified or inherited, then when a DISPLAY statement 
  displays the screen item, the specified color becomes the default 
  foreground color. It remains the default foreground color until another 
  screen item with this combination of options is displayed (whether in 
  the same DISPLAY statement or in another).
  
 - If the HIGHLIGHT clause is also specified, foreground and 
  background colors are brightened and lightened; for example, black may 
  become grey and brown may become yellow.
 
Technical Note
The colors in the list above are supported only on terminals and 
workstations that support the ANSI Standard color sequences. 
1
Additional References
5.3.24 FULL
Function
The FULL clause specifies that a screen item must be left either 
completely empty or it must be entirely filled with data.
Syntax Rules
  - If the FULL clause is specified in a screen description entry, the 
  JUSTIFIED clause cannot be specified.
  
 - The FULL clause is valid only in the description of an input or 
  update screen item.
 
General Rules
  - If the FULL clause is specified at group level, it applies to all 
  subordinate input or update screen items.
  
 - The FULL clause is effective during the execution of any ACCEPT 
  statement when the cursor enters the screen item. Until this clause is 
  satisfied, the operator cannot leave the field and normal terminator 
  keystrokes are rejected.
  
 - To satisfy the FULL clause for an alphanumeric screen item, either 
  the field must contain all spaces, or both the first and last character 
  positions must contain nonspace characters.
  
 - To satisfy the FULL clause for a numeric or numeric edited screen 
  item, either the value must be zero or there must be no digit position 
  in which zero suppression has taken effect.
  
 - For update fields, the FULL clause can be satisfied by the contents 
  of the identifier or literal referenced in the FROM or USING phrase of 
  the PICTURE clause, as well as by operator-keyed data.
  
 - The FULL clause is not effective if a function key terminates the 
  accept operation.
  
 - Specifying the FULL and REQUIRED clauses together requires that the 
  user must always entirely fill the field.
  
 - The FULL clause is ignored for an elementary output field.
 
Additional Reference
Section 6.8.1 statement in Chapter 6
5.3.25 GLOBAL
Function
The GLOBAL clause specifies that data-name, 
file-name, or report-name is available to every 
program contained within the program that declares it.
Syntax Rules
  - The GLOBAL clause can appear only in file description entries, 
  Report Description entries, a data description entry whose level number 
  is 01, in the File or Working-Storage Section, or a data description 
  entry whose level number is 77, in the Working-Storage Section.
  
 - In the same Data Division, the GLOBAL clause must not appear in 
  Data Description entries that contain identical data-names.
  
 - If you use the SAME RECORD AREA clause for several files, the 
  Record Description entries or the file description entries for these 
  files must not include the GLOBAL clause.
  
 - Entries that contain the GLOBAL clause must be named.
 
General Rules
  - Any data-name, file-name, or report-name 
  specifying the GLOBAL clause is a global name. All data items 
  subordinate to a global data-name or file-name are 
  global names. All condition-names associated with a global 
  name are global names.
  
 - A statement in a program contained directly or indirectly within a 
  program that describes a global name may reference the name without 
  describing it again.
  
 - If the GLOBAL clause is used in a data description entry that 
  contains the REDEFINES clause, the global attribute applies only to the 
  subject of the REDEFINES clause.
 
Technical Note
Each global sequential file becomes a print format file.
Additional Reference
Section 6.2.6, Scope of Names
5.3.26 GROUP INDICATE
Function
The GROUP INDICATE clause specifies that the associated printable item 
is presented only on the first occurrence of its DETAIL report group 
after a control break or page advance.
Syntax Rule
The GROUP INDICATE clause must be specified only in a DETAIL report 
group entry that defines a printable item.
General Rules
  - If the program contains a GROUP INDICATE clause, the compiler 
  suppresses printing of the printable item and supplies spaces, except:
  
    - On the first presentation of the DETAIL report group
    
 - On the first presentation of the DETAIL report group after every 
    page advance
    
 - On the first presentation of the DETAIL report group after every 
    control break
  
 
   - If the program specifies neither the PAGE clause nor the CONTROL 
  clause in a Report Description entry, then the first time a DETAIL 
  report group is presented a GROUP INDICATE printable item is also 
  presented. Thereafter, spaces are supplied for indicated items with 
  SOURCE or VALUE clauses.
 
Additional Reference
Appendix D, Report Writer Presentation Rules and Tables
Example
The following example shows the effect of the GROUP INDICATE clause on 
a printable item (SOURCE I-NAME).
5.3.27 HIGHLIGHT
Function
The HIGHLIGHT clause specifies that the field is to appear on the 
screen with the highest intensity.
Syntax Rule
The HIGHLIGHT clause can be specified only for an elementary screen 
description entry.
Additional References
5.3.28 JUSTIFIED
Function
The JUSTIFIED clause specifies nonstandard data positioning in a screen 
item or another receiving item.
Syntax Rules
  - The JUSTIFIED clause can be used only for elementary items and 
  alphanumeric data items. It cannot be used for index data items, 
  numeric data items, or edited data items.
  
 - JUST is the abbreviated form of JUSTIFIED.
 
General Rules
  - If a COBOL statement transfers data to a receiving item whose data 
  description contains the JUSTIFIED clause, the Run-Time System:
  
    - Truncates the excess leftmost characters if the sending item is 
    larger than the receiving item.
    
 - Aligns the data at the rightmost character position of the 
    receiving item if the sending item is smaller than the receiving item. 
    (Spaces fill the excess leftmost character positions.)
  
 
   - If there is no JUSTIFIED clause, data movement follows the rules 
  for aligning data in elementary items (Standard Alignment Rules).
 
Additional References
Examples
The Procedure Division entry for the MOVE statement contains examples 
using this clause.
5.3.29 LABEL RECORDS
Function
The LABEL RECORDS clause specifies the presence or absence of labels.
General Rule
The LABEL RECORDS clause is for documentation only.
5.3.30 Level-Number
Function
The level-number shows the position of a data item or screen 
item within the hierarchical structure of a logical record or a report 
group or a screen description. It also identifies entries for 
condition-names and the RENAMES clause.
Syntax Rules
  - The level-number must be the first element in a data 
  description entry or a screen description entry.
  
 - Data description entries that are subordinate to a file description 
  (FD) entry have level-numbers 01 to 49, 66, or 88.
  
 - Data description entries in the Working-Storage and Linkage 
  Sections have level-numbers 01 to 49, 66, 77, or 88.
  
 - Report group description entries in the Report Section have 
  level-numbers 01 to 49 only. See the Section 5.3.5 entry for 
  additional rules for Report Writer level-numbers.
  
 - Screen description entries in the Screen Section have 
  level-numbers 01 to 49 only. See the Section 5.3.6 entry for 
  additional rules for Screen Section level-numbers.
 
General Rules
  - The level-number 01 identifies the first entry in a record 
  description, report group description, or screen description entry.
  
 - Multiple level 01 entries subordinate to a file description entry
represent implicit redefinitions of the same area.
  
 - Multiple level 01 entries subordinate to a report description entry 
  do not represent implicit redefinitions of the same area.
  
 - Level-number 66 identifies a RENAMES entry. It can be used 
  only in a Format 2 data description entry.
  
 - Level-number 77 identifies a noncontiguous data item entry 
  in the Working-Storage and Linkage Sections. The level 77 entry can 
  have no subordinate data description entries except level 88 items.
  
 - Level-number 88 defines a condition-name 
  associated with a conditional variable. It can be used only in a Format 
  3 data description entry.
  
 - Level-numbers 66, 77, and 88 do not imply a hierarchical 
  position.
 
Additional References
5.3.31 LINAGE
Function
The LINAGE clause specifies the number of lines on a logical page. It 
can also specify the size of the logical page's top and bottom margins 
and the line where the footing area begins in the page body.
page-lines
is a positive integer or the data-name of an elementary unsigned 
integer numeric data item. Its value must be greater than zero. It 
specifies the number of lines that can be written or spaced on the 
logical page. If page-lines is a data-name, it can be 
qualified.
footing-line
is a positive integer or the data-name of an elementary unsigned 
integer numeric data item. Its value must be greater than zero, but 
cannot be greater than page-lines. footing-line 
specifies the line number where the footing area begins in the page 
body. If footing-line is a data-name, it can be qualified.
top-lines
is an integer or the data-name of an elementary unsigned integer 
numeric data item. Its value can be zero. top-lines specifies 
the number of lines in the top margin of the logical page. If 
top-lines is a data-name, it can be qualified.
bottom-lines
is an integer or the data-name of an elementary unsigned integer 
numeric data item. Its value can be zero. bottom-lines 
specifies the number of lines in the bottom margin of the logical page. 
If bottom-lines is a data-name, it can be qualified.
General Rules
  - The LINAGE clause specifies the number of lines on a logical page.
  
 - Logical page size is the sum of the values specified in all phrases 
  except FOOTING. If there is no LINES AT TOP or LINES AT BOTTOM phrase, 
  the default value of top-lines or bottom-lines is 
  zero. If there is no FOOTING phrase, the default value of 
  footing-line equals the value of page-lines.
  
 - Logical and physical page sizes are not necessarily the same.
  
 - The page body is the logical page area in which the program can 
  write or space lines. Its size equals the value of page-lines.
  
 - The footing area is the area of the logical page between 
  footing-line and page-lines, inclusive.
  
 - When the program opens the file by executing an OPEN statement with 
  the OUTPUT phrase, it uses the values of page-lines,
top-lines, and bottom-lines to define the logical 
page sections. When these values are integers, they apply to all 
logical pages the program writes to the file during its execution.
  
 - When page-lines, top-lines, and 
  bottom-lines are data-names, their values affect OPEN and 
  WRITE statement execution as follows:
  
    - When the program executes an OPEN statement with the OUTPUT phrase 
    for the file, the values specify the number of lines in each of the 
    associated sections of the first logical page.
    
 - When the program executes a WRITE statement with the ADVANCING PAGE 
    phrase, or when a page overflow condition occurs, the values specify 
    the number of lines in each of the associated sections of the next 
    logical page.
  
 
   - The value of footing-line defines the footing area for the 
  first logical page when the program executes an OPEN statement with the 
  OUTPUT phrase for the file. The value defines the footing area for the 
  next logical page when: (a) the program executes a WRITE statement with 
  the ADVANCING PAGE phrase or, (b) a page overflow condition occurs.
  
 - For each file with a LINAGE clause, the program has a corresponding 
  special register called LINAGE-COUNTER. At any time, the value in 
  LINAGE-COUNTER is the line number in the current page body at which the 
  device is positioned. Other open modes (Input, I-O, and Extend) are not 
  permitted and have unpredictable results.
  
 - LINAGE-COUNTER is global if a file description entry specifies the 
  GLOBAL clause and the LINAGE clause.
  
 - LINAGE-COUNTER is a 9-digit numeric special register. Procedure
Division statements can refer to LINAGE-COUNTER but cannot change its 
value.
  
 - If the program has more than one LINAGE-COUNTER, all Procedure 
  Division references to it must be qualified by file-name.
  
 - Execution of a WRITE statement for a file with the LINAGE clause 
  changes the value of the associated LINAGE-COUNTER:
  
    - If the WRITE statement has the ADVANCING PAGE phrase, its execution 
    resets LINAGE-COUNTER to one. (The resetting operation implicitly 
    increments the value of LINAGE-COUNTER to exceed the value of 
    page-lines.)
    
 - If the WRITE statement has the ADVANCING LINES phrase, its 
    execution increments LINAGE-COUNTER by the value in the ADVANCING 
    phrase.
    
 - If the WRITE statement does not have the ADVANCING phrase, it 
    increments LINAGE-COUNTER by one.
  
 
   - Execution of an OPEN statement for the file sets its LINAGE-COUNTER 
  to one.
  
 - Each logical page follows the preceding logical page with no 
  spacing between them.
  
 - If the file connector associated with this file description entry 
  is an external file connector, all file description entries in the run 
  unit associated with this file connector must have the following 
  features:
  
    - A LINAGE clause, if any file description entry has a LINAGE clause
    
 - The same corresponding integer values for page-lines, 
    footing-lines, top-lines, and bottom-lines
    
 - The same corresponding external data items referenced by 
    page-lines, footing-lines, top-lines, and 
    bottom-lines
  
 
 
Technical Notes
  -  On OpenVMS, the LINAGE clause causes a file to be in print-file 
  format. When a WRITE statement positions the file to the top of the 
  next logical page, device positioning occurs by line spacing rather 
  than by page ejection or form feed.
    
The default DCL PRINT command causes the insertion of a form-feed
 character when a form nears the end of a page. Therefore, when the 
 default PRINT command refers to a LINAGE file, unexpected page spacing 
 can result. 
The /NOFEED compiler option to the PRINT command 
 suppresses the insertion of form-feed characters and prints LINAGE 
 files correctly. For example:
  
    
       
      
$ PRINT/NOFEED full-file-name                    
 
 | 
   - The /NOVFC compiler option can be used to produce a Stream_LF 
  record-formatted print file. The default (/VFC) behavior is to produce 
  a VFC record-formatted file. <>
  
 -  Compaq COBOL on Tru64 UNIX and Windows NT systems writes 
  LINAGE files with blank lines to simulate WRITE ADVANCING behavior. 
  These blank lines would not be produced on an OpenVMS Alpha system. 
  When you input a LINAGE file, you must compensate for the difference. 
  For example, use an extra initial READ statement (on Tru64 UNIX and 
  Windows NT systems) to skip over the leading blank line in the 
  LINAGE file. <>
 
Additional References
Example
The following example specifies a logical page whose size is 26 lines:
  
    
       
      
FD  PRINT-FILE 
    VALUE OF ID IS "REPORT1.LIS" 
    LINAGE IS 16 LINES WITH FOOTING AT 13 
      LINES AT TOP 4 LINES AT BOTTOM 6. 
 | 
In this example, the first line to which the page can be positioned is 
the fifth line. The end-of-page condition occurs when a WRITE statement 
causes the LINAGE-COUNTER value to be in the range 13 to 16. The page 
overflow condition occurs when a WRITE statement causes the 
LINAGE-COUNTER value to exceed 16.
Figure 5-9 shows the logical page areas resulting from the example.
Figure 5-9 Logical Page Areas Resulting from a LINAGE 
Clause
5.3.32 LINE NUMBER
Function
The LINE NUMBER clause specifies vertical positioning information for a 
report group, or specifies the vertical screen coordinate for a screen 
item.
line-num
is a nonnegative integer. line-num represents an absolute line 
number on a logical page and establishes a print line for a Report 
Writer report group.
line-num-plus
is a positive integer. line-num-plus represents a relative 
line number on a logical page and establishes a print line for a Report 
Writer report group.
identifier-1
is an elementary unsigned numeric integer data item. It cannot be 
subscripted.
integer-1
is an unsigned integer value.
Syntax Rules (Report Description)
  - Neither line-num nor line-num-plus can exceed 
  three significant digits. 
The PAGE clause defines the length of a 
  logical page and the vertical subdivisions within which each report 
  group is presented. Neither line-num nor 
  line-num-plus may specify a line outside of the PAGE clause 
  limits. See Section 5.3.36 clause for more information.
   - Within a given Report Group Description, an entry containing a LINE 
  NUMBER clause must not contain a subordinate entry that also contains a 
  LINE NUMBER clause.
  
 - Within a given Report Group Description, all absolute LINE NUMBER 
  clauses must precede all relative LINE NUMBER clauses.
  
 - Within a given Report Group Description, successive absolute LINE 
  NUMBER clauses must specify integers in ascending order. The integers 
  need not be consecutive.
  
 - If a given Report Description (RD) does not contain a PAGE clause, 
  the program may specify only relative LINE NUMBER clauses in any Report 
  Group Description within that report.
  
 - Within a given Report Group Description, a NEXT PAGE phrase may 
  appear only once. If present, it must be the first LINE NUMBER clause 
  in that Report Group Description.
  
 - A LINE NUMBER clause with the NEXT PAGE phrase may appear only in 
  the description of a CONTROL HEADING, DETAIL, CONTROL FOOTING, or 
  REPORT FOOTING report group.
  
 - Every entry defining a printable item must either contain a LINE 
  NUMBER clause or be subordinate to an entry that contains a LINE NUMBER 
  clause. See the COLUMN NUMBER clause for more information.
  
 - The first LINE NUMBER clause in a PAGE FOOTING report group must 
  define an absolute line-num value.
  
 - line-num-plus may be zero. If line-num-plus is 
  zero, the line will be printed on the same line as the previous print 
  line (overprint); however, line-num-plus cannot be zero for 
  the first print line of a report group.
 
Syntax Rules (Screen Description)
  - The LINE clause can be specified only in an elementary screen 
  description entry.
  
 - identifier-1 cannot be subscripted.
 
General Rules (Report Description)
  - To establish each print line for a report group, a program must 
  specify the LINE NUMBER clause.
  
 - Before presenting the print line, the Report Writer Control System 
  (RWCS) causes line positioning as specified by a LINE NUMBER clause.
  
 - The NEXT PAGE phrase defines the line number of a new page on which 
  to present the report group.
  
 - For a complete specification on how to determine the first print 
  line for a report group, see Appendix D, Report Writer Presentation Rules and Tables. A partial summary of these 
  rules follows: 
If a relative clause is not the first LINE NUMBER 
  clause in a report group, then the line number on which its print line 
  is presented is determined by the sum of the following:
  
    - The line number from the previous print line of the report group
    
 - line-num-plus of the relative LINE NUMBER clause
  
 
    
If the first LINE NUMBER clause in the Report Group Description 
    entry is relative and a PAGE clause is specified, the first print line 
    for the report group is determined as follows. See the Section 5.3.36 
    clause for the definitions of page-size, 
    heading-line, first-detail-line, 
    last-detail-line, and footing-line.
  
    - REPORT HEADING 
The RWCS presents this group on a line number 
    whose value is the sum of line-num of the first LINE NUMBER 
    clause and heading-line minus 1.
     - PAGE HEADING 
If a REPORT HEADING report group has been 
    presented on the page on which this report group is to appear, the RWCS 
    presents the PAGE HEADING relative to the final LINE-COUNTER setting of 
    the REPORT HEADING. 
If no REPORT HEADING has been presented on the 
    page, the RWCS presents this report group on the line number whose 
    value is the sum of line-num of the first LINE NUMBER clause 
    and heading-line minus 1.
     - DETAIL, CONTROL HEADING, or CONTROL FOOTING 
If the value in 
    LINE-COUNTER is less than first-detail-line, the RWCS presents the 
    report group on first-detail-line. 
If the value in LINE-COUNTER is 
    greater than or equal to first-detail-line and if this is the first 
    body group to print on the page, the RWCS presents the report group on 
    the line corresponding to the value in LINE-COUNTER. 
If the value 
    in LINE-COUNTER is greater than or equal to first-detail-line and if 
    this is not the first body group to print on the page, the RWCS 
    presents the report group on the line whose value is the sum of 
    LINE-COUNTER and line-num of the first LINE NUMBER clause of 
    the current CONTROL HEADING, DETAIL, or CONTROL FOOTING report group.
     - PAGE FOOTING 
Not applicable. The first LINE NUMBER clause of a 
    PAGE FOOTING report group must contain an absolute line number 
    reference.
     - REPORT FOOTING 
If a PAGE FOOTING report group has been 
    presented on the current page, the RWCS presents the REPORT FOOTING 
    report group on the line whose value is the sum of the current value in 
    LINE-COUNTER and line-num of the first LINE NUMBER clause of 
    the REPORT FOOTING report group. 
If no PAGE FOOTING report group 
    has been presented on the current page, the RWCS presents the REPORT 
    FOOTING report group on the line whose value is the sum of 
    footing-line and line-num of the first LINE NUMBER 
    clause of the REPORT FOOTING report group.
   
 
  
    
      Note 
         
        
        1  This does not include the 
        VT100, VT200, VT300, and VT400 series terminals. On workstations that 
        emulate these terminal types, this restriction may not apply.
    
     |