Returns the current line number of paged output as an INTEGER value.
The initial value of LINE-COUNTER is 1. At the completion of each DISPLAY statement, the AVM increments LINE-COUNTER by the number of lines that were output in that DISPLAY statement. LINE-COUNTER continues to increase until after at least one line has been printed on a new page.
LINE-COUNTER returns a 0 if the output is not paged.
This procedure prints a Customer report, categorized by State. At the end of each State category, it tests to see if there are at least four lines left on the page. The LINE-COUNTER function returns the current line number of output. If that number plus four is greater than the total number of lines on the page (returned by the PAGE-SIZE function), then the procedure starts the new page. If there are four or more lines left, the procedure skips a line before printing the next customer record.
r-linec.p
Use a procedure like this one to verify that output is positioned on the first non-header line of a new page:
| DEFINE VARIABLE newpage AS LOGICAL NO-UNDO INITIAL TRUE.
DEFINE STREAM output1.
FOR EACH Customer NO-LOCK:
  FORM HEADER "Page Header" PAGE-NUMBER(output1) "Line"
    LINE-COUNTER(output1)
    WITH FRAME one PAGE-TOP NO-LABELS NO-BOX.
  VIEW STREAM output1 FRAME one.
  DISPLAY STREAM output1 name PAGE-NUMBER(output1) LINE-NUMBER(output1)
    WITH NO-LABELS NO-BOX.
  IF new-page THEN 
    DISPLAY STREAM output1 "First Line".
  newpage = IF LINE-COUNTER(output1) > PAGE-SIZE(output1) THEN
    TRUE ELSE FALSE.
END.  |