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. |